arel-extensions 6.0.0.6 → 6.1.0

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: b8b1c993b347393ad06a933f8ab1c8b1e315d7f39c5921ad21c995538a3fc64c
4
- data.tar.gz: 32e7728efa400fd618557a39ddabdb4b4e2ec01fbb8e220053d2e6f228a103c2
3
+ metadata.gz: 576ed17dde483e58188e1f7124bf77f4a479486b31166af59b1779ce955cf022
4
+ data.tar.gz: a5253c48854f0b13604867cb36877b03ac6a3166724d11d25fa968b2f7654757
5
5
  SHA512:
6
- metadata.gz: 7d35be931c9fa7e39f1265b11851d034da64d49f8e2c30d457208dcc4d66991bec244590087bd20ff0127cb8a12966fa654a7cf78ad881280031215f0baa1c7d
7
- data.tar.gz: 0eb34be84a36821aaa96ef5a15e0de64d703194c1764c37981fb862952683cfb56218c12ce4be81bdf977c118dcc6560a40fce9be68413cb99385ed057730f52
6
+ metadata.gz: 3ea0ba57874c4abfb39fb448c60d8fe6a3829ba4a59d220ba348ad30fb04bea583928c1df4735a71c97a3d1a46d79ad990449cd82d66df5d73a5d947ad169952
7
+ data.tar.gz: 1d970867a870fbb319bd4ccbb5bc9cd110fe3b889b539da3069abc72a68e899b09f02d3f650d2a3a30b6d5defd65f8fd1c7fcf7ee3208ddc9e8eaa8524eb18c9
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .DS_Store
2
2
  *.gem
3
+ Gemfile.lock
@@ -1,4 +1,4 @@
1
- dist: xenial
1
+ dist: bionic
2
2
  language: ruby
3
3
  sudo: false
4
4
 
@@ -8,37 +8,61 @@ cache:
8
8
  - /home/travis/.rvm/gems
9
9
 
10
10
  rvm:
11
- - 2.5
12
- - 2.6
11
+ - 2.7
12
+ - 3.0
13
13
 
14
14
  env:
15
15
  matrix:
16
- - RAILS_VERSION=v6.0.0 GEM=activerecord:mysql2
17
- - RAILS_VERSION=v6.0.0 GEM=activerecord:sqlite3
18
- - RAILS_VERSION=v6.0.0 GEM=activerecord:postgresql
16
+ - RAILS_VERSION=v6.1.0 TASK='db:mysql:rebuild mysql2:test'
17
+ - RAILS_VERSION=v6.1.0 TASK='db:mysql:rebuild mysql2:isolated_test'
18
+ - RAILS_VERSION=v6.1.0 TASK='db:postgresql:rebuild postgresql:test'
19
+ - RAILS_VERSION=v6.1.0 TASK='db:postgresql:rebuild postgresql:isolated_test'
20
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3:test'
21
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3:isolated_test'
22
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3_mem:test'
19
23
 
20
24
  services:
21
25
  - mysql
22
26
  addons:
23
- postgresql: "10"
27
+ postgresql: "13"
28
+ apt:
29
+ packages:
30
+ - postgresql-13
31
+ - postgresql-client-13
24
32
 
25
33
  before_install:
34
+ - sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/13/main/postgresql.conf
35
+ - sudo cp /etc/postgresql/{9.3,13}/main/pg_hba.conf
36
+ - sudo pg_ctlcluster 13 main restart
26
37
  - unset BUNDLE_GEMFILE
27
38
  - gem update --system
28
39
  - gem update bundler
40
+ - gem install bundler --version 1.17.3
41
+ - mysql -e "create user rails@localhost;"
42
+ - mysql -e "grant all privileges on activerecord_unittest.* to rails@localhost;"
43
+ - mysql -e "grant all privileges on activerecord_unittest2.* to rails@localhost;"
44
+ - mysql -e "grant all privileges on inexistent_activerecord_unittest.* to rails@localhost;"
45
+ - mysql -e "create database activerecord_unittest default character set utf8mb4;"
46
+ - mysql -e "create database activerecord_unittest2 default character set utf8mb4;"
29
47
 
30
48
  install:
31
- - git clone https://github.com/rails/rails.git ~/build/rails
49
+ - git clone --branch $RAILS_VERSION https://github.com/rails/rails.git ~/build/rails
50
+
51
+ before_script:
52
+ - sed -i "s/t.warning = true/t.warning = false/g" Rakefile
32
53
  - pushd ~/build/rails
33
- - git checkout $RAILS_VERSION
54
+ - git status
34
55
  - sed -i "s/Gem.ruby, '-w'/Gem.ruby, '-w0'/" ~/build/rails/activerecord/Rakefile
35
56
  - sed -i "s/t.warning = true/t.warning = false/g" ~/build/rails/activerecord/Rakefile
36
57
  - sed -i "/require 'support\/connection'/a \$LOAD_PATH.unshift\(File.expand_path\('~\/build\/malomalo\/arel-extensions\/lib'\)\)\nrequire 'arel/extensions'" ~/build/rails/activerecord/test/cases/helper.rb
37
58
  - "sed -i \"/group :db do/a gem 'arel-extensions', require: 'arel/extensions', path: File.expand_path\\('~\\/build\\/malomalo\\/arel-extensions'\\)\" ~/build/rails/Gemfile"
38
59
  - sed -i "/rb-inotify/d" ~/build/rails/Gemfile
39
60
  - cat ~/build/rails/Gemfile
40
- - bundle install --jobs=3 --retry=3
61
+ - rm ~/build/rails/Gemfile.lock
62
+ - bundle update --jobs=3 --retry=3
41
63
  - popd
64
+ - bundle install --jobs=3 --retry=3
42
65
 
43
66
  script:
44
- - cd ~/build/rails && ci/travis.rb
67
+ - bundle exec rake test
68
+ - cd ~/build/rails/activerecord && bundle exec rake $TASK
@@ -1,6 +1,8 @@
1
+ require File.expand_path("../lib/arel/extensions/version", __FILE__)
2
+
1
3
  Gem::Specification.new do |gem|
2
4
  gem.name = 'arel-extensions'
3
- gem.version = '6.0.0.6'
5
+ gem.version = Arel::Extensions::VERSION
4
6
  gem.authors = ["Jon Bracy"]
5
7
  gem.email = ["jonbracy@gmail.com"]
6
8
  gem.summary = %q{Adds support for missing SQL operators and functions to Arel}
@@ -11,15 +13,16 @@ Gem::Specification.new do |gem|
11
13
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
14
  gem.require_paths = ["lib"]
13
15
 
14
- gem.add_dependency 'activerecord', '>= 6.0.0'
16
+ gem.add_dependency 'activerecord', '>= 6.1.0'
15
17
 
16
18
  gem.add_development_dependency "bundler"
19
+ gem.add_development_dependency "byebug"
17
20
  gem.add_development_dependency "rake"
18
21
  gem.add_development_dependency 'minitest'
19
22
  gem.add_development_dependency 'minitest-reporters'
20
- gem.add_development_dependency "sunstone"
23
+ gem.add_development_dependency "sunstone", '>= 6.1.0'
21
24
  gem.add_development_dependency "webmock"
22
25
  gem.add_development_dependency 'pg'
23
26
  gem.add_development_dependency 'rgeo'
24
-
27
+
25
28
  end
@@ -1,24 +1,14 @@
1
1
  module Arel
2
2
  module ArrayPredications
3
-
4
- # Used by both JSON and ARRAY so it doesn't try to cast to array
5
- def contains(value)
6
- Arel::Nodes::Contains.new(self, value)
7
- end
8
-
3
+
9
4
  # Used by both JSON and ARRAY so it doesn't try to cast to array
10
5
  def contained_by(value)
11
6
  Arel::Nodes::ContainedBy.new(self, value)
12
7
  end
13
-
8
+
14
9
  def excludes(value)
15
10
  Arel::Nodes::Excludes.new(self, value)
16
11
  end
17
-
18
- def overlaps(*values)
19
- values = values[0] if values.size == 1 && values[0].is_a?(Array)
20
- Arel::Nodes::Overlaps.new(self, values)
21
- end
22
-
12
+
23
13
  end
24
- end
14
+ end
@@ -1,8 +1,6 @@
1
1
  require "arel"
2
2
  require File.expand_path('../nodes/hex_encoded_binary', __FILE__)
3
3
 
4
- require File.expand_path('../nodes/overlaps', __FILE__)
5
- require File.expand_path('../nodes/contains', __FILE__)
6
4
  require File.expand_path('../nodes/within', __FILE__)
7
5
  require File.expand_path('../nodes/excludes', __FILE__)
8
6
  require File.expand_path('../nodes/contained_by', __FILE__)
@@ -0,0 +1,5 @@
1
+ module Arel
2
+ module Extensions
3
+ VERSION = '6.1.0'
4
+ end
5
+ end
@@ -1,6 +1,9 @@
1
1
  module Arel
2
2
  module Nodes
3
- class ContainedBy < Binary
3
+ class ContainedBy < InfixOperation
4
+ def initialize(left, right)
5
+ super(:"<@", left, right)
6
+ end
4
7
  end
5
8
  end
6
- end
9
+ end
@@ -12,7 +12,7 @@ module Arel
12
12
  end
13
13
 
14
14
  def able_to_type_cast?
15
- false
15
+ relation.able_to_type_cast?
16
16
  end
17
17
 
18
18
  def table_name
@@ -25,7 +25,11 @@ module Arel
25
25
  self.name == other.name &&
26
26
  self.collection == other.collection
27
27
  end
28
-
28
+
29
+ def type_cast_for_database(value)
30
+ relation.type_cast_for_database(value)
31
+ end
32
+
29
33
  end
30
34
  end
31
35
  end
@@ -2,11 +2,12 @@ module Arel
2
2
  module Nodes
3
3
  class TSRankCD < Arel::Nodes::Node
4
4
 
5
- attr_reader :tsvector, :tsquery
5
+ attr_reader :tsvector, :tsquery, :normalization
6
6
 
7
- def initialize(tsvector, tsquery)
7
+ def initialize(tsvector, tsquery, normalization=nil)
8
8
  @tsvector = tsvector
9
9
  @tsquery = tsquery
10
+ @normalization = normalization
10
11
  end
11
12
 
12
13
  end
@@ -2,11 +2,11 @@ module Arel
2
2
  module TSPredications
3
3
 
4
4
  def ts_query(expression, language=nil)
5
- vector = Arel::Nodes::TSVector.new(self, language)
6
- query = Arel::Nodes::TSQuery.new(expression, language)
5
+ vector = Arel::Nodes::TSVector.new(self, language: language)
6
+ query = Arel::Nodes::TSQuery.new(expression, language: language)
7
7
 
8
8
  Arel::Nodes::TSMatch.new(vector, query)
9
9
  end
10
10
 
11
11
  end
12
- end
12
+ end
@@ -28,36 +28,15 @@ module Arel
28
28
  collector << "RANDOM()"
29
29
  end
30
30
 
31
- def visit_Arel_Nodes_Contains o, collector
32
- visit o.left, collector
33
- collector << ' @> '
34
- collector << quote(o.left.type_cast_for_database(o.right))
35
- collector
36
- end
37
-
38
- def visit_Arel_Nodes_ContainedBy o, collector
39
- visit o.left, collector
40
- collector << ' <@ '
41
- collector << quote(o.left.type_cast_for_database(o.right))
42
- collector
43
- end
44
-
45
31
  def visit_Arel_Nodes_Excludes o, collector
46
32
  collector << 'NOT ('
47
33
  visit o.left, collector
48
34
  collector << ' @> '
49
- collector << quote(o.left.type_cast_for_database(o.right))
35
+ visit o.right, collector
50
36
  collector << ')'
51
37
  collector
52
38
  end
53
39
 
54
- def visit_Arel_Nodes_Overlaps o, collector
55
- visit o.left, collector
56
- collector << ' && '
57
- collector << quote(o.left.type_cast_for_database(o.right))
58
- collector
59
- end
60
-
61
40
  def visit_Arel_Attributes_Key(o, collector, last_key = true)
62
41
  if o.relation.is_a?(Arel::Attributes::Key)
63
42
  visit_Arel_Attributes_Key(o.relation, collector, false)
@@ -153,6 +132,10 @@ module Arel
153
132
  visit(o.tsvector, collector)
154
133
  collector << ', '
155
134
  visit(o.tsquery, collector)
135
+ if o.normalization
136
+ collector << ', '
137
+ visit(o.normalization, collector)
138
+ end
156
139
  collector << ')'
157
140
  collector
158
141
  end
@@ -6,30 +6,42 @@ module Arel
6
6
  def visit_Arel_Nodes_Ascending o, collector
7
7
  hash = visit(o.expr, collector)
8
8
 
9
- case o.nulls
9
+ value = case o.nulls
10
10
  when :nulls_first
11
- add_to_bottom_of_hash_or_array(hash, {asc: :nulls_first})
11
+ {asc: :nulls_first}
12
12
  when :nulls_last
13
- add_to_bottom_of_hash_or_array(hash, {asc: :nulls_last})
13
+ {asc: :nulls_last}
14
14
  else
15
- add_to_bottom_of_hash_or_array(hash, :asc)
15
+ :asc
16
16
  end
17
17
 
18
+ if hash.is_a?(Hash)
19
+ add_to_bottom_of_hash_or_array(hash, value)
20
+ else
21
+ hash = { hash => value }
22
+ end
23
+
18
24
  hash
19
25
  end
20
26
 
21
27
  def visit_Arel_Nodes_Descending o, collector
22
28
  hash = visit(o.expr, collector)
23
-
24
- case o.nulls
29
+
30
+ value = case o.nulls
25
31
  when :nulls_first
26
- add_to_bottom_of_hash_or_array(hash, {desc: :nulls_first})
32
+ {desc: :nulls_first}
27
33
  when :nulls_last
28
- add_to_bottom_of_hash_or_array(hash, {desc: :nulls_last})
34
+ {desc: :nulls_last}
29
35
  else
30
- add_to_bottom_of_hash_or_array(hash, :desc)
36
+ :desc
31
37
  end
32
-
38
+
39
+ if hash.is_a?(Hash)
40
+ add_to_bottom_of_hash_or_array(hash, value)
41
+ else
42
+ hash = { hash => value }
43
+ end
44
+
33
45
  hash
34
46
  end
35
47
 
@@ -1,16 +1,14 @@
1
- task = ActiveRecord::Tasks::PostgreSQLDatabaseTasks.new({
2
- 'adapter' => 'postgresql',
3
- 'database' => "arel-extensions-test"
4
- })
5
- task.drop
6
- task.create
7
-
8
1
  ActiveRecord::Base.establish_connection({
9
2
  adapter: "postgresql",
10
3
  database: "arel-extensions-test",
11
4
  encoding: "utf8"
12
5
  })
13
6
 
7
+ db_config = ActiveRecord::Base.connection_db_config
8
+ task = ActiveRecord::Tasks::PostgreSQLDatabaseTasks.new(db_config)
9
+ task.drop
10
+ task.create
11
+
14
12
  ActiveRecord::Migration.suppress_messages do
15
13
  ActiveRecord::Schema.define do
16
14
 
@@ -18,7 +16,7 @@ ActiveRecord::Migration.suppress_messages do
18
16
  t.integer "name"
19
17
  t.integer "property_id"
20
18
  end
21
-
19
+
22
20
  create_table "properties", force: :cascade do |t|
23
21
  t.string "name", limit: 255
24
22
  t.tsvector 'vector_col'
@@ -48,4 +46,4 @@ class SunstoneProperty < SunstoneRecord
48
46
  has_many :addresses, class_name: 'SunstoneAddress'
49
47
  end
50
48
 
51
- SunstoneRecord.establish_connection(adapter: 'sunstone', url: 'http://example.com')
49
+ SunstoneRecord.establish_connection(adapter: 'sunstone', endpoint: 'http://example.com')
@@ -27,7 +27,7 @@ class SunstoneTest < ActiveSupport::TestCase
27
27
  # end
28
28
 
29
29
  test "::filter json_column: {contains: JSON_HASH}" do
30
- query = SunstoneProperty.where(SunstoneProperty.arel_attribute('metadata').contains({json: 'string'}))
30
+ query = SunstoneProperty.where(SunstoneProperty.arel_table['metadata'].contains({json: 'string'}))
31
31
  assert_sar(query, 'GET', '/sunstone_properties', {
32
32
  where: {metadata: {contains: { json: 'string' }}}
33
33
  })
@@ -97,5 +97,53 @@ class SunstoneTest < ActiveSupport::TestCase
97
97
  # SQL
98
98
  # end
99
99
 
100
+ test '::order(column.asc)' do
101
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].asc)
102
+ assert_sar(query, 'GET', '/sunstone_properties', {
103
+ order: [{ id: :asc }]
104
+ })
105
+ end
106
+
107
+ test '::order(column1.asc, column2.asc)' do
108
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].asc, SunstoneProperty.arel_table[:name].asc)
109
+ assert_sar(query, 'GET', '/sunstone_properties', {
110
+ order: [{ id: :asc }, { name: :asc }]
111
+ })
112
+ end
113
+
114
+ test '::order(column.desc)' do
115
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].desc)
116
+ assert_sar(query, 'GET', '/sunstone_properties', {
117
+ order: [{ id: :desc }]
118
+ })
119
+ end
120
+
121
+ test '::order(column.asc(:nulls_first))' do
122
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].asc(:nulls_first))
123
+ assert_sar(query, 'GET', '/sunstone_properties', {
124
+ order: [{ id: { asc: :nulls_first } }]
125
+ })
126
+ end
127
+
128
+ test '::order(column.asc(:nulls_last))' do
129
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].asc(:nulls_last))
130
+ assert_sar(query, 'GET', '/sunstone_properties', {
131
+ order: [{ id: { asc: :nulls_last } }]
132
+ })
133
+ end
134
+
135
+ test '::order(column.desc(:nulls_first))' do
136
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].desc(:nulls_first))
137
+ assert_sar(query, 'GET', '/sunstone_properties', {
138
+ order: [{ id: { desc: :nulls_first } }]
139
+ })
140
+ end
141
+
142
+ test '::order(column.desc(:nulls_last))' do
143
+ query = SunstoneProperty.order(SunstoneProperty.arel_table[:id].desc(:nulls_last))
144
+ assert_sar(query, 'GET', '/sunstone_properties', {
145
+ order: [{ id: { desc: :nulls_last } }]
146
+ })
147
+ end
100
148
 
101
149
  end
@@ -30,7 +30,7 @@ $debugging = false
30
30
  # File 'lib/active_support/testing/declarative.rb', somewhere in rails....
31
31
  class ActiveSupport::TestCase
32
32
  include WebMock::API
33
-
33
+
34
34
  # File 'lib/active_support/testing/declarative.rb'
35
35
  def self.test(name, &block)
36
36
  test_name = "test_#{name.gsub(/\s+/, '_')}".to_sym
@@ -44,7 +44,7 @@ class ActiveSupport::TestCase
44
44
  end
45
45
  end
46
46
  end
47
-
47
+
48
48
  def webmock(method, path, query=nil)
49
49
  query = deep_transform_query(query) if query
50
50
 
@@ -56,7 +56,7 @@ class ActiveSupport::TestCase
56
56
  end
57
57
  end
58
58
  end
59
-
59
+
60
60
  def setup
61
61
  sunstone_schema = {
62
62
  addresses: {
@@ -74,7 +74,7 @@ class ActiveSupport::TestCase
74
74
  }
75
75
  }
76
76
  }
77
-
77
+
78
78
  req_stub = stub_request(:get, /^http:\/\/example.com/).with do |req|
79
79
  case req.uri.path
80
80
  when '/tables'
@@ -85,7 +85,7 @@ class ActiveSupport::TestCase
85
85
  false
86
86
  end
87
87
  end
88
-
88
+
89
89
  req_stub.to_return do |req|
90
90
  case req.uri.path
91
91
  when '/tables'
@@ -151,7 +151,7 @@ class ActiveSupport::TestCase
151
151
  unless ignore =~ sql
152
152
  if $debugging
153
153
  puts caller.select { |l| l.starts_with?(File.expand_path('../../lib', __FILE__)) }
154
- puts "\n\n"
154
+ puts "\n\n"
155
155
  end
156
156
  end
157
157
  self.class.log << sql unless ignore =~ sql
@@ -173,16 +173,20 @@ class ActiveSupport::TestCase
173
173
  object
174
174
  end
175
175
  end
176
-
176
+
177
177
  def assert_sar(query, method, path, query_params = {}, body = nil)
178
178
  sar = query.to_sar
179
179
 
180
180
  assert_equal method, sar.method
181
181
  assert_equal path, sar.path.split('?').first
182
182
  assert_equal deep_transform_query(query_params), MessagePack.unpack(CGI::unescape(sar.path.split('?').last))
183
- assert_equal body, sar.body
183
+ if body.nil?
184
+ assert_nil sar.body
185
+ else
186
+ assert_equal body, sar.body
187
+ end
184
188
  end
185
-
189
+
186
190
  def assert_sql(expected, query)
187
191
  assert_equal expected.strip, query.to_sql.strip.gsub(/\s+/, ' ')
188
192
  end
@@ -201,5 +205,5 @@ class ActiveSupport::TestCase
201
205
  alias :assert_not_predicate :refute_predicate
202
206
  alias :assert_not_respond_to :refute_respond_to
203
207
  alias :assert_not_same :refute_same
204
-
205
- end
208
+
209
+ end
@@ -133,4 +133,19 @@ class TSTest < ActiveSupport::TestCase
133
133
  SQL
134
134
  end
135
135
 
136
+ test 'ts_rank_cd(tsvector, tsquery, normalization)' do
137
+ query = Property.where(
138
+ Arel::Nodes::TSRankCD.new(
139
+ Arel::Nodes::TSVector.new(Property.arel_table[:name]),
140
+ Arel::Nodes::TSQuery.new('query'),
141
+ 5
142
+ )
143
+ )
144
+
145
+ assert_equal(<<~SQL.gsub(/( +|\n)/, ' ').strip, query.to_sql)
146
+ SELECT "properties".* FROM "properties"
147
+ WHERE ts_rank_cd(to_tsvector("properties"."name"), to_tsquery('query'), 5)
148
+ SQL
149
+ end
150
+
136
151
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0.6
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Bracy
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-11 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.0
19
+ version: 6.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.0
26
+ version: 6.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +100,14 @@ dependencies:
86
100
  requirements:
87
101
  - - ">="
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: 6.1.0
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: 6.1.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: webmock
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +150,7 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
- description:
153
+ description:
140
154
  email:
141
155
  - jonbracy@gmail.com
142
156
  executables: []
@@ -146,7 +160,6 @@ files:
146
160
  - ".gitignore"
147
161
  - ".travis.yml"
148
162
  - Gemfile
149
- - Gemfile.lock
150
163
  - LICENSE
151
164
  - README.md
152
165
  - Rakefile
@@ -159,16 +172,15 @@ files:
159
172
  - lib/arel/attributes/cast.rb
160
173
  - lib/arel/attributes/key.rb
161
174
  - lib/arel/extensions.rb
175
+ - lib/arel/extensions/version.rb
162
176
  - lib/arel/gis_predications.rb
163
177
  - lib/arel/json_predications.rb
164
178
  - lib/arel/nodes/contained_by.rb
165
- - lib/arel/nodes/contains.rb
166
179
  - lib/arel/nodes/excludes.rb
167
180
  - lib/arel/nodes/has_any_key.rb
168
181
  - lib/arel/nodes/has_key.rb
169
182
  - lib/arel/nodes/has_keys.rb
170
183
  - lib/arel/nodes/hex_encoded_binary.rb
171
- - lib/arel/nodes/overlaps.rb
172
184
  - lib/arel/nodes/random.rb
173
185
  - lib/arel/nodes/relation.rb
174
186
  - lib/arel/nodes/ts_match.rb
@@ -190,7 +202,7 @@ homepage: https://github.com/malomalo/arel-extensions
190
202
  licenses:
191
203
  - MIT
192
204
  metadata: {}
193
- post_install_message:
205
+ post_install_message:
194
206
  rdoc_options: []
195
207
  require_paths:
196
208
  - lib
@@ -205,8 +217,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
217
  - !ruby/object:Gem::Version
206
218
  version: '0'
207
219
  requirements: []
208
- rubygems_version: 3.0.3
209
- signing_key:
220
+ rubygems_version: 3.2.3
221
+ signing_key:
210
222
  specification_version: 4
211
223
  summary: Adds support for missing SQL operators and functions to Arel
212
224
  test_files:
@@ -1,73 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- arel-extensions (6.0.0.5)
5
- activerecord (>= 6.0.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (6.0.0)
11
- activesupport (= 6.0.0)
12
- activerecord (6.0.0)
13
- activemodel (= 6.0.0)
14
- activesupport (= 6.0.0)
15
- activesupport (6.0.0)
16
- concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 0.7, < 2)
18
- minitest (~> 5.1)
19
- tzinfo (~> 1.1)
20
- zeitwerk (~> 2.1, >= 2.1.8)
21
- addressable (2.7.0)
22
- public_suffix (>= 2.0.2, < 5.0)
23
- ansi (1.5.0)
24
- builder (3.2.3)
25
- concurrent-ruby (1.1.5)
26
- cookie_store (0.1.4)
27
- crack (0.4.3)
28
- safe_yaml (~> 1.0.0)
29
- hashdiff (1.0.0)
30
- i18n (1.6.0)
31
- concurrent-ruby (~> 1.0)
32
- minitest (5.11.3)
33
- minitest-reporters (1.3.8)
34
- ansi
35
- builder
36
- minitest (>= 5.0)
37
- ruby-progressbar
38
- msgpack (1.3.1)
39
- pg (1.1.4)
40
- public_suffix (4.0.1)
41
- rake (12.3.3)
42
- rgeo (2.1.0)
43
- ruby-progressbar (1.10.1)
44
- safe_yaml (1.0.5)
45
- sunstone (6.0.0.5)
46
- activerecord (>= 6.0.0.rc1)
47
- cookie_store
48
- msgpack
49
- thread_safe (0.3.6)
50
- tzinfo (1.2.5)
51
- thread_safe (~> 0.1)
52
- webmock (3.7.6)
53
- addressable (>= 2.3.6)
54
- crack (>= 0.3.2)
55
- hashdiff (>= 0.4.0, < 2.0.0)
56
- zeitwerk (2.1.10)
57
-
58
- PLATFORMS
59
- ruby
60
-
61
- DEPENDENCIES
62
- arel-extensions!
63
- bundler
64
- minitest
65
- minitest-reporters
66
- pg
67
- rake
68
- rgeo
69
- sunstone
70
- webmock
71
-
72
- BUNDLED WITH
73
- 1.17.3
@@ -1,6 +0,0 @@
1
- module Arel
2
- module Nodes
3
- class Contains < Binary
4
- end
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- module Arel
2
- module Nodes
3
- class Overlaps < Binary
4
- end
5
- end
6
- end