From 508a6783c8f75742ac64e5073b3b211b0c15662a Mon Sep 17 00:00:00 2001 From: Keenan Brock Date: Sat, 5 Dec 2015 18:54:09 -0500 Subject: Add case sensitive match Explicitly declare if this is case sensitive or not most implementation assume case sensitive postgres assumes case insensitive --- lib/arel/nodes/matches.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/arel/nodes') 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 -- cgit v1.2.3 From 193d2ad2147a5cd1de44f2d57f4f3bd65e161293 Mon Sep 17 00:00:00 2001 From: Keenan Brock Date: Sat, 5 Dec 2015 19:13:05 -0500 Subject: Add case sensitive regexp Explicitly declare if this is case sensitive or not currently postgres assumes case insensitive regexp no other databases support regexps --- lib/arel/nodes/binary.rb | 2 -- lib/arel/nodes/regexp.rb | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 lib/arel/nodes/regexp.rb (limited to 'lib/arel/nodes') 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/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 -- cgit v1.2.3