Class: Sprockets::StaticCompiler
- Inherits:
-
Object
- Object
- Sprockets::StaticCompiler
- Defined in:
- actionpack/lib/sprockets/static_compiler.rb
Instance Attribute Summary (collapse)
-
- (Object) env
Returns the value of attribute env.
-
- (Object) paths
Returns the value of attribute paths.
-
- (Object) target
Returns the value of attribute target.
Instance Method Summary (collapse)
- - (Object) compile
- - (Boolean) compile_path?(logical_path)
-
- (StaticCompiler) initialize(env, target, paths, options = {})
constructor
A new instance of StaticCompiler.
- - (Object) path_for(asset)
- - (Object) write_asset(asset)
- - (Object) write_manifest(manifest)
Constructor Details
- (StaticCompiler) initialize(env, target, paths, options = {})
A new instance of StaticCompiler
7 8 9 10 11 12 13 14 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 7 def initialize(env, target, paths, = {}) @env = env @target = target @paths = paths @digest = .key?(:digest) ? .delete(:digest) : true @manifest = .key?(:manifest) ? .delete(:manifest) : true @manifest_path = .delete(:manifest_path) || target end |
Instance Attribute Details
- (Object) env
Returns the value of attribute env
5 6 7 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 5 def env @env end |
- (Object) paths
Returns the value of attribute paths
5 6 7 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 5 def paths @paths end |
- (Object) target
Returns the value of attribute target
5 6 7 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 5 def target @target end |
Instance Method Details
- (Object) compile
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 16 def compile manifest = {} env.each_logical_path do |logical_path| if File.basename(logical_path)[/[^\.]+/, 0] == 'index' logical_path.sub!(/\/index\./, '.') end next unless compile_path?(logical_path) if asset = env.find_asset(logical_path) manifest[logical_path] = write_asset(asset) end end write_manifest(manifest) if @manifest end |
- (Boolean) compile_path?(logical_path)
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 46 def compile_path?(logical_path) paths.each do |path| case path when Regexp return true if path.match(logical_path) when Proc return true if path.call(logical_path) else return true if File.fnmatch(path.to_s, logical_path) end end false end |
- (Object) path_for(asset)
60 61 62 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 60 def path_for(asset) @digest ? asset.digest_path : asset.logical_path end |
- (Object) write_asset(asset)
37 38 39 40 41 42 43 44 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 37 def write_asset(asset) path_for(asset).tap do |path| filename = File.join(target, path) FileUtils.mkdir_p File.dirname(filename) asset.write_to(filename) asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/ end end |
- (Object) write_manifest(manifest)
30 31 32 33 34 35 |
# File 'actionpack/lib/sprockets/static_compiler.rb', line 30 def write_manifest(manifest) FileUtils.mkdir_p(@manifest_path) File.open("#{@manifest_path}/manifest.yml", 'wb') do |f| YAML.dump(manifest, f) end end |