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