Class: SqlLogic::SQLArrayParam
- Inherits:
-
Object
- Object
- SqlLogic::SQLArrayParam
- Defined in:
- lib/sql_logic/sql_array_param.rb
Instance Method Summary collapse
- #add(param, connector = "AND") ⇒ Object
-
#initialize(param = nil) ⇒ SQLArrayParam
constructor
A new instance of SQLArrayParam.
- #merge!(param, param1, connector = "AND") ⇒ Object
- #pre_add(param) ⇒ Object
- #sql ⇒ Object
- #sql=(value) ⇒ Object
- #sql_params ⇒ Object
- #sql_params=(value) ⇒ Object
- #to_a ⇒ Object
- #valid_key(key, i = 0) ⇒ Object
Constructor Details
#initialize(param = nil) ⇒ SQLArrayParam
Returns a new instance of SQLArrayParam.
3 4 5 6 |
# File 'lib/sql_logic/sql_array_param.rb', line 3 def initialize(param = nil) @param_ary ||= ["", {}] @param_ary = param.to_a if param end |
Instance Method Details
#add(param, connector = "AND") ⇒ Object
28 29 30 31 32 33 |
# File 'lib/sql_logic/sql_array_param.rb', line 28 def add(param, connector = "AND") data = pre_add(param) self.sql+=((self.sql.blank? ? "" : " #{connector} ") + data.sql) self.sql_params.merge!(data.sql_params) return self end |
#merge!(param, param1, connector = "AND") ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/sql_logic/sql_array_param.rb', line 49 def merge!(param, param1, connector = "AND") param = SQLArrayParam.new(param) if param.is_a?(Array) param1 = SQLArrayParam.new(param1) if param1.is_a?(Array) data = pre_add(param) self.sql_params.merge!(data.sql_params) data1 = pre_add(param1) self.sql_params.merge!(data1.sql_params) if data.sql.blank? self.sql += data1.sql else self.sql += ["(", data.sql, " #{connector} ", data1.sql, ")"].join end return true end |
#pre_add(param) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/sql_logic/sql_array_param.rb', line 35 def pre_add(param) param = SQLArrayParam.new(param) if param.is_a?(Array) new_sql = param.sql new_param = {} param.sql_params.each do |key, value| new_key = valid_key(key) if new_key!=key new_sql.gsub!(Regexp.new(":#{key}\\b"), ":#{new_key}") end new_param.merge!({new_key=>value}) end return SQLArrayParam.new([new_sql, new_param]) end |
#sql ⇒ Object
12 13 14 |
# File 'lib/sql_logic/sql_array_param.rb', line 12 def sql @param_ary[0] end |
#sql=(value) ⇒ Object
16 17 18 |
# File 'lib/sql_logic/sql_array_param.rb', line 16 def sql=(value) @param_ary[0]=value end |
#sql_params ⇒ Object
20 21 22 |
# File 'lib/sql_logic/sql_array_param.rb', line 20 def sql_params @param_ary[1] end |
#sql_params=(value) ⇒ Object
24 25 26 |
# File 'lib/sql_logic/sql_array_param.rb', line 24 def sql_params=(value) @param_ary[1]=value end |
#to_a ⇒ Object
8 9 10 |
# File 'lib/sql_logic/sql_array_param.rb', line 8 def to_a @param_ary end |
#valid_key(key, i = 0) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/sql_logic/sql_array_param.rb', line 65 def valid_key(key, i=0) if self.sql_params.keys.include?(key) return valid_key("#{key}_#{i}".to_sym, i+1) else return key end end |