module Rollerskates::QueryHelper
Private Instance Methods
columns()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 94 def columns all_columns = database.prepare query_statement all_columns.columns.map(&:to_sym) end
create_columns()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 23 def create_columns @create_parameters[:created_at] = Time.now.to_s @create_parameters[:updated_at] = Time.now.to_s @create_parameters.keys.map { |column| "'#{column}'" }.join(", ") end
create_values()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 29 def create_values @create_parameters.values.map { |value| "'#{value}'" }.join(", ") end
data()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 77 def data execute unless @result @data ||= if @type == :collection @result.map { |row| row_to_object(row) } elsif @type == :object row_to_object(@result.flatten) end end
database()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 9 def database @model.database end
execute()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 72 def execute sql = @query ? @query : query_statement @result = database.execute sql end
from_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 48 def from_phrase "FROM #{table_name}" end
limit_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 64 def limit_phrase " LIMIT #{@limit}" if @limit end
method_missing(method, *_args) { |object| ... }
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 86 def method_missing(method, *_args) if block_given? data.each { |object| yield object } return true end data.send(method) end
offset_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 68 def offset_phrase " OFFSET #{@offset}" if @offset end
order_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 60 def order_phrase " ORDER BY #{@order}" if @order end
query_statement()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 13 def query_statement sql = "#{select_phrase} #{from_phrase}" sql << where_phrase unless @columns.empty? sql << order_phrase if @order sql << limit_phrase if @limit sql << offset_phrase if @offset sql end
row_to_object(row)
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 99 def row_to_object(row) model_object = @model.new columns.each_with_index do |attribute, index| model_object.send("#{attribute}=", row[index]) end model_object end
select_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 38 def select_phrase if @count "SELECT COUNT (*)" elsif @select "SELECT #{@select.flatten.join(', ')} " else "SELECT * " end end
table_name()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 5 def table_name @model.table_name end
update_values()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 33 def update_values @update_parameters[:updated_at] = Time.now.to_s @update_parameters.map { |key, value| "#{key}" << " = '#{value}'" } end
where_phrase()
click to toggle source
# File lib/rollerskates/orm/helpers/query_helper.rb, line 52 def where_phrase string = [] @columns.uniq.each do |col| string << col.map { |key, value| "#{key}" << " = '#{value}'" } end " WHERE #{string.join(' AND ')}" unless @columns.empty? end