Class: CrateRuby::ResultSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/crate_ruby/result_set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(result) ⇒ ResultSet



29
30
31
32
33
34
35
# File 'lib/crate_ruby/result_set.rb', line 29

def initialize(result)
  result = JSON.parse(result)
  @cols = result['cols']
  @rows = result['rows']
  @rowcount = result['rowcount']
  @duration = result['duration']
end

Instance Attribute Details

#colsObject (readonly)

Returns the value of attribute cols.



26
27
28
# File 'lib/crate_ruby/result_set.rb', line 26

def cols
  @cols
end

#durationObject (readonly)

Returns the value of attribute duration.



26
27
28
# File 'lib/crate_ruby/result_set.rb', line 26

def duration
  @duration
end

#rowcountObject (readonly)

Returns the value of attribute rowcount.



26
27
28
# File 'lib/crate_ruby/result_set.rb', line 26

def rowcount
  @rowcount
end

Instance Method Details

#<<(val) ⇒ Object



41
42
43
# File 'lib/crate_ruby/result_set.rb', line 41

def <<(val)
  @rows << val
end

#[](val) ⇒ Object



49
50
51
# File 'lib/crate_ruby/result_set.rb', line 49

def [](val)
  @rows[val]
end

#each(&block) ⇒ Object



45
46
47
# File 'lib/crate_ruby/result_set.rb', line 45

def each(&block)
  @rows.each(&block)
end

#inspectObject



37
38
39
# File 'lib/crate_ruby/result_set.rb', line 37

def inspect
  %Q{#<CrateRuby::ResultSet:#{object_id}>, @rowcount="#{@rowcount}", @duration=#{@duration}>}
end

#select_columns(ary, &block) ⇒ Array



60
61
62
63
# File 'lib/crate_ruby/result_set.rb', line 60

def select_columns(ary, &block)
  indexes = ary.map {|col| @cols.index(col)}.compact
  @rows.map{|r| r.values_at(*indexes)}.each(&block)
end

#valuesArray



54
55
56
# File 'lib/crate_ruby/result_set.rb', line 54

def values
  @rows
end