arel-extensions 6.0.0.6 → 6.1.0

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
  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