Module: Klimt::Commands::Rendering
- Included in:
- Klimt::Command, City, Partner
- Defined in:
- lib/klimt/commands/rendering.rb
Instance Method Summary collapse
- #jq_installed? ⇒ Boolean
- #render(obj, jq_options: nil, jq_filter: nil) ⇒ Object
- #render_pretty(obj) ⇒ Object
- #render_with_jq(obj, opts: nil, filter: nil) ⇒ Object
Instance Method Details
#jq_installed? ⇒ Boolean
27 28 29 |
# File 'lib/klimt/commands/rendering.rb', line 27 def jq_installed? !`command -v jq`.empty? end |
#render(obj, jq_options: nil, jq_filter: nil) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/klimt/commands/rendering.rb', line 4 def render(obj, jq_options: nil, jq_filter: nil) if jq_installed? render_with_jq(obj, opts: , filter: jq_filter) else render_pretty(obj) end end |
#render_pretty(obj) ⇒ Object
23 24 25 |
# File 'lib/klimt/commands/rendering.rb', line 23 def render_pretty(obj) puts JSON.pretty_generate JSON.parse(obj) end |
#render_with_jq(obj, opts: nil, filter: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/klimt/commands/rendering.rb', line 12 def render_with_jq(obj, opts: nil, filter: nil) opts ||= '' opts << ' -C' if [:color] filter ||= '.' IO.popen("jq #{opts} \"#{filter}\"", 'r+') do |p| p.write obj p.close_write puts p.read end end |