arel-extensions 6.0.0.9 → 6.1.0.rc1

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: 235ef23ebc75b949c45a3f6e90c5dac1982d7d774ff45fe322e54e9f668e0e69
4
- data.tar.gz: e89e29e164da71023324a734b33d54e647accdcbd27ba473d7a7c61ffd2f8122
3
+ metadata.gz: 6499ad3b57ef7119b545163cecc1972913c494d57bbfd19c81aecbbf74219880
4
+ data.tar.gz: 576fb2e56d087957430ff9e8cc5ee3dc968c2f17ba3d2c617a4eae2f6664f340
5
5
  SHA512:
6
- metadata.gz: 53259990ba16f64376e9d16b4f7f49b7fe8332c0bc6d9cfa36d1bd9a41bbd52058e1cd8a76c0307bdb6a7b8e7d2d2dad8bab9d15e266cee882526b6662d00b21
7
- data.tar.gz: a862717bae96433b5dd22b33e57f83858b318774db1c2148d8270333626ed6b1d19e51b6ac6098b27624b8165b5ca3dabf1e95719c70c9306dd1e2f8d1ef3b32
6
+ metadata.gz: df8347481c7c0d86903d7f0fe35850da0ac725325ab18f11191f6c04455d88515cd47306ab1fb972f5ca2e8a49e678cbfd242c12a0850575a5cdbde95bb41a9b
7
+ data.tar.gz: 52c2e805c1758594478b229c421ba301571c82d715be1904f8fd00359ab7b399919d2d6f74c8548078ad141c41a7bc687d7d311b33f79ac171ca38f95859623f
@@ -1,4 +1,4 @@
1
- dist: xenial
1
+ dist: bionic
2
2
  language: ruby
3
3
  sudo: false
4
4
 
@@ -8,37 +8,60 @@ cache:
8
8
  - /home/travis/.rvm/gems
9
9
 
10
10
  rvm:
11
- - 2.6
11
+ - 2.7
12
12
 
13
13
  env:
14
14
  matrix:
15
- - RAILS_VERSION=v6.0.3.1 GEM=activerecord:mysql2
16
- - RAILS_VERSION=v6.0.3.1 GEM=activerecord:sqlite3
17
- - RAILS_VERSION=v6.0.3.1 GEM=activerecord:postgresql
15
+ - RAILS_VERSION=v6.1.0 TASK='db:mysql:rebuild mysql2:test'
16
+ - RAILS_VERSION=v6.1.0 TASK='db:mysql:rebuild mysql2:isolated_test'
17
+ - RAILS_VERSION=v6.1.0 TASK='db:postgresql:rebuild postgresql:test'
18
+ - RAILS_VERSION=v6.1.0 TASK='db:postgresql:rebuild postgresql:isolated_test'
19
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3:test'
20
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3:isolated_test'
21
+ - RAILS_VERSION=v6.1.0 TASK='sqlite3_mem:test'
18
22
 
19
23
  services:
20
24
  - mysql
21
25
  addons:
22
- postgresql: "10"
26
+ postgresql: "13"
27
+ apt:
28
+ packages:
29
+ - postgresql-13
30
+ - postgresql-client-13
23
31
 
24
32
  before_install:
33
+ - sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/13/main/postgresql.conf
34
+ - sudo cp /etc/postgresql/{9.3,13}/main/pg_hba.conf
35
+ - sudo pg_ctlcluster 13 main restart
25
36
  - unset BUNDLE_GEMFILE
26
37
  - gem update --system
27
38
  - gem update bundler
28
- - gem install bundler -v 1.17.3
39
+ - gem install bundler --version 1.17.3
40
+ - mysql -e "create user rails@localhost;"
41
+ - mysql -e "grant all privileges on activerecord_unittest.* to rails@localhost;"
42
+ - mysql -e "grant all privileges on activerecord_unittest2.* to rails@localhost;"
43
+ - mysql -e "grant all privileges on inexistent_activerecord_unittest.* to rails@localhost;"
44
+ - mysql -e "create database activerecord_unittest default character set utf8mb4;"
45
+ - mysql -e "create database activerecord_unittest2 default character set utf8mb4;"
29
46
 
30
47
  install:
31
- - git clone https://github.com/rails/rails.git ~/build/rails
48
+ - git clone --branch $RAILS_VERSION https://github.com/rails/rails.git ~/build/rails
49
+
50
+ before_script:
51
+ - sed -i "s/t.warning = true/t.warning = false/g" Rakefile
32
52
  - pushd ~/build/rails
33
- - git checkout $RAILS_VERSION
53
+ - git status
34
54
  - sed -i "s/Gem.ruby, '-w'/Gem.ruby, '-w0'/" ~/build/rails/activerecord/Rakefile
35
55
  - sed -i "s/t.warning = true/t.warning = false/g" ~/build/rails/activerecord/Rakefile
36
56
  - 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
57
  - "sed -i \"/group :db do/a gem 'arel-extensions', require: 'arel/extensions', path: File.expand_path\\('~\\/build\\/malomalo\\/arel-extensions'\\)\" ~/build/rails/Gemfile"
38
58
  - sed -i "/rb-inotify/d" ~/build/rails/Gemfile
39
59
  - cat ~/build/rails/Gemfile
40
- - bundle install --jobs=3 --retry=3 --full-index
60
+ - rm ~/build/rails/Gemfile.lock
61
+ - bundle update --jobs=3 --retry=3
41
62
  - popd
63
+ - bundle install --jobs=3 --retry=3
42
64
 
43
65
  script:
44
- - cd ~/build/rails && ci/travis.rb
66
+ - bundle exec rake test
67
+ - 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.9'
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.rc1'
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.rc1'
4
+ end
5
+ end
@@ -28,13 +28,6 @@ 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
31
  def visit_Arel_Nodes_ContainedBy o, collector
39
32
  visit o.left, collector
40
33
  collector << ' <@ '
@@ -51,13 +44,6 @@ module Arel
51
44
  collector
52
45
  end
53
46
 
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
47
  def visit_Arel_Attributes_Key(o, collector, last_key = true)
62
48
  if o.relation.is_a?(Arel::Attributes::Key)
63
49
  visit_Arel_Attributes_Key(o.relation, collector, false)
@@ -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
  })
@@ -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,7 +173,7 @@ 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
 
@@ -186,7 +186,7 @@ class ActiveSupport::TestCase
186
186
  assert_equal body, sar.body
187
187
  end
188
188
  end
189
-
189
+
190
190
  def assert_sql(expected, query)
191
191
  assert_equal expected.strip, query.to_sql.strip.gsub(/\s+/, ' ')
192
192
  end
@@ -205,5 +205,5 @@ class ActiveSupport::TestCase
205
205
  alias :assert_not_predicate :refute_predicate
206
206
  alias :assert_not_respond_to :refute_respond_to
207
207
  alias :assert_not_same :refute_same
208
-
209
- end
208
+
209
+ 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.9
4
+ version: 6.1.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Bracy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-23 00:00:00.000000000 Z
11
+ date: 2020-12-23 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.rc1
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.rc1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: webmock
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -158,16 +172,15 @@ files:
158
172
  - lib/arel/attributes/cast.rb
159
173
  - lib/arel/attributes/key.rb
160
174
  - lib/arel/extensions.rb
175
+ - lib/arel/extensions/version.rb
161
176
  - lib/arel/gis_predications.rb
162
177
  - lib/arel/json_predications.rb
163
178
  - lib/arel/nodes/contained_by.rb
164
- - lib/arel/nodes/contains.rb
165
179
  - lib/arel/nodes/excludes.rb
166
180
  - lib/arel/nodes/has_any_key.rb
167
181
  - lib/arel/nodes/has_key.rb
168
182
  - lib/arel/nodes/has_keys.rb
169
183
  - lib/arel/nodes/hex_encoded_binary.rb
170
- - lib/arel/nodes/overlaps.rb
171
184
  - lib/arel/nodes/random.rb
172
185
  - lib/arel/nodes/relation.rb
173
186
  - lib/arel/nodes/ts_match.rb
@@ -200,9 +213,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
200
213
  version: '0'
201
214
  required_rubygems_version: !ruby/object:Gem::Requirement
202
215
  requirements:
203
- - - ">="
216
+ - - ">"
204
217
  - !ruby/object:Gem::Version
205
- version: '0'
218
+ version: 1.3.1
206
219
  requirements: []
207
220
  rubygems_version: 3.1.4
208
221
  signing_key:
@@ -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