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]