module Klimt::Commands::Rendering

Public Instance Methods

jq_installed?() click to toggle source
# File lib/klimt/commands/rendering.rb, line 27
def jq_installed?
  !`command -v jq`.empty?
end
render(obj, jq_options: nil, jq_filter: nil) click to toggle source
# 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: jq_options, filter: jq_filter)
  else
    render_pretty(obj)
  end
end
render_pretty(obj) click to toggle source
# 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) click to toggle source
# File lib/klimt/commands/rendering.rb, line 12
def render_with_jq(obj, opts: nil, filter: nil)
  opts ||= ''
  opts << ' -C' if options[:color]
  filter ||= '.'
  IO.popen("jq #{opts} \"#{filter}\"", 'r+') do |p|
    p.write obj
    p.close_write
    puts p.read
  end
end