Class: Masheri::QueryBuilder
- Inherits:
-
Object
- Object
- Masheri::QueryBuilder
show all
- Defined in:
- lib/masheri/query_builder.rb
Defined Under Namespace
Classes: From, Items, Order, Page, Select, Where
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(klass, options = {}) ⇒ QueryBuilder
Returns a new instance of QueryBuilder.
5
6
7
8
9
10
|
# File 'lib/masheri/query_builder.rb', line 5
def initialize(klass, options = {})
@klass = klass
@options = options
@conditions = Where.new
@select = Select.new
end
|
Instance Attribute Details
#klass ⇒ Object
Returns the value of attribute klass.
3
4
5
|
# File 'lib/masheri/query_builder.rb', line 3
def klass
@klass
end
|
Instance Method Details
#find_each(&block) ⇒ Object
#from(argument) ⇒ Object
17
18
19
20
|
# File 'lib/masheri/query_builder.rb', line 17
def from(argument)
@from = From.new(argument)
clone
end
|
#items(argument) ⇒ Object
32
33
34
35
|
# File 'lib/masheri/query_builder.rb', line 32
def items(argument)
@items = Items.new(argument)
clone
end
|
#order(column, order) ⇒ Object
27
28
29
30
|
# File 'lib/masheri/query_builder.rb', line 27
def order(column, order)
@order = Order.new(column, order)
clone
end
|
#page(argument) ⇒ Object
37
38
39
40
|
# File 'lib/masheri/query_builder.rb', line 37
def page(argument)
@page = Page.new(argument)
clone
end
|
#query ⇒ Object
Also known as:
to_s
42
43
44
45
46
|
# File 'lib/masheri/query_builder.rb', line 42
def query
[@select, @from, @order, @conditions, @page, @items].map(&:to_s).reject {|s|
s.blank?
}.compact.join(" ").strip
end
|
#select(argument) ⇒ Object
12
13
14
15
|
# File 'lib/masheri/query_builder.rb', line 12
def select(argument)
@select = Select.new(argument)
clone
end
|
#to_json ⇒ Object
50
51
52
|
# File 'lib/masheri/query_builder.rb', line 50
def to_json
Masheri.rpc.query(query)
end
|
#where(argument) ⇒ Object
22
23
24
25
|
# File 'lib/masheri/query_builder.rb', line 22
def where(argument)
@conditions.add argument
clone
end
|