class Assetify::DSL
Nice Assetfile
reader
Attributes
assets[R]
Public Class Methods
parse(chunk)
click to toggle source
# File lib/assetify/dsl.rb, line 98 def self.parse(chunk) # puts "Assetify - Error Parsing 'Assetfile'." # Instance eval with 2nd, 3rd args to the rescue new.instance_eval(chunk, 'Assetfile', 1) end
Public Instance Methods
a(name, url, *_params)
click to toggle source
Global command, detects the filetype
a "jquery", "http://...jquery.js"
# File lib/assetify/dsl.rb, line 67 def a(name, url, *_params) extension = url.split('.').last parse_method extension, name, url end
Also aliased as: asset
dir(regex, params = {})
click to toggle source
Makes assets out of the entire directory
pkg :foo do
dir "images/*" dir "images/*jpg"
end
# File lib/assetify/dsl.rb, line 50 def dir(regex, params = {}) to = params[:to] if @pkg @pkg.get(regex).each do |path, _data| next if path =~ %r{/$} # dont let dirs get in... ugly ext, *name = path.split('.').reverse name = name.reverse.join('.').split('/').last create_asset(ext, name, path, nil, to: to) end end end
group(name, &block)
click to toggle source
Makes a group, a namespace for the assets.
group :foo do end
# File lib/assetify/dsl.rb, line 33 def group(name, &block) use_namespace(name) instance_exec(&block) @ns = nil assets ensure @ns = nil end
method_missing(method, name = nil, uri = nil, *params)
click to toggle source
Filter/validate DSL
to parse
# File lib/assetify/dsl.rb, line 76 def method_missing(method, name = nil, uri = nil, *params) if name && uri parse_method method, name, uri, params else raise SyntaxError, "Syntax Error on Assetfile. `#{method} :#{name}`" end end
pkg(name, url, opts = {}, &block)
click to toggle source
Makes a pkg, a gz/tar/zip asset/
pkg :foo, “to.tgz” do end
# File lib/assetify/dsl.rb, line 14 def pkg(name, url, opts = {}, &block) @pkg = Pkg.new name, url if block_given? use_namespace(name) unless opts[:shallow] instance_exec(&block) else @pkg.unpack_all end assets ensure @ns = @pkg = nil end
Private Instance Methods
create_asset(ext, name, path, ver, opts = {})
click to toggle source
Helper to create asset with correct options
# File lib/assetify/dsl.rb, line 123 def create_asset(ext, name, path, ver, opts = {}) opts[:pkg] = @pkg opts[:ns] = @ns @assets ||= [] @assets << Asset.new(ext, name, path, ver, opts) end
parse_method(method, name, uri, params = [])
click to toggle source
Parse the DSL
dynamic extensions
js “foo”, “foo.com” js “foo”, “foo.com”, :to => “/other/place”
# File lib/assetify/dsl.rb, line 112 def parse_method(method, name, uri, params = []) params, ver = params.partition { |param| param.is_a?(Hash) } opts = {} params.each { |hsh| opts.merge! hsh } ver = ver[0] create_asset(method.to_sym, name, uri, ver, opts) end
use_namespace(name)
click to toggle source
# File lib/assetify/dsl.rb, line 130 def use_namespace(name) @ns = @ns.nil? ? name : "#{@ns}/#{name}" end