Sha256: 6ca5d66c164a7b8638bb22230348485b1395c31173a96401833ebfa83e450951
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
#!/usr/bin/env ruby # coding: utf-8 lib = File.expand_path('../../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'jr/cli/version' require 'optparse' require 'yajl' opt = OptionParser.new opt.banner = "jr - Command-line JSON processor for Rubyists [Ver. #{Jr::Cli::VERSION}]\n\n" + "Usage: jr [options] <jr filter> [file...]" opt.version = Jr::Cli::VERSION opt.on('-r FILE', 'require the FILE before execution') {|file| require file } opt.parse! ARGV unless Kernel.respond_to? :itself module Kernel def itself self end end end trap('INT') { exit 130 } inputs = ARGV[1] ? ARGV[1..-1].map {|f| open f } : [STDIN] result = Enumerator.new do |yielder| inputs.each do |input| Yajl::Parser.new(symbolize_keys: true).parse(input) do |d| yielder.yield d end end end.lazy.instance_eval(ARGV[0]) encoder = Yajl::Encoder.new(pretty: true) if result.is_a? Array or result.kind_of? Enumerator result.each do |data| puts encoder.encode(data) end else puts encoder.encode(result) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jr-cli-0.1.0 | bin/jr |