Module: FeideeUtils::Record::Persistent::ClassMethods
- Included in:
- FeideeUtils::Record
- Defined in:
- lib/feidee_utils/record/persistent.rb
Instance Method Summary collapse
-
#all ⇒ Object
Persistent.
- #column_names ⇒ Object
- #columns ⇒ Object
- #find(id) ⇒ Object
- #find_by_id(id) ⇒ Object
Instance Method Details
#all ⇒ Object
Persistent
38 39 40 41 42 43 44 45 46 |
# File 'lib/feidee_utils/record/persistent.rb', line 38 def all arr = [] database.query("SELECT * FROM #{self.table_name}") do |result| result.each do |raw_row| arr << self.new(raw_row) end end arr end |
#column_names ⇒ Object
33 34 35 |
# File 'lib/feidee_utils/record/persistent.rb', line 33 def column_names @column_names ||= self.columns.map do |entry| entry["name"] end.freeze end |
#columns ⇒ Object
29 30 31 |
# File 'lib/feidee_utils/record/persistent.rb', line 29 def columns database.table_info(self.table_name) end |
#find(id) ⇒ Object
65 66 67 |
# File 'lib/feidee_utils/record/persistent.rb', line 65 def find(id) find_by_id(id) or raise "No #{self.entity_name} of poid #{id} found" end |
#find_by_id(id) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/feidee_utils/record/persistent.rb', line 48 def find_by_id(id) raw_result = database.query( "SELECT * FROM #{self.table_name} WHERE #{self.id_field_name} = ?", id ) raw_row = raw_result.next return nil if raw_row == nil if raw_result.next != nil raise "Getting more than one result with the same ID #{id} " + "in table #{self.table_name}." end self.new(raw_row) end |