class AssetsLedger::Ledger

Attributes

css_dependencies[R]
js_dependencies[R]

Public Class Methods

new() click to toggle source
# File lib/assets_ledger/ledger.rb, line 5
def initialize
  @js  = Set.new
  @css = Set.new
end

Public Instance Methods

add_css(*names) click to toggle source

Add CSS to ledger

# File lib/assets_ledger/ledger.rb, line 16
def add_css(*names)
  @css.merge(dependencies_for(names, css_libs))
end
add_js(*names) click to toggle source

Add JS to ledger

# File lib/assets_ledger/ledger.rb, line 11
def add_js(*names)
  @js.merge(dependencies_for(names, js_libs))
end
js_source_for(lib) click to toggle source

Returns a string with the source path for the given JS lib @return [String] JS source path. @param [Symbol] lib identifier @example Get JS source path for jQuery

assets_ledger.js_source_for(:jquery)
# File lib/assets_ledger/ledger.rb, line 37
def js_source_for(lib)
  js_libs[lib]
end

Protected Instance Methods

css_libs() click to toggle source
# File lib/assets_ledger/ledger.rb, line 51
def css_libs
  {}
end
dependencies_for(names, assets) click to toggle source
# File lib/assets_ledger/ledger.rb, line 43
def dependencies_for(names, assets)
  names.flatten.flat_map { |name| Array(assets[name] || name) }
end
js_libs() click to toggle source
# File lib/assets_ledger/ledger.rb, line 47
def js_libs
  {}
end