module Searchable
Public Instance Methods
find(id)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 23 def find(id) search_datum = DBConnection.get_first_row(<<-SQL) SELECT * FROM #{self.table_name} WHERE id = #{id} SQL raise RecordNotFound, "This record does not exist" if search_datum.nil? self.new(search_datum) end
find_by(params)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 2 def find_by(params) where_clause = WhereClause.new([params]) search_datum = DBConnection.get_first_row(<<-SQL, where_clause.values) SELECT * FROM #{self.table_name} #{where_clause.as_sql} SQL search_datum.nil? ? nil : self.new(search_datum) end
group(group_attr)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 52 def group(group_attr) Relation.new( {group: GroupClause.new(group_attr)}, self ) end
joins(association, _ = nil)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 36 def joins(association, _ = nil) options = self.assoc_options[association] Relation.new( {join: JoinOptions.new(options, self.table_name)}, self ) end
order(ordering_attr)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 59 def order(ordering_attr) Relation.new( {order: OrderClause.new(ordering_attr)}, self ) end
select(*params)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 45 def select(*params) Relation.new( {select: SelectClause.new(params)}, self ) end
where(*params)
click to toggle source
# File lib/activeleopard/modules/searchable.rb, line 16 def where(*params) Relation.new( {where: WhereClause.new(params)}, self ) end