diff options
| author | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-18 17:21:28 -0700 |
|---|---|---|
| committer | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-19 10:53:46 -0700 |
| commit | 12098f2d54e8e00a687f42837deeef65c7759389 (patch) | |
| tree | b10446af28c549a2befb719f8906dc9aba626987 /lib/puppet/application | |
| parent | 5938452dccc8c925bc6275a62ae96f50916cc239 (diff) | |
| download | puppet-12098f2d54e8e00a687f42837deeef65c7759389.tar.gz puppet-12098f2d54e8e00a687f42837deeef65c7759389.tar.xz puppet-12098f2d54e8e00a687f42837deeef65c7759389.zip | |
(#7013) Handle rendering modes out in the application layer.
We no longer establish the rendering mode in the actions; they just default to
"nothing", and let that flow on out to the application layer. That lets the
facade we put before the face determine the default behaviour.
This is mostly a no-op down in the CLI side, but it makes it much easier to
integrate into MCollective, HTTP-API, and for other non-CLI users of Faces.
Reviewed-By: Max Martin <max@puppetlabs.com>
Diffstat (limited to 'lib/puppet/application')
| -rw-r--r-- | lib/puppet/application/face_base.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/puppet/application/face_base.rb b/lib/puppet/application/face_base.rb index 456f0c610..6b13e16d4 100644 --- a/lib/puppet/application/face_base.rb +++ b/lib/puppet/application/face_base.rb @@ -37,21 +37,23 @@ class Puppet::Application::FaceBase < Puppet::Application # Override this if you need custom rendering. def render(result) - if render_as then - render_method = Puppet::Network::FormatHandler.format(render_as).render_method + format = render_as || action.render_as || :for_humans + if format == :for_humans then + render_for_humans(result) + else + render_method = Puppet::Network::FormatHandler.format(format).render_method if render_method == "to_pson" - jj result + PSON::pretty_generate(result, :allow_nan => true, :max_nesting => false) else result.send(render_method) end - else - render_for_humans(result) end end def render_for_humans(result) # String to String return result if result.is_a? String + return result if result.is_a? Numeric # Simple hash to table if result.is_a? Hash and result.keys.all? { |x| x.is_a? String or x.is_a? Numeric } |
