aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-12-16 07:42:17 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2015-12-16 07:42:17 -0800
commit899e8428c50c586e6c8d4884b542ac9fdf01e95f (patch)
treecea78b06495af32c84f7fa34f4cc104b6cb3c1bf /lib/arel/nodes
parent3c429c5d86e9e2201c2a35d934ca6a8911c18e69 (diff)
parent725cf0502eb279c728bd93320cc5e22134228ff1 (diff)
downloadrails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.tar.gz
rails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.tar.bz2
rails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.zip
Merge pull request #403 from kbrock/regexp
Case insensitivite match/regular expressions
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r--lib/arel/nodes/binary.rb2
-rw-r--r--lib/arel/nodes/matches.rb4
-rw-r--r--lib/arel/nodes/regexp.rb14
3 files changed, 17 insertions, 3 deletions
diff --git a/lib/arel/nodes/binary.rb b/lib/arel/nodes/binary.rb
index dddbde1431..763091c267 100644
--- a/lib/arel/nodes/binary.rb
+++ b/lib/arel/nodes/binary.rb
@@ -38,9 +38,7 @@ module Arel
LessThanOrEqual
NotEqual
NotIn
- NotRegexp
Or
- Regexp
Union
UnionAll
Intersect
diff --git a/lib/arel/nodes/matches.rb b/lib/arel/nodes/matches.rb
index 583fb97c9b..0d9c1925dc 100644
--- a/lib/arel/nodes/matches.rb
+++ b/lib/arel/nodes/matches.rb
@@ -2,10 +2,12 @@ module Arel
module Nodes
class Matches < Binary
attr_reader :escape
+ attr_accessor :case_sensitive
- def initialize(left, right, escape = nil)
+ def initialize(left, right, escape = nil, case_sensitive = false)
super(left, right)
@escape = escape && Nodes.build_quoted(escape)
+ @case_sensitive = case_sensitive
end
end
diff --git a/lib/arel/nodes/regexp.rb b/lib/arel/nodes/regexp.rb
new file mode 100644
index 0000000000..784368f5bf
--- /dev/null
+++ b/lib/arel/nodes/regexp.rb
@@ -0,0 +1,14 @@
+module Arel
+ module Nodes
+ class Regexp < Binary
+ attr_accessor :case_sensitive
+
+ def initialize(left, right, case_sensitive = true)
+ super(left, right)
+ @case_sensitive = case_sensitive
+ end
+ end
+
+ class NotRegexp < Regexp; end
+ end
+end