Module: SqlLogic

Defined in:
lib/sql_logic.rb,
lib/sql_logic/sql_array.rb,
lib/sql_logic/conditions.rb,
lib/sql_logic/hash_extend.rb,
lib/sql_logic/associations.rb,
lib/sql_logic/sql_array_param.rb

Defined Under Namespace

Modules: Associations, Conditions, HashExtend Classes: SQLArray, SQLArrayParam

Instance Method Summary collapse

Instance Method Details

#get_sql(sql_array) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
# File 'lib/sql_logic.rb', line 10

def get_sql(sql_array)
  sql_array = SQLArray.new(sql_array) if sql_array.is_a?(Hash)
  raise ArgumentError.new("Argument Error!") unless sql_array.is_a?(SQLArray)

  return sql_array.to_sql(self)
end

#get_sql_by_hash(sql_hash, options = {}) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
# File 'lib/sql_logic.rb', line 17

def get_sql_by_hash(sql_hash, options={})
  options[:skip_blank]||=true
  options[:strip]||=true
  raise ArgumentError.new("Argument Error!") unless sql_hash.is_a?(Hash)
  sql_hash.delete_if { |key, value| value.blank? } if options[:skip_blank]
  sql_hash.each { |key, value| sql_hash[key] = value.strip if value.respond_to?(:strip) } if options[:strip]
  get_sql(sql_hash)
end

#get_sql_by_key_value(key, value) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/sql_logic.rb', line 30

def get_sql_by_key_value(key, value)
  #key_method = "#{key}".to_sym
  associations = reflect_on_all_associations.collect { |assoc| assoc.name }
  if key.to_s =~ /^(#{column_names.join("|")})_(#{Conditions::PRIMARY_CONDITIONS.join("|")})$/ or key.to_s =~ /^(#{associations.join("|")})_(\w+)_(#{Conditions::PRIMARY_CONDITIONS.join("|")})$/
    key_method = "#{key}_to_sql".to_sym
    return self.send(key_method, value)
    #if self.respond_to?(key_method)
    sql = "#{self.table_name_without_schema}.#{key} = :#{key} "
    return [sql, {key_method=>value}]
    #return self.send(key_method, value)
    #else
    #  raise ArgumentError.new("Cannnot find #{key} method!")
    #end
  else
    return nil
  end
end

#table_name_without_schemaObject



26
27
28
# File 'lib/sql_logic.rb', line 26

def table_name_without_schema
  self.table_name.include?(".") ? self.table_name.split(".").last : self.table_name
end