Class: JsonCli::Command::Join
Overview
Join JSON class
Instance Method Summary collapse
-
#initialize(left_io, right_io, options) ⇒ Join
constructor
A new instance of Join.
- #inner_join ⇒ Object
- #left_join ⇒ Object
- #right_join ⇒ Object
Constructor Details
#initialize(left_io, right_io, options) ⇒ Join
Returns a new instance of Join.
8 9 10 11 12 13 |
# File 'lib/json_cli/command/join.rb', line 8 def initialize(left_io, right_io, ) super() @left_io = left_io @right_io = right_io @join_key = [:join_key] end |
Instance Method Details
#inner_join ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/json_cli/command/join.rb', line 23 def inner_join right = io2hash(@right_io) @left_io.each do |line| obj = MultiJson.load(line.chomp) next if !obj.key?(@join_key) || !right.key?((jk_val = obj[@join_key])) @output.puts MultiJson.dump(obj.merge(right[jk_val])) end end |
#left_join ⇒ Object
15 16 17 |
# File 'lib/json_cli/command/join.rb', line 15 def left_join join(@left_io, @right_io) end |
#right_join ⇒ Object
19 20 21 |
# File 'lib/json_cli/command/join.rb', line 19 def right_join join(@right_io, @left_io) end |