Class: Fronton::Config
- Inherits:
-
Object
- Object
- Fronton::Config
- Defined in:
- lib/fronton/config.rb
Defined Under Namespace
Classes: YAMLNotFound
Constant Summary collapse
- PRECOMPILE_CRITERIA =
lambda do |logical_path, filename| filename.start_with?(Dir.pwd) && !['.js', '.css', ''].include?(File.extname(logical_path)) end
Class Attribute Summary collapse
- .assets_path ⇒ Object
-
.logger ⇒ Object
readonly
Returns the value of attribute logger.
-
.use_base ⇒ Object
ACCESSORS.
- .use_digest ⇒ Object
Class Method Summary collapse
-
.assets ⇒ Object
YAML CONFIG.
- .assets_paths ⇒ Object
- .assets_prefix ⇒ Object
- .base_url ⇒ Object
- .compressor_css ⇒ Object
- .compressor_js ⇒ Object
- .dependencies ⇒ Object
- .environment ⇒ Object
- .fallback_page ⇒ Object
-
.install_dependencies ⇒ Object
METHODS.
- .load! ⇒ Object
- .manifest ⇒ Object
- .output ⇒ Object
- .pages ⇒ Object
- .pages_paths ⇒ Object
- .require_dependencies ⇒ Object
Class Attribute Details
.assets_path ⇒ Object
45 46 47 |
# File 'lib/fronton/config.rb', line 45 def assets_path @assets_path.nil? ? 'assets' : @assets_path end |
.logger ⇒ Object (readonly)
Returns the value of attribute logger.
18 19 20 |
# File 'lib/fronton/config.rb', line 18 def logger @logger end |
.use_base ⇒ Object
ACCESSORS
37 38 39 |
# File 'lib/fronton/config.rb', line 37 def use_base @use_base.nil? ? false : @use_base end |
.use_digest ⇒ Object
41 42 43 |
# File 'lib/fronton/config.rb', line 41 def use_digest @use_digest.nil? ? false : @use_digest end |
Class Method Details
.assets ⇒ Object
YAML CONFIG
57 58 59 60 61 62 |
# File 'lib/fronton/config.rb', line 57 def assets @assets ||= begin assets_conf = @config[:assets].is_a?(Array) ? @config[:assets] : [] [PRECOMPILE_CRITERIA, %r{(?:/|\\|\A)application\.(css|js)$}] + assets_conf end end |
.assets_paths ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/fronton/config.rb', line 64 def assets_paths @assets_paths ||= begin if @config[:assets_paths].is_a?(Array) @config[:assets_paths].map { |p| working_dir.join(p) } else [] end end end |
.assets_prefix ⇒ Object
49 50 51 |
# File 'lib/fronton/config.rb', line 49 def assets_prefix use_base ? "#{base_url}/#{assets_path}" : assets_path end |
.base_url ⇒ Object
74 75 76 |
# File 'lib/fronton/config.rb', line 74 def base_url @config[:base_url] end |
.compressor_css ⇒ Object
122 123 124 |
# File 'lib/fronton/config.rb', line 122 def compressor_css @config[:compressors] && @config[:compressors][:css] end |
.compressor_js ⇒ Object
118 119 120 |
# File 'lib/fronton/config.rb', line 118 def compressor_js @config[:compressors] && @config[:compressors][:js] end |
.dependencies ⇒ Object
82 83 84 85 86 87 88 89 90 |
# File 'lib/fronton/config.rb', line 82 def dependencies @dependencies ||= begin dep = @config[:dependencies].is_a?(Array) ? @config[:dependencies] : [] dep.map do |d| Dependency.new(d.keys.first, d.values.first) end end end |
.environment ⇒ Object
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/fronton/config.rb', line 126 def environment @environment ||= begin env = Sprockets::Environment.new # logger env.logger = logger # fronton.yml assets paths assets_paths.each { |path| env.append_path path } # rails assets paths if defined? RailsAssets RailsAssets.load_paths.each { |path| env.append_path path } end # context helpers env.context_class.send :include, ::Fronton::Contexts::Sprockets env end end |
.fallback_page ⇒ Object
92 93 94 95 96 |
# File 'lib/fronton/config.rb', line 92 def fallback_page if @config[:fallback_page] Page.new(@config[:fallback_page], '/') end end |
.install_dependencies ⇒ Object
METHODS
156 157 158 |
# File 'lib/fronton/config.rb', line 156 def install_dependencies dependencies.map(&:install_dependency) end |
.load! ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fronton/config.rb', line 21 def load! file = working_dir.join('fronton.yml') if file.exist? @config = YAML.load_file(file).with_indifferent_access @logger = Logger.new($stderr) @logger.level = Logger::INFO else raise YAMLNotFound, "File 'fronton.yml' not found in #{Dir.pwd}" end end |
.manifest ⇒ Object
148 149 150 |
# File 'lib/fronton/config.rb', line 148 def manifest @manifest ||= Sprockets::Manifest.new environment, File.join(output, assets_path, 'manifest.json') end |
.output ⇒ Object
78 79 80 |
# File 'lib/fronton/config.rb', line 78 def output @output ||= working_dir.join(@config[:output] || 'public') end |
.pages ⇒ Object
98 99 100 101 102 103 104 105 106 |
# File 'lib/fronton/config.rb', line 98 def pages @pages ||= begin pages = @config[:pages].is_a?(Array) ? @config[:pages] : [] pages.map do |page| Page.new(page.keys.first, page.values.first) end end end |
.pages_paths ⇒ Object
108 109 110 111 112 113 114 115 116 |
# File 'lib/fronton/config.rb', line 108 def pages_paths @pages_paths ||= begin if @config[:pages_paths].is_a?(Array) @config[:pages_paths].map { |p| working_dir.join(p) } else [] end end end |
.require_dependencies ⇒ Object
160 161 162 |
# File 'lib/fronton/config.rb', line 160 def require_dependencies dependencies.map(&:require_dependency) end |