Module: SQLite3::Record
- Defined in:
- lib/sqlite3/record.rb
Overview
manage SQLite3::Records
The SQLite3::Record module is able to generate classes that are optimized for a specific set of columns. It is build on top of Struct, which is way faster than Hashes, for example.
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.for_columns(columns) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/sqlite3/record.rb', line 52 def self.for_columns(columns) columns = columns.map(&:to_sym) @@classes ||= {} @@classes[columns] ||= begin struct = Struct.new(*columns) struct.extend SQLite3::Record::ClassMethods struct.include SQLite3::Record struct.columns = columns struct end end |
Instance Method Details
#to_a ⇒ Object
40 41 42 |
# File 'lib/sqlite3/record.rb', line 40 def to_a self.class.columns.map do |column| send(column) end end |
#to_hash ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/sqlite3/record.rb', line 44 def to_hash kvs = self.class.columns.inject([]) do |ary, column| ary << column << send(column) end Hash[*kvs] end |