lib/fezzik/base.rb in fezzik-0.8.2 vs lib/fezzik/base.rb in fezzik-0.8.3

- old
+ new

@@ -1,9 +1,12 @@ module Fezzik def self.activated=(value) @activated = value end def self.activated?() @activated || false end + def self.default_weave_options() @@default_weave_options ||= {} end + def self.default_weave_options=(options) @@default_weave_options = options end + def self.set(name, value) @@settings ||= {} value = Array(value) if name == :domain @@ -32,19 +35,18 @@ roles = (Hash === args.last && args.last[:roles]) ? args.pop[:roles] : [] name, args, deps = Rake.application.resolve_args(args) host_task(name, { :args => Array(args), :deps => Array(deps), :roles => Array(roles) }, &block) end - WEAVE_OPTIONS = [:num_threads, :serial, :batch_by] - def self.host_task(name, options = {}, &block) options = { :args => [], :deps => [], - :roles => [] + :roles => [], + :weave_options => {} }.merge(options) - weave_options = options.dup.keep_if { |k, v| WEAVE_OPTIONS.include? k } - options.delete_if { |k, v| WEAVE_OPTIONS.include? k } + weave_options = options[:weave_options] + options.delete(:weave_options) options.each { |key, value| options[key] = Array(value) } t = HostTask.define_task(name, { options[:args] => options[:deps] }, &block) t.roles += options[:roles] t.weave_options = t.weave_options.merge(weave_options) end