Module: SqlLogic::HashExtend

Defined in:
lib/sql_logic/hash_extend.rb

Instance Method Summary collapse

Instance Method Details

#+(h) ⇒ Object



4
5
6
# File 'lib/sql_logic/hash_extend.rb', line 4

def +(h)
  return SQLArray.new([self, "AND", h])
end

#-(h) ⇒ Object



8
9
10
# File 'lib/sql_logic/hash_extend.rb', line 8

def -(h)
  return SQLArray.new([self, "OR", h])
end

#delete_blank!Object



12
13
14
# File 'lib/sql_logic/hash_extend.rb', line 12

def delete_blank!
  self.delete_if { |key, value| value.blank? }
end

#to_sObject



16
17
18
# File 'lib/sql_logic/hash_extend.rb', line 16

def to_s
  return self.inspect
end

#to_sql(record = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sql_logic/hash_extend.rb', line 20

def to_sql(record=nil)
  sql_with_params = []
  self.each do |key, value|
    if record
      sql_p = record.get_sql_by_key_value(key, value)
      sql_with_params << sql_p if sql_p
    else
      sql_with_params << ["#{key} = #{value}", {}]
    end
  end
  sql_array = SQLArrayParam.new
  sql_with_params.each do |sp|
    sql_array.add(sp)
  end
  if sql_with_params.size>1
    sql = ["(", sql_array.sql, ")"].join
  else
    sql = sql_array.sql
  end
  return [sql, sql_array.sql_params]
end