Class: Rollerskates::QueryBuilder

Inherits:
Object
  • Object
show all
Includes:
QueryHelper
Defined in:
lib/rollerskates/orm/query_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.



7
8
9
10
11
# File 'lib/rollerskates/orm/query_builder.rb', line 7

def initialize(model)
  @model = model
  @columns = []
  @type = :collection
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rollerskates::QueryHelper

Instance Method Details

#build(create_parameters) ⇒ Object



61
62
63
64
65
66
# File 'lib/rollerskates/orm/query_builder.rb', line 61

def build(create_parameters)
  @create_parameters = create_parameters
  @query = "INSERT INTO #{table_name} (#{create_columns})\
    VALUES (#{create_values})"
  self
end

#countObject



48
49
50
51
52
# File 'lib/rollerskates/orm/query_builder.rb', line 48

def count
  @count = true
  execute
  @result.flatten[0].to_i
end

#destroy(item_id = nil) ⇒ Object



68
69
70
71
72
73
# File 'lib/rollerskates/orm/query_builder.rb', line 68

def destroy(item_id = nil)
  index = item_id ? item_id : id
  @query = "DELETE FROM #{table_name} WHERE id = #{index}"
  execute
  self
end

#destroy_allObject



75
76
77
78
79
# File 'lib/rollerskates/orm/query_builder.rb', line 75

def destroy_all
  @query = "DELETE FROM #{table_name}"
  execute
  self
end

#first(number = nil) ⇒ Object



28
29
30
31
# File 'lib/rollerskates/orm/query_builder.rb', line 28

def first(number = nil)
  @type = :object unless number
  number ? limit(number) : limit(1)
end

#limit(limit_condition = nil) ⇒ Object



33
34
35
36
# File 'lib/rollerskates/orm/query_builder.rb', line 33

def limit(limit_condition = nil)
  @limit = limit_condition if limit_condition
  self
end

#offset(offset_condition) ⇒ Object



38
39
40
41
# File 'lib/rollerskates/orm/query_builder.rb', line 38

def offset(offset_condition)
  @offset = offset_condition if offset_condition
  self
end

#order(order_conditions) ⇒ Object



43
44
45
46
# File 'lib/rollerskates/orm/query_builder.rb', line 43

def order(order_conditions)
  @order = order_conditions.to_s
  self
end

#saveObject



81
82
83
84
85
# File 'lib/rollerskates/orm/query_builder.rb', line 81

def save
  @type = :object
  execute
  data
end

#select(*select_conditions) ⇒ Object



13
14
15
16
# File 'lib/rollerskates/orm/query_builder.rb', line 13

def select(*select_conditions)
  @select = select_conditions
  self
end

#update(update_parameters) ⇒ Object



54
55
56
57
58
59
# File 'lib/rollerskates/orm/query_builder.rb', line 54

def update(update_parameters)
  @update_parameters = update_parameters
  @query = "UPDATE #{table_name} SET \
    #{update_values.join(', ')} WHERE id = #{id}"
  self
end

#where(where_conditions, object = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/rollerskates/orm/query_builder.rb', line 18

def where(where_conditions, object = nil)
  if object
    @type = :object
    limit(1)
  end

  @columns << where_conditions
  self
end