class Matrack::Queries

Public Class Methods

count() click to toggle source
# File lib/orm/queries.rb, line 12
def count
  row = db_conn.execute "SELECT COUNT(*) FROM #{table_name}"
  row.hash_getter.values.first
end
destroy(id) click to toggle source
# File lib/orm/queries.rb, line 4
def destroy(id)
  execute "DELETE FROM #{table_name} WHERE (#{uniq_id} = #{id})"
end
destroy_all() click to toggle source
# File lib/orm/queries.rb, line 8
def destroy_all
  execute "DELETE FROM #{table_name}"
end
update(id, hash) click to toggle source

.update(1, title: “updated task again”, done: “yes”)

# File lib/orm/queries.rb, line 18
def update(id, hash)
  fields = hash.map{|k,v| "'#{k}'" " = "  "'#{v}'"}.join(", ")
  qry = "UPDATE #{table_name} SET #{fields} WHERE (#{uniq_id} = #{id})"
  return "Record updated" if db_conn.execute qry
end

Public Instance Methods

insert_hash() click to toggle source
# File lib/orm/queries.rb, line 34
def insert_hash
  hash = {}
  instance_variables.each do |v|
    var = v.to_s
    if var == "@password"
      hash[var] = self.class.password_hash(instance_variable_get(v))
    else
      hash[var] = instance_variable_get(v)
    end
  end
  hash
end
save() click to toggle source
# File lib/orm/queries.rb, line 25
def save
  hash = insert_hash
  attributes = hash.keys.map{ |k| k.sub("@","") }.join(", ")
  values = "#{hash.values}".gsub(/\[|\]/,"").gsub(/\"/,"'")
  query = "INSERT INTO #{self.class.table_name} (#{attributes})
          VALUES (#{values});"
  self.class.execute query
end