module Searchable
Public Instance Methods
all()
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 2 def all Relation.new(self) end
find(id)
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 6 def find(id) all.where(id: id).limit(1).first end
find_by(conditions)
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 10 def find_by(conditions) all.where(conditions).limit(1).first end
find_by_sql(sql, values = [])
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 14 def find_by_sql(sql, values = []) results = DBConnection.execute(sql, values) parse_all(results) end
first()
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 19 def first all.order(:id).limit(1).first end
last()
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 23 def last all.order(:id, :DESC).limit(1).first end
method_missing(method_name, *args)
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 27 def method_missing(method_name, *args) if method_name.to_s.start_with?("find_by_") columns = method_name[8..-1].split('_and_') conditions = {} columns.size.times { |i| conditions[columns[i]] = args[i] } all.where(conditions).limit(1).first else all.send(method_name, *args) end end
parse_all(results)
click to toggle source
# File lib/laris/larisrecord/searchable.rb, line 40 def parse_all(results) results.map { |params| new(params) } end