diff --git a/bin/json_cli b/bin/json_cli new file mode 100755 index 0000000..a5c10f5 --- /dev/null +++ b/bin/json_cli @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby + +require 'json_cli' +JsonCli::CLI.start(ARGV) diff --git a/lib/json_cli.rb b/lib/json_cli.rb index 66560fe..acd3c0c 100644 --- a/lib/json_cli.rb +++ b/lib/json_cli.rb @@ -1,4 +1,5 @@ require 'json_cli/version' +require 'json_cli/cli' require 'json_cli/command/base' require 'json_cli/command/join' require 'json_cli/command/unwind' diff --git a/lib/json_cli/cli.rb b/lib/json_cli/cli.rb index 25129c1..a3c17a8 100755 --- a/lib/json_cli/cli.rb +++ b/lib/json_cli/cli.rb @@ -1,5 +1,3 @@ -#!/usr/bin/env ruby -require 'json_cli' require 'thor' module JsonCli @@ -12,7 +10,7 @@ class CLI < Thor def left_join(right_file, left_file = '/dev/stdin') left_io = File.open(left_file, 'r') right_io = File.open(right_file, 'r') - JsonCli::Command::Join.left_join(left_io, right_io, opts) + JsonCli::Command::Join.new(left_io, right_io, opts).left_join [left_io, right_io, opts[:out]].each(&:close) end @@ -21,7 +19,7 @@ def left_join(right_file, left_file = '/dev/stdin') def right_join(right_file, left_file = '/dev/stdin') left_io = File.open(left_file, 'r') right_io = File.open(right_file, 'r') - JsonCli::Command::Join.right_join(left_io, right_io, opts) + JsonCli::Command::Join.new(left_io, right_io, opts).right_join [left_io, right_io, opts[:out]].each(&:close) end @@ -30,7 +28,7 @@ def right_join(right_file, left_file = '/dev/stdin') def inner_join(right_file, left_file = '/dev/stdin') left_io = File.open(left_file, 'r') right_io = File.open(right_file, 'r') - JsonCli::Command::Join.inner_join(left_io, right_io, opts) + JsonCli::Command::Join.new(left_io, right_io, opts).inner_join [left_io, right_io, opts[:out]].each(&:close) end @@ -38,7 +36,7 @@ def inner_join(right_file, left_file = '/dev/stdin') option :unwind_key, required: true, aliases: :k def unwind_array(json_file = '/dev/stdin') io = File.open(json_file, 'r') - JsonCli::Command::Unwind.unwind_array(io, opts) + JsonCli::Command::Unwind.new(io, opts).unwind_array [io, opts[:out]].each(&:close) end @@ -49,7 +47,7 @@ def unwind_array(json_file = '/dev/stdin') option :value_label def unwind_hash(json_file = '/dev/stdin') io = File.open(json_file, 'r') - JsonCli::Command::Unwind.unwind_hash(io, opts) + JsonCli::Command::Unwind.new(io, opts).unwind_hash [io, opts[:out]].each(&:close) end @@ -64,5 +62,3 @@ def opts end end end - -JsonCli::CLI.start(ARGV)