-
Notifications
You must be signed in to change notification settings - Fork 2
/
model.rb
39 lines (29 loc) · 964 Bytes
/
model.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require 'cramp'
require 'cramp/model/evented_mysql'
require 'cramp/model/emysql_ext'
require 'mysqlplus'
require 'arel'
require 'cramp/model/arel_monkey_patches'
require 'active_model'
module Cramp
module Model
autoload :Quoting, "cramp/model/quoting"
autoload :Engine, "cramp/model/engine"
autoload :Column, "cramp/model/column"
autoload :Relation, "cramp/model/relation"
autoload :Base, "cramp/model/base"
autoload :Finders, "cramp/model/finders"
autoload :Attribute, "cramp/model/attribute"
autoload :AttributeMethods, "cramp/model/attribute_methods"
autoload :Status, "cramp/model/status"
def self.init(settings)
Arel::Table.engine = Cramp::Model::Engine.new(settings)
end
def self.select(query, callback = nil, &block)
callback ||= block
EventedMysql.select(query) do |rows|
callback.arity == 1 ? callback.call(rows) : callback.call if callback
end
end
end
end