lib/hammer_cli/apipie/options.rb in hammer_cli-0.1.1 vs lib/hammer_cli/apipie/options.rb in hammer_cli-0.1.2
- old
+ new
@@ -1,27 +1,29 @@
module HammerCLI::Apipie
module Options
- def all_method_options
- method_options_for_params(resource.action(action).params, true)
+ def method_options(options)
+ method_options_for_params(resource.action(action).params, options)
end
- def method_options
- method_options_for_params(resource.action(action).params, false)
- end
-
- def method_options_for_params(params, include_nil=true)
+ def method_options_for_params(params, options)
opts = {}
+
params.each do |p|
if p.expected_type == :hash
- opts[p.name] = method_options_for_params(p.params, include_nil)
+ opts[p.name] = method_options_for_params(p.params, options)
else
- opts[p.name] = get_option_value(p.name)
+ p_name = HammerCLI.option_accessor_name(p.name)
+ if options.has_key?(p_name)
+ opts[p.name] = options[p_name]
+ elsif respond_to?(p_name, true)
+ opt = send(p_name)
+ opts[p.name] = opt unless opt.nil?
+ end
end
end
- opts.reject! {|key, value| value.nil? } unless include_nil
opts
end
def get_option_value(opt_name)
if respond_to?(HammerCLI.option_accessor_name(opt_name), true)