module RapidRunty::Model::BaseQueries::ClassMethods

Public Instance Methods

all() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 40
def all
  DB.execute_query(
    "SELECT * FROM #{@table} ORDER BY id"
  ).map(&method(:model_object))
end
count() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 46
def count
  all.size
end
destroy_all() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 50
def destroy_all
  DB.execute_query("DELETE from #{@table}")
end
find(id) click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 9
def find(id)
  row = DB.execute_query(
    "SELECT * FROM #{@table} WHERE id = ?",
    id.to_i
  ).first
  model_object(row)
end
find_by(search_params) click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 17
def find_by(search_params)
  param, value = search_params.first
  row = DB.execute_query(
    "SELECT * FROM #{@table} WHERE #{param} = ?",
    value
  ).first
  model_object(row)
end
first() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 26
def first
  row = DB.execute_query(
    "SELECT * FROM #{@table} ORDER BY id LIMIT 1 "
  ).first
  model_object(row)
end
last() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 33
def last
  row = DB.execute_query(
    "SELECT * FROM #{@table} ORDER BY id DESC LIMIT 1"
  ).first
  model_object(row)
end
model_object(row) click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 54
def model_object(row)
  return nil unless row
  model ||= new
  @property.keys.each_with_index do |key, index|
    model.send("#{key}=", row[index])
  end
  model
end