class Microframe::ORM::Queryset

Attributes

queryset[R]
table_name[R]

Public Class Methods

new(model) click to toggle source
# File lib/microframe/orm/queryset.rb, line 10
def initialize(model)
  @queryset = {}
  @table_name = model.table_name
  @model = model
end

Public Instance Methods

add_query(field, condition) click to toggle source
# File lib/microframe/orm/queryset.rb, line 49
def add_query(field, condition)
  @queryset ||= {}
  @queryset[field] = queryset[field] ?  queryset[field] << condition : [condition]
  self
end
all(val = "*") click to toggle source
# File lib/microframe/orm/queryset.rb, line 22
def all(val = "*")
  add_query("SELECT", "#{val}") unless queryset["SELECT"]
  fetch
end
fetch() click to toggle source
# File lib/microframe/orm/queryset.rb, line 55
def fetch
  result = process_query(queryset)
  @queryset = {}
  parse_result_to_objects(result)
end
find(id) click to toggle source
# File lib/microframe/orm/queryset.rb, line 27
def find(id)
  where(id: id)
end
find_by(option) click to toggle source
# File lib/microframe/orm/queryset.rb, line 31
def find_by(option)
  where(option)
end
limit(val) click to toggle source
# File lib/microframe/orm/queryset.rb, line 39
def limit(val)
  @queryset["LIMIT"] = val
  self
end
load() click to toggle source
# File lib/microframe/orm/queryset.rb, line 61
def load
  fetch.first
end
order(val) click to toggle source
# File lib/microframe/orm/queryset.rb, line 44
def order(val)
  @queryset["ORDER BY"] = val
  self
end
select(val) click to toggle source
# File lib/microframe/orm/queryset.rb, line 35
def select(val)
  add_query("SELECT", val)
end
where(options) click to toggle source
# File lib/microframe/orm/queryset.rb, line 16
def where(options)
  sql = []
  options.each {|key, val| sql << "#{key.to_s} = '#{val}'"}
  add_query("WHERE",  sql.join(" AND "))
end