module Sack::Database::Generator
Generator
Module: Provides SQL generator methods for building queries.
Public Class Methods
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
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: 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: 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