Sha256: f2dfa757feaa8a9cd22c6b84de0dd006504ba89739eef7c535fcbcf4694b740a
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
module CriticalPathCss module Rails class ConfigLoader CONFIGURATION_FILENAME = 'critical_path_css.yml'.freeze def initialize validate_css_paths format_css_paths end def config @config ||= YAML.safe_load(ERB.new(File.read(configuration_file_path)).result, [], [], true)[::Rails.env] end private def configuration_file_path @configuration_file_path ||= ::Rails.root.join('config', CONFIGURATION_FILENAME) end def format_css_paths if config['css_path'] config['css_path'] = format_path(config['css_path']) config['css_paths'] = [] else config['css_path'] = '' config['css_paths'] = config['css_paths'].collect { |path| format_path(path) } end end def format_path(path) "#{::Rails.root}/public#{path}" end def validate_css_paths if config['css_path'] && config['css_paths'] raise LoadError, 'Cannot specify both css_path and css_paths' elsif config['css_paths'] && config['css_paths'].length != config['routes'].length raise LoadError, 'Must specify css_paths for each route' end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
critical-path-css-rails-3.0.0 | lib/critical_path_css/rails/config_loader.rb |