lib/assetify/dsl.rb in assetify-0.2.2 vs lib/assetify/dsl.rb in assetify-0.3.0
- old
+ new
@@ -1,27 +1,50 @@
module Assetify
class DSL
+ attr_reader :assets
- def pkg name, url, &block
+ def set_namespace(name)
+ @ns = @ns.nil? ? name : "#{@ns}/#{name}"
+ end
+
+ def pkg name, url, opts = {}, &block
@pkg = Pkg.new name, url
- @ns = name
- instance_exec(&block)
- @ns = nil
+ if block_given?
+ set_namespace name unless opts[:shallow]
+ instance_exec &block
+ @ns = @pkg = nil
+ else
+ @pkg.unpack_to_vendor
+ end
assets
end
def group name, &block
- @ns = name
- instance_exec(&block)
+ set_namespace name
+ instance_exec &block
@ns = nil
assets
end
- def assets
- @assets
+ def dir regex, to
+ to = to[:to]
+ if @pkg
+ @pkg.get(regex).each do |path, data|
+ next if path =~ /\/$/ # dont let dirs get in... ugly
+ ext, *name = path.split(".").reverse
+ name = name.reverse.join(".").split("/").last
+ (@assets ||= []) << Asset.new(ext, name, path, nil, {
+ :pkg => @pkg,
+ :to => to})# h.split(".").last, )
+ end
+ end
end
+ #
+ # js "foo", "http://foo.com"
+ # js "foo", "http://foo.com", :to => "/other/place"
+ #
def method_missing method, name, uri, *params
params, ver = params.partition { |param| param.is_a?(Hash) }
opts = {:ns => @ns, :pkg => @pkg}
params.each { |hsh| opts.merge! hsh }
ver = ver[0]