Sha256: 900cad7cbafd912e25d842f66d8a45f6d34f138e1bfa8222b733ab91ba62b118
Contents?: true
Size: 884 Bytes
Versions: 1
Compression:
Stored size: 884 Bytes
Contents
# base class for objects representing a single row in a query result class QueryRow attr_reader :raw def initialize(result, raw) @result = result @raw = raw end def [](key) @raw[key.to_s] end def []=(key, value) @raw[key.to_s] = value end def inspect '{' + @result.columns.map{|col| "#{col[:name]}=#{self.send(col[:name])}"}.join(', ') + '}' end def serialize_value(column) value = self.send(column[:name]) case column[:type] when :time value&.to_s else value end end def as_json(options={}) attrs = {} @result.columns.each do |col| attrs[col[:name]] = self.serialize_value col end attrs end def keys @result.column_names end # this is needed so that we can call defined_method outside of the subclass definition class << self public :define_method end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sql_builder-1.3.0 | lib/sql_builder/query_row.rb |