module Sack::Database::Generator

Generator Module: Provides SQL generator methods for building queries.

Public Class Methods

fields(schema, table, field_hash) click to toggle source

Generate Field Name List: Builds a list of field names present in field_hash, separated by commas. @param [Hash] schema Database schema @param [Symbol] table Table name @param [Hash] field_hash Hash containing field names as keys @return [String] A comma-separated list of field names

# File lib/sack/database/generator.rb, line 23
def self.fields schema, table, field_hash
        field_hash.keys.collect { |k| Sanitizer.field schema, table, k }.join ', '
end
marks(field_hash) click to toggle source

Value Marks: Builds a list of field markers ('?') for fields present in field_hash, separated by commas. @param [Hash] field_hash Hash containing fields @return [String] A comma-separated list of field markers ('?')

# File lib/sack/database/generator.rb, line 31
def self.marks field_hash
        (['?'] * field_hash.size).join ', '
end
update_marks(schema, table, field_hash) click to toggle source

Update Marks: Builds a list of field value markers ('field = ?') for fields present in field_hash, separated by commas. @param [Hash] schema Database schema @param [Symbol] table Table name @param [Hash] field_hash Hash containing field names as keys @return [String] A comma-separated list of field value markers ('field = ?')

# File lib/sack/database/generator.rb, line 41
def self.update_marks schema, table, field_hash
        field_hash.collect { |k, v| "#{Sanitizer.field schema, table, k} = #{v ? '?' : 'NULL'}" }.join ', '
end
values(vals) click to toggle source

Values: Replaces all symbols in vals by their stringified values. @param [Array] vals Array of value objects @return [Array] A copy of vals where every symbol has been replaced by its string representation

# File lib/sack/database/generator.rb, line 49
def self.values vals
        vals.collect { |v| v.nil? ? nil : (v.is_a?(Symbol) ? v.to_s : v) }.reject { |e| e.nil? }
end