graphiti 1.2.12 → 1.2.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 345a2d39445d433019a8c0055cf337b4b8fdf21e9d59e5785b923a5ee1a8c9fb
4
- data.tar.gz: 0ec15af245b2c7bb9530e9b771839eb6b4487d3ca87cadb9b41788ce8cc63326
3
+ metadata.gz: 96ec0914eb0786ee691d7b4610c8d94f47a8d852682c7b44ec69167391576d3d
4
+ data.tar.gz: ed446db0ab70384c1c87b079293b6c0f9ece23b25442649779c057360e4a86e0
5
5
  SHA512:
6
- metadata.gz: 25dffc875c9f781f29467940e320888ba53fc974964c6267018d49eb9bc7cc274819fb46209f31a13bd1747b7cffcbd87542fb675e624c3491196a9dd255292d
7
- data.tar.gz: 656c3ba8365f422d119b8df8d1ac6a2f4a23a2f57b460d1e18356b6bdfac938059397082df5665ee8b890dcc61868173e328976955204a7bd511bd3b410a2844
6
+ metadata.gz: bac579d3f12d400173eb4a3a14396e97dd7e14aa5fda6f6348679f7a8f9fd8969a373ef6201fc983b59258b73f395915a39df64d7a1c869bfea60c854c5f6459
7
+ data.tar.gz: 85b01ba89239a712246f483f72c7661caf2c9bab5cc499f1e06a7c14ceb0218950a77b94e2c3492446500238315524baa8355e066f608d4770b72c91f2a45a3b
@@ -1,7 +1,6 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4
5
4
  - 2.5
6
5
  - 2.6
7
6
  gemfile:
@@ -39,10 +38,6 @@ matrix:
39
38
  gemfile: gemfiles/rails_5_graphiti_rails.gemfile
40
39
  - env: COMMAND=rspec
41
40
  gemfile: gemfiles/rails_6_graphiti_rails.gemfile
42
- - gemfile: gemfiles/rails_6.gemfile
43
- rvm: 2.4
44
- - gemfile: gemfiles/rails_6_graphiti_rails.gemfile
45
- rvm: 2.4
46
41
  - gemfile: gemfiles/rails_4.gemfile
47
42
  rvm: 2.5
48
43
  - gemfile: gemfiles/rails_4.gemfile
@@ -79,11 +79,30 @@ module Graphiti
79
79
  filter_string_suffix(scope, attribute, value, is_not: true)
80
80
  end
81
81
 
82
- def filter_string_match(scope, attribute, value, is_not: false)
83
- column = column_for(scope, attribute)
84
- map = value.map { |v| "%#{v.downcase}%" }
85
- clause = column.lower.matches_any(map)
86
- is_not ? scope.where.not(clause) : scope.where(clause)
82
+ # Arel has different match escaping behavior before rails 5.
83
+ # Since rails 4.x does not expose methods to escape LIKE statements
84
+ # anyway, we just don't support proper LIKE escaping in those versions.
85
+ if ::ActiveRecord.version >= Gem::Version.new('5.0.0')
86
+ def filter_string_match(scope, attribute, value, is_not: false)
87
+ escape_char = '\\'
88
+ column = column_for(scope, attribute)
89
+ map = value.map do |v|
90
+ v = v.downcase
91
+ v = scope.sanitize_sql_like(v)
92
+ "%#{v}%"
93
+ end
94
+ clause = column.lower.matches_any(map, escape_char, true)
95
+ is_not ? scope.where.not(clause) : scope.where(clause)
96
+ end
97
+ else
98
+ def filter_string_match(scope, attribute, value, is_not: false)
99
+ column = column_for(scope, attribute)
100
+ map = value.map do |v|
101
+ "%#{v.downcase}%"
102
+ end
103
+ clause = column.lower.matches_any(map)
104
+ is_not ? scope.where.not(clause) : scope.where(clause)
105
+ end
87
106
  end
88
107
 
89
108
  def filter_string_not_match(scope, attribute, value)
@@ -1,3 +1,3 @@
1
1
  module Graphiti
2
- VERSION = "1.2.12"
2
+ VERSION = "1.2.13"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.12
4
+ version: 1.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Richmond
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-15 00:00:00.000000000 Z
11
+ date: 2020-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-serializable