module RapidRunty::Model::BaseQueries

Public Class Methods

included(base) click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 4
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

destroy() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 81
def destroy
  DB.execute_query("DELETE FROM #{get_table_name} WHERE id = ?", id)
end
save() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 64
def save
  if id
    DB.execute_query(
      "UPDATE #{get_table_name} SET #{update_placeholders} WHERE id = ?",
      entity_values << id
    )
  else
    DB.execute_query(
      "INSERT INTO #{get_table_name} (#{get_table_columns}) VALUES (#{new_placeholders})",
      entity_values
    )
  end
  true
end
Also aliased as: save!
save!()
Alias for: save

Private Instance Methods

entity_values() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 95
def entity_values
  get_columns.map(&method(:send))
end
get_columns() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 107
def get_columns
  columns ||= get_properties.keys
  columns.delete(:id)
  columns
end
get_properties() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 87
def get_properties
  self.class.instance_variable_get(:@property)
end
get_table_columns() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 113
def get_table_columns
  get_columns.map(&:to_s).join(', ')
end
get_table_name() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 91
def get_table_name
  self.class.instance_variable_get(:@table)
end
new_placeholders() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 103
def new_placeholders
  (['?'] * (get_properties.keys.size - 1)).join(', ')
end
update_placeholders() click to toggle source
# File lib/rapid_runty/model/base_queries.rb, line 99
def update_placeholders
  get_columns.map { |column| "#{column} = ?" }.join(',')
end