diff options
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/application/face_base.rb | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/puppet/application/face_base.rb b/lib/puppet/application/face_base.rb index cc62257c7..d28a8af3b 100644 --- a/lib/puppet/application/face_base.rb +++ b/lib/puppet/application/face_base.rb @@ -15,8 +15,14 @@ class Puppet::Application::FaceBase < Puppet::Application Puppet::Util::Log.level = :info end - option("--render-as FORMAT") do |arg| - @render_as = arg.to_sym + option("--render-as FORMAT") do |_arg| + format = _arg.to_sym + unless @render_method = Puppet::Network::FormatHandler.format(format) + unless format == :for_humans or format == :json + raise ArgumentError, "I don't know how to render '#{format}'" + end + end + @render_as = format end option("--mode RUNMODE", "-r") do |arg| @@ -36,18 +42,12 @@ class Puppet::Application::FaceBase < Puppet::Application result = hook.call(result) end - begin - render_method = Puppet::Network::FormatHandler.format(format).render_method - rescue - render_method = nil - end - if format == :for_humans then render_for_humans(result) - elsif format == :json or render_method == "to_pson" + elsif format == :json or @render_method == "to_pson" PSON::pretty_generate(result, :allow_nan => true, :max_nesting => false) else - result.send(render_method) + result.send(@render_method) end end |
