Module: Peictt::Orm::QueryHelpers

Included in:
DatabaseMapper
Defined in:
lib/peictt/orm/query_helpers.rb

Instance Method Summary collapse

Instance Method Details

#destroy(model) ⇒ Object



13
14
15
16
17
18
# File 'lib/peictt/orm/query_helpers.rb', line 13

def destroy(model)
  @id = model.id
  @table = model.class.to_s.to_snake_case.pluralize
  Database.execute_query destroy_query, [@id]
  true
end

#destroy_all(table) ⇒ Object



25
26
27
28
# File 'lib/peictt/orm/query_helpers.rb', line 25

def destroy_all(table)
  @table = table
  Database.execute_query destroy_all_query
end

#destroy_all_queryObject



54
55
56
# File 'lib/peictt/orm/query_helpers.rb', line 54

def destroy_all_query
  "DELETE FROM #{@table}"
end

#destroy_queryObject



50
51
52
# File 'lib/peictt/orm/query_helpers.rb', line 50

def destroy_query
  "DELETE FROM #{@table} WHERE id = ?"
end

#find_by(model, attributes) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/peictt/orm/query_helpers.rb', line 4

def find_by(model, attributes)
  @table = model.to_s.downcase.pluralize
  @placeholders, @columns = set_columns_for_instance(attributes.keys)
  @values = attributes.values
  @combined_array = @columns.zip(@placeholders).
                    map { |item| item.join " = " }
  Database.execute_query(find_query, @values)[0]
end

#find_queryObject



45
46
47
48
# File 'lib/peictt/orm/query_helpers.rb', line 45

def find_query
  "SELECT * FROM #{@table} WHERE #{@combined_array.join(' AND ')} "\
  " LIMIT 1"
end

#get_all(klass) ⇒ Object



20
21
22
23
# File 'lib/peictt/orm/query_helpers.rb', line 20

def get_all(klass)
  table = klass.to_s.to_snake_case.pluralize
  Database.execute_query "SELECT * FROM #{table}"
end

#get_values_for_instance(model, variables) ⇒ Object



39
40
41
42
43
# File 'lib/peictt/orm/query_helpers.rb', line 39

def get_values_for_instance(model, variables)
  variables.map do |var|
    model.instance_variable_get var
  end
end

#set_columns_for_instance(variables) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/peictt/orm/query_helpers.rb', line 30

def set_columns_for_instance(variables)
  placeholders = []
  columns = variables.map do |var|
    placeholders << "?"
    var.to_s.sub /[:@]/, ""
  end
  [placeholders, columns]
end