module Peictt::Orm::QueryHelpers
Public Instance Methods
destroy(model)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/peictt/orm/query_helpers.rb, line 54 def destroy_all_query "DELETE FROM #{@table}" end
destroy_query()
click to toggle source
# File lib/peictt/orm/query_helpers.rb, line 50 def destroy_query "DELETE FROM #{@table} WHERE id = ?" end
find_by(model, attributes)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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