duck_chain 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd46928c5d5d1ee398d1fb04aef1f57616e88c07
4
- data.tar.gz: 4f35627f52ea073c32832bd361ad4b7ba6271dbc
3
+ metadata.gz: 27f1bbe0a02c0a8cf4b2e8259aefc4dfc7eab511
4
+ data.tar.gz: 384b5cad977fa280087b717782d4f69d8765c6ea
5
5
  SHA512:
6
- metadata.gz: 96f7b2408a2ea2dc44906dea7ef82f904eeaf16ac64bb7b4f1f22f8f95cb0d9c18c47693929966f35fe25ea5dd774f64dda2557d5aba4713ba18606bf6f249e3
7
- data.tar.gz: 16183a35f800aa5539a0606b9ac990f934795175123843158637fa8d70896e6d20441661e7d58be3be5de28937349c8566087e8ff624265c95c207e891a99fad
6
+ metadata.gz: 2018bc688697f81a82dee75e2fdfa7a142ced7bc9f461baebb7b636703ec2327b16d03af5e4a0a9dc3344a6d4b1e0e94fdf1214805cdc27d155d31f272b9d282
7
+ data.tar.gz: 420db6290a3d620da329d9424f1016dba8fc91a39ea0d4da0a46d123ce9acf08772d0cb6727fc84c507e01793687f555337b2416cea2356562cf3dcb8f156bb3
@@ -1,3 +1,6 @@
1
+ Version 1.1.2
2
+ * Table names added to query conditions (ambisoft)
3
+
1
4
  Version 1.1.1
2
5
  * Use string litterals in column names for the conditions (ambisoft)
3
6
 
@@ -5,6 +5,10 @@ module DuckChain
5
5
  def self.set_as_array(value)
6
6
  value.is_a?(Array) ? value : [value]
7
7
  end
8
+
9
+ def self.col_full_name(quoted_table_name, m)
10
+ "#{quoted_table_name}.#{m}"
11
+ end
8
12
 
9
13
  # Creates 'eq' class methods for the model
10
14
  # Ex:: Post.title_eq("Why do my feet smell?")
@@ -25,9 +29,9 @@ module DuckChain
25
29
  ['eq','equals','is','in'].each do |suffix|
26
30
  self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term|
27
31
  if search_term.is_a?(Array) || search_term.is_a?(Range)
28
- where(["#{m} IN (?)", search_term])
32
+ where(["#{Toolset.col_full_name(quoted_table_name, m)} IN (?)", search_term])
29
33
  else
30
- where(["#{m} = ?", search_term])
34
+ where(["#{Toolset.col_full_name(quoted_table_name, m)} = ?", search_term])
31
35
  end
32
36
  }
33
37
  )
@@ -36,9 +40,9 @@ module DuckChain
36
40
  ['neq','not_equal','is_not','does_not_equal','not_in'].each do |suffix|
37
41
  self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term|
38
42
  if search_term.is_a?(Array) || search_term.is_a?(Range)
39
- where(["#{m} NOT IN (?)", search_term])
43
+ where(["#{Toolset.col_full_name(quoted_table_name, m)} NOT IN (?)", search_term])
40
44
  else
41
- where(["#{m} != ?", search_term])
45
+ where(["#{Toolset.col_full_name(quoted_table_name, m)} != ?", search_term])
42
46
  end
43
47
  }
44
48
  )
@@ -57,13 +61,13 @@ module DuckChain
57
61
  # * not_end_with
58
62
  def self.create_like_methods(model_attributes)
59
63
  Toolset.set_as_array(model_attributes).each do |m|
60
- self.class.send(:define_method, "#{m}_like", Proc.new{ |search_term| where(["#{m} LIKE (?)", "%#{search_term}%"])} )
61
- self.class.send(:define_method, "#{m}_begins_with", Proc.new{ |search_term| where(["#{m} LIKE (?)", "#{search_term}%"])} )
62
- self.class.send(:define_method, "#{m}_ends_with", Proc.new{ |search_term| where(["#{m} LIKE (?)", "%#{search_term}"])} )
64
+ self.class.send(:define_method, "#{m}_like", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} LIKE (?)", "%#{search_term}%"])} )
65
+ self.class.send(:define_method, "#{m}_begins_with", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} LIKE (?)", "#{search_term}%"])} )
66
+ self.class.send(:define_method, "#{m}_ends_with", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} LIKE (?)", "%#{search_term}"])} )
63
67
 
64
- self.class.send(:define_method, "#{m}_not_like", Proc.new{ |search_term| where(["#{m} NOT LIKE (?)", "%#{search_term}%"])} )
65
- self.class.send(:define_method, "#{m}_not_begin_with", Proc.new{ |search_term| where(["#{m} NOT LIKE (?)", "#{search_term}%"])} )
66
- self.class.send(:define_method, "#{m}_not_end_with", Proc.new{ |search_term| where(["#{m} NOT LIKE (?)", "%#{search_term}"])} )
68
+ self.class.send(:define_method, "#{m}_not_like", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} NOT LIKE (?)", "%#{search_term}%"])} )
69
+ self.class.send(:define_method, "#{m}_not_begin_with", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} NOT LIKE (?)", "#{search_term}%"])} )
70
+ self.class.send(:define_method, "#{m}_not_end_with", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} NOT LIKE (?)", "%#{search_term}"])} )
67
71
  end
68
72
  end
69
73
 
@@ -81,16 +85,16 @@ module DuckChain
81
85
  def self.create_range_methods(model_attributes)
82
86
  Toolset.set_as_array(model_attributes).each do |m|
83
87
  ['gt','greater_than'].each do |suffix|
84
- self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{m} > ?", search_term])} )
88
+ self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} > ?", search_term])} )
85
89
  end
86
90
  ['gte','greater_than_or_equal_to'].each do |suffix|
87
- self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{m} >= ?", search_term])} )
91
+ self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} >= ?", search_term])} )
88
92
  end
89
93
  ['lt','less_than'].each do |suffix|
90
- self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{m} < ?", search_term])} )
94
+ self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} < ?", search_term])} )
91
95
  end
92
96
  ['lte','less_than_or_equal_to'].each do |suffix|
93
- self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{m} <= ?", search_term])} )
97
+ self.class.send(:define_method, "#{m}_#{suffix}", Proc.new{ |search_term| where(["#{Toolset.col_full_name(quoted_table_name, m)} <= ?", search_term])} )
94
98
  end
95
99
  end
96
100
  end
@@ -1,3 +1,3 @@
1
1
  module DuckChain
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duck_chain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Drake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-13 00:00:00.000000000 Z
11
+ date: 2013-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord