Class: Lore::Result
- Inherits:
-
Object
- Object
- Lore::Result
- Defined in:
- lib/lore/result.rb
Overview
:nodoc
Instance Attribute Summary collapse
-
#query_hashval ⇒ Object
readonly
Returns the value of attribute query_hashval.
Instance Method Summary collapse
- #fieldname(index) ⇒ Object
-
#get_field_names ⇒ Object
def get_field_value.
- #get_field_num ⇒ Object
- #get_field_types ⇒ Object
-
#get_field_value(row_index, field_name) ⇒ Object
def initialize.
- #get_row(row_num = 0) ⇒ Object
- #get_row_with_field_names(row_num = 0) ⇒ Object
- #get_rows ⇒ Object
- #get_tuple_num ⇒ Object
-
#initialize(query, result) ⇒ Result
constructor
expects PGresult.
Constructor Details
#initialize(query, result) ⇒ Result
expects PGresult
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/lore/result.rb', line 12 def initialize(query, result) # expects PGresult @result = result @field_types = nil @result_rows = Array.new # @query_hashval = Digest::MD5.hexdigest(query) @num_fields = @result.num_fields @field_counter = 0 end |
Instance Attribute Details
#query_hashval ⇒ Object (readonly)
Returns the value of attribute query_hashval.
10 11 12 |
# File 'lib/lore/result.rb', line 10 def query_hashval @query_hashval end |
Instance Method Details
#fieldname(index) ⇒ Object
111 112 113 114 115 |
# File 'lib/lore/result.rb', line 111 def fieldname(index) return @result.fieldname(index) end |
#get_field_names ⇒ Object
def get_field_value
30 31 32 |
# File 'lib/lore/result.rb', line 30 def get_field_names() return @result.fields end |
#get_field_num ⇒ Object
46 47 48 |
# File 'lib/lore/result.rb', line 46 def get_field_num() return @result.num_fields end |
#get_field_types ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/lore/result.rb', line 34 def get_field_types() return @field_types unless @field_types.nil? @field_types = Hash.new for field_index in 0...get_field_num() @field_types[@result.fields[field_index]] = @result.type(field_index) end return @field_types end |
#get_field_value(row_index, field_name) ⇒ Object
def initialize
23 24 25 26 27 28 |
# File 'lib/lore/result.rb', line 23 def get_field_value(row_index, field_name) field_index = @result.fieldnum(field_name) return @result.getvalue(row_index, field_index) end |
#get_row(row_num = 0) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/lore/result.rb', line 54 def get_row(row_num=0) return @result_rows.at(row_num) if @result_rows.at(row_num) return if @result.num_tuples == 0 # We cannot use a hash here, as there might be # duplicate attribute names due to joins: # # { # :fields => [ 'id', 'foo', 'foreign_id, 'id', 'bar' ] # :values => [ '1', 'wombat', '5', '5', 'cthulluh' ] # } row_result = Array.new @field_counter = 0 for @field_counter in 0...@num_fields do row_result << @result.getvalue(row_num, @field_counter) end @result_rows[row_num] = row_result return row_result end |
#get_row_with_field_names(row_num = 0) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/lore/result.rb', line 76 def get_row_with_field_names(row_num=0) return @result_rows.at(row_num) if @result_rows.at(row_num) return if @result.num_tuples == 0 row_result = Array.new @field_counter = 0 for @field_counter in 0...@num_fields do row_result << @result.getvalue(row_num, @field_counter) end @result_rows[row_num] = row_result @fieldnames = [] for @field_counter in 0...@num_fields do @fieldnames << @result.fieldname(@field_counter) end return { :values => row_result, :fields => @fieldnames } end |
#get_rows ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/lore/result.rb', line 96 def get_rows() if !@result_rows.first then for tuple_counter in 0...@result.num_tuples do get_row(tuple_counter) end @fieldnames = [] for @field_counter in 0...@num_fields do @fieldnames << @result.fieldname(@field_counter) end end result = { :values => @result_rows, :fields => @fieldnames } return result end |
#get_tuple_num ⇒ Object
50 51 52 |
# File 'lib/lore/result.rb', line 50 def get_tuple_num() return @result.num_tuples end |