Class: OccamsRecord::Results::Row
- Inherits:
-
Object
- Object
- OccamsRecord::Results::Row
- Defined in:
- lib/occams-record/results.rb
Overview
Abstract class for result rows.
Class Attribute Summary collapse
-
.associations ⇒ Object
Array of associations names.
-
.columns ⇒ Object
Array of column names.
-
.model_name ⇒ Object
Name of Rails model.
Instance Method Summary collapse
-
#initialize(raw_values) ⇒ Row
constructor
Initialize a new result row.
-
#inspect ⇒ String
Returns a string with the “real” model name and raw result values.
-
#to_h(symbolize_names: false) ⇒ Hash
(also: #to_hash)
Return row as a Hash (recursive).
Constructor Details
#initialize(raw_values) ⇒ Row
Initialize a new result row.
73 74 75 76 |
# File 'lib/occams-record/results.rb', line 73 def initialize(raw_values) @raw_values = raw_values @cast_values = {} end |
Class Attribute Details
.associations ⇒ Object
Array of associations names
61 62 63 |
# File 'lib/occams-record/results.rb', line 61 def associations @associations end |
.columns ⇒ Object
Array of column names
59 60 61 |
# File 'lib/occams-record/results.rb', line 59 def columns @columns end |
.model_name ⇒ Object
Name of Rails model
63 64 65 |
# File 'lib/occams-record/results.rb', line 63 def model_name @model_name end |
Instance Method Details
#inspect ⇒ String
Returns a string with the “real” model name and raw result values.
110 111 112 |
# File 'lib/occams-record/results.rb', line 110 def inspect "#<OccamsRecord::Results::Row @model_name=#{self.class.model_name} @raw_values=#{@raw_values}>" end |
#to_h(symbolize_names: false) ⇒ Hash Also known as: to_hash
Return row as a Hash (recursive).
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/occams-record/results.rb', line 84 def to_h(symbolize_names: false) hash = self.class.columns.reduce({}) { |a, col_name| key = symbolize_names ? col_name.to_sym : col_name a[key] = send col_name a } self.class.associations.reduce(hash) { |a, assoc_name| key = symbolize_names ? assoc_name.to_sym : assoc_name assoc = send assoc_name a[key] = if assoc.is_a? Array assoc.map { |x| x.to_h(symbolize_names: symbolize_names) } elsif assoc assoc.to_h(symbolize_names: symbolize_names) end a } end |