Module: Peictt::Orm::QueryHelpers
- Included in:
- DatabaseMapper
- Defined in:
- lib/peictt/orm/query_helpers.rb
Instance Method Summary collapse
- #destroy(model) ⇒ Object
- #destroy_all(table) ⇒ Object
- #destroy_all_query ⇒ Object
- #destroy_query ⇒ Object
- #find_by(model, attributes) ⇒ Object
- #find_query ⇒ Object
- #get_all(klass) ⇒ Object
- #get_values_for_instance(model, variables) ⇒ Object
- #set_columns_for_instance(variables) ⇒ Object
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_query ⇒ Object
54 55 56 |
# File 'lib/peictt/orm/query_helpers.rb', line 54 def destroy_all_query "DELETE FROM #{@table}" end |
#destroy_query ⇒ Object
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_query ⇒ Object
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 |