class Pakyow::Assets::Pack
Attributes
name[R]
public_path[R]
Public Class Methods
new(name, config, prefix: "/")
click to toggle source
# File lib/pakyow/assets/pack.rb, line 18 def initialize(name, config, prefix: "/") @name, @config = name, config @assets = [] @packed = { js: [], css: [] } @public_path = String.normalize_path( File.join(config.prefix, prefix, "packs", name.to_s) ) end
Public Instance Methods
<<(asset)
click to toggle source
# File lib/pakyow/assets/pack.rb, line 41 def <<(asset) @assets << asset.disable_source_map end
finalize()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 27 def finalize tap do if @config.fingerprint extension = File.extname(@public_path) @public_path = File.join( File.dirname(@public_path), File.basename(@public_path, extension) + "__" + fingerprint + extension ) end pack_assets! end end
fingerprint()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 69 def fingerprint @assets.flat_map(&:fingerprint).sort.each_with_object(Digest::MD5.new) { |fingerprint, digest| digest.update(fingerprint) }.hexdigest end
javascripts()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 53 def javascripts @packed[:js] end
javascripts?()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 61 def javascripts? javascripts.any? end
packed(path)
click to toggle source
# File lib/pakyow/assets/pack.rb, line 45 def packed(path) if path.start_with?(@public_path + ".") @packed[File.extname(path)[1..-1].to_sym] else nil end end
public_css_path()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 79 def public_css_path @public_path + ".css" end
public_js_path()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 75 def public_js_path @public_path + ".js" end
stylesheets()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 57 def stylesheets @packed[:css] end
stylesheets?()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 65 def stylesheets? stylesheets.any? end
Private Instance Methods
pack_assets!()
click to toggle source
# File lib/pakyow/assets/pack.rb, line 85 def pack_assets! @packed[:js] = PackedAssets.new(@assets.select { |asset| asset.mime_suffix == "javascript" }, public_js_path, @config, @name) @packed[:css] = PackedAssets.new(@assets.select { |asset| asset.mime_suffix == "css" }, public_css_path, @config, @name) end