summaryrefslogtreecommitdiff
path: root/config/initializers/customization.rb
blob: 6d9c741ef15bcbb284f1468d00a04059e730b032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# When deploying, common customizations can be dropped in config/customizations. This initializer makes this work.
#
APP_CONFIG["customization_directory"] ||= "#{Rails.root}/config/customization"
customization_directory = APP_CONFIG["customization_directory"]

# Set customization views as the first view path
#
# Rails.application.config.paths['app/views'].unshift "config/customization/views"
# (For some reason, this does not work here. See application.rb for where this is actually called.)

#
# Set customization stylesheets as the first asset path
#
# Some notes:
#
# * This cannot go in application.rb, as far as I can tell. In application.rb, the default paths
#   haven't been loaded yet, so the path we add will always end up at the end unless we add it here.
#
# * For this to work, config.assets.initialize_on_precompile MUST be set to true, otherwise
#   this initializer will never get called in production mode when the assets are precompiled.
#
Rails.application.config.assets.paths.unshift "#{customization_directory}/images"
Rails.application.config.assets.paths.unshift "#{customization_directory}/stylesheets"
#
# Copy files to public
#
if !defined?(RAKE) && Dir.exist?("#{customization_directory}/public")
  require 'fileutils'
  FileUtils.cp_r("#{customization_directory}/public/.", "#{Rails.root}/public", :preserve => true)
end

#
# Add I18n path
#
Rails.application.config.i18n.load_path += Dir["#{customization_directory}/locales/*.{rb,yml,yaml}"]