Class: Kor::Output::Json

Inherits:
Object
  • Object
show all
Defined in:
lib/kor/output/json.rb,
lib/kor/output/json/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ Json

Returns a new instance of Json.



14
15
16
17
18
19
20
# File 'lib/kor/output/json.rb', line 14

def initialize(io)
  @io = io
  @single = false
  @keys = []
  @values = []
  @count = 0
end

Instance Method Details

#finishObject



50
51
52
53
54
# File 'lib/kor/output/json.rb', line 50

def finish
  if @single
    io.puts "]"
  end
end

#head(keys) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/kor/output/json.rb', line 32

def head(keys)
  @keys = keys
  @values = []
  if @single
    io.print '['
  end
end

#ioObject



22
23
24
# File 'lib/kor/output/json.rb', line 22

def io
  @io
end

#parse(opt) ⇒ Object



26
27
28
29
30
# File 'lib/kor/output/json.rb', line 26

def parse(opt)
  opt.on("--single", "All output join one JSON") do |arg|
    @single = arg
  end
end

#puts(values) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/kor/output/json.rb', line 40

def puts(values)
  if @single
    comma = @count == 0 ? "" : ","
    @count += 1
    io.print "#{comma}#{@keys.zip(values).to_h.to_json}"
  else
    io.puts @keys.zip(values).to_h.to_json
  end
end