class Microframe::ORM::Base

Public Class Methods

all() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 66
def all
  init_queryset(:select, "*").fetch
end
count() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 86
def count
  all.size
end
create(options={}) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 54
def create(options={})
  keys = options.keys.join(", ")
  values = options.values
  placeholders = Array.new(values.size, "?").join(", ")
  Connection.connect.execute("INSERT INTO #{table_name} (#{keys}) VALUES (#{placeholders})", values)
  self.last
end
create_table() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 26
def create_table
  query = "CREATE TABLE IF NOT EXISTS #{table_name} (#{@@create_table_query.join(", ")})"
  if Connection.execute(query)
    @@create_table_query = []
    define_attributes
  end
end
define_attributes() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 34
def define_attributes
  save_data = []
  Connection.retrieve_columns(table_name).each do |column|
    save_data << column
    define_method("#{column}=") do |val|
      instance_var = "@#{column}"
      instance_variable_set(instance_var, val)
    end

    define_method(column) do
      instance_var = "@#{column}"
      instance_variable_get(instance_var)
    end
  end

  define_method("models_columns") do
    save_data
  end
end
destroy(id) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 106
def destroy(id)
  destroy_all("WHERE id = #{id}")
end
destroy_all(xtra = "; VACUUM") click to toggle source
# File lib/microframe/orm/class_queries.rb, line 110
def destroy_all(xtra = "; VACUUM")
  query = "DELETE FROM #{table_name} #{xtra}"
  Connection.connect.execute(query)
  self
end
find(id) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 70
def find(id)
  find_by(id: id)
end
find_by(options) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 74
def find_by(options)
  init_queryset(:find_by, options).fetch.first
end
first() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 90
def first
  limit(1).fetch.first
end
get_create_table_query() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 22
def get_create_table_query
  @@create_table_query
end
inherited(base) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 11
def inherited(base)
  base.include InstanceQueries
end
init_queryset(mtd, option) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 116
def init_queryset(mtd, option)
  Queryset.new(self).send(mtd, option)
end
last() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 94
def last
  limit(1).order("id DESC").fetch.first
end
limit(val) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 98
def limit(val)
  init_queryset(:limit, val)
end
order(val) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 102
def order(val)
  init_queryset(:order, val)
end
property(col_name, options = {}) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 15
def property(col_name, options = {})
  options[:type] = options[:type].to_s.upcase
  options[:nullable] = options[:nullable] ? "NULL" : "NOT NULL"
  options[:primary_key] = options[:primary_key] ? "PRIMARY KEY AUTOINCREMENT" : ""
  @@create_table_query << (col_name.to_s + " " + options.values.join(" "))
end
select(val) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 82
def select(val)
  init_queryset(:select, val)
end
table_name() click to toggle source
# File lib/microframe/orm/class_queries.rb, line 62
def table_name
  self.to_s.downcase + "s"
end
where(options) click to toggle source
# File lib/microframe/orm/class_queries.rb, line 78
def where(options)
  init_queryset(:where, options)
end

Public Instance Methods

table_name() click to toggle source
# File lib/microframe/orm/base.rb, line 9
def table_name
  self.class.table_name
end