edge_rider 0.3.2 → 2.0.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.
Files changed (50) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +99 -0
  3. data/.rspec +1 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +45 -0
  6. data/Gemfile +1 -0
  7. data/{gemfiles/Gemfile.4.2.mysql2 → Gemfile.4.2.mysql2} +4 -3
  8. data/{gemfiles/Gemfile.4.2.mysql2.lock → Gemfile.4.2.mysql2.lock} +32 -22
  9. data/{gemfiles/Gemfile.4.2.pg → Gemfile.4.2.pg} +3 -2
  10. data/{gemfiles/Gemfile.4.2.pg.lock → Gemfile.4.2.pg.lock} +30 -20
  11. data/Gemfile.5.2.mysql2 +17 -0
  12. data/{gemfiles/Gemfile.5.1.mysql2.lock → Gemfile.5.2.mysql2.lock} +34 -22
  13. data/{gemfiles/Gemfile.5.1.mysql2 → Gemfile.5.2.pg} +7 -5
  14. data/{gemfiles/Gemfile.5.1.pg.lock → Gemfile.5.2.pg.lock} +32 -20
  15. data/{gemfiles/Gemfile.5.1.pg → Gemfile.6.1.pg} +4 -3
  16. data/Gemfile.6.1.pg.lock +78 -0
  17. data/Gemfile.lock +1 -0
  18. data/README.md +96 -91
  19. data/Rakefile +1 -1
  20. data/edge_rider.gemspec +24 -15
  21. data/lib/edge_rider/collect_column.rb +8 -15
  22. data/lib/edge_rider/origin_class.rb +2 -10
  23. data/lib/edge_rider/preload_associations.rb +7 -0
  24. data/lib/edge_rider/scoped.rb +1 -1
  25. data/lib/edge_rider/to_id_query.rb +1 -1
  26. data/lib/edge_rider/traverse_association.rb +9 -5
  27. data/lib/edge_rider/util.rb +18 -19
  28. data/lib/edge_rider/version.rb +1 -1
  29. data/lib/edge_rider.rb +0 -1
  30. metadata +24 -37
  31. data/.travis.yml +0 -68
  32. data/gemfiles/Gemfile.2.3.mysql2 +0 -16
  33. data/gemfiles/Gemfile.2.3.mysql2.lock +0 -37
  34. data/gemfiles/Gemfile.3.2.mysql2 +0 -16
  35. data/gemfiles/Gemfile.3.2.mysql2.lock +0 -62
  36. data/lib/edge_rider/to_sql.rb +0 -13
  37. data/spec/edge_rider/collect_column_spec.rb +0 -85
  38. data/spec/edge_rider/collect_ids_spec.rb +0 -108
  39. data/spec/edge_rider/origin_class_spec.rb +0 -32
  40. data/spec/edge_rider/preload_associations_spec.rb +0 -15
  41. data/spec/edge_rider/scoped_spec.rb +0 -55
  42. data/spec/edge_rider/to_id_query_spec.rb +0 -29
  43. data/spec/edge_rider/to_sql_spec.rb +0 -14
  44. data/spec/edge_rider/traverse_association_spec.rb +0 -134
  45. data/spec/edge_rider/util_spec.rb +0 -5
  46. data/spec/spec_helper.rb +0 -12
  47. data/spec/support/database.rb +0 -34
  48. data/spec/support/database.sample.yml +0 -10
  49. data/spec/support/database.travis.yml +0 -9
  50. data/spec/support/models.rb +0 -92
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c06662e9706f085023e24d24a60f9b966e2b6976
4
- data.tar.gz: 1e294dc9431870a9db9430671a823dd64d8cedd0
2
+ SHA256:
3
+ metadata.gz: ac872c959e9c692146c7091a63248e501f780a8d065b15e65548a1d9a7ac4e46
4
+ data.tar.gz: '018be393dda77b87b8cf91c6466699af80baced864640e56735ddd86e6a8601b'
5
5
  SHA512:
6
- metadata.gz: 5aaeb7c80c0c64a523787c4ed2a5c99acf1564cec2f7b74252bc58e796d8ecafd3113ba6d6cc4ea553b79118de5bc03dcbccca3de97ae20db331e81beb860c6c
7
- data.tar.gz: bbcd4ea9a827837f07dc65d1269fd8f0de9a3c433caf59b42bb1e7d1fd6945482be708095aa5b0c6a85e829ce230908577190ca3691743a19534eb0809d574b8
6
+ metadata.gz: bbf53aff09715db33e03146bdca2f4277f5b89560952a853089e046fd7a1480796c2e31e046f3f4d783be38d92ed9850529c10e822ad04e4faf1b5acac9db782
7
+ data.tar.gz: b3ea5bfe76ceb8d177107bf306920bf957bda6268f34cfdedbf6e053d18133d67c4d5d51e9a641b537d74333fd576cf557c412b2e5981029dbdb6c8dddc8e664
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: Tests
3
+ 'on':
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+ jobs:
11
+ test_mysql:
12
+ runs-on: ubuntu-20.04
13
+ services:
14
+ mysql:
15
+ image: mysql:5.6
16
+ env:
17
+ MYSQL_ROOT_PASSWORD: password
18
+ options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout
19
+ 5s --health-retries 5
20
+ ports:
21
+ - 3306:3306
22
+ strategy:
23
+ fail-fast: false
24
+ # Rails 4.2: Ruby 2.5.7
25
+ # Rails 5.2: Ruby 2.5.7 and 2.7.4
26
+ matrix:
27
+ include:
28
+ - ruby: 2.5.7
29
+ gemfile: Gemfile.4.2.mysql2
30
+ - ruby: 2.5.7
31
+ gemfile: Gemfile.5.2.mysql2
32
+ - ruby: 2.7.4
33
+ gemfile: Gemfile.5.2.mysql2
34
+ env:
35
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
36
+ steps:
37
+ - uses: actions/checkout@v2
38
+ - name: Install ruby
39
+ uses: ruby/setup-ruby@v1
40
+ with:
41
+ ruby-version: "${{ matrix.ruby }}"
42
+ - name: Setup database
43
+ run: |
44
+ sudo apt-get install -y mysql-client libmariadbclient-dev
45
+ mysql -e 'create database IF NOT EXISTS test;' -u root --password=password -P 3306 -h 127.0.0.1
46
+ - name: Bundle
47
+ run: |
48
+ gem install bundler:2.2.26
49
+ bundle install --no-deployment
50
+ - name: Run tests
51
+ run: bundle exec rspec
52
+ test_pg:
53
+ runs-on: ubuntu-20.04
54
+ services:
55
+ postgres:
56
+ image: postgres
57
+ env:
58
+ POSTGRES_PASSWORD: postgres
59
+ options: "--health-cmd pg_isready --health-interval 10s --health-timeout 5s
60
+ --health-retries 5"
61
+ ports:
62
+ - 5432:5432
63
+ strategy:
64
+ fail-fast: false
65
+ # Rails 4.2: Ruby 2.5.7
66
+ # Rails 5.2: Ruby 2.5.7 and 2.7.4
67
+ # Rails 6.1: Ruby 2.5.7, 2.7.4 and 3.0.2
68
+ matrix:
69
+ include:
70
+ - ruby: 2.5.7
71
+ gemfile: Gemfile.4.2.pg
72
+ - ruby: 2.5.7
73
+ gemfile: Gemfile.5.2.pg
74
+ - ruby: 2.5.7
75
+ gemfile: Gemfile.6.1.pg
76
+ - ruby: 2.7.4
77
+ gemfile: Gemfile.5.2.pg
78
+ - ruby: 2.7.4
79
+ gemfile: Gemfile.6.1.pg
80
+ - ruby: 3.0.2
81
+ gemfile: Gemfile.6.1.pg
82
+ env:
83
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
84
+ steps:
85
+ - uses: actions/checkout@v2
86
+ - name: Install ruby
87
+ uses: ruby/setup-ruby@v1
88
+ with:
89
+ ruby-version: "${{ matrix.ruby }}"
90
+ - name: Setup database
91
+ run: |
92
+ sudo apt-get install -y postgresql-client
93
+ PGPASSWORD=postgres psql -c 'create database test;' -U postgres -p 5432 -h localhost
94
+ - name: Bundle
95
+ run: |
96
+ gem install bundler:2.2.26
97
+ bundle install --no-deployment
98
+ - name: Run tests
99
+ run: bundle exec rspec
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.4
1
+ 2.5.7
data/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
+
6
+ ## Unreleased
7
+
8
+ ### Breaking changes
9
+
10
+ ### Compatible changes
11
+
12
+
13
+ ## 1.1.0 - 2021-08-24
14
+
15
+ ### Breaking changes
16
+ - Drop support for Ruby < 2.5.0
17
+
18
+ ### Compatible changes
19
+ - Add support for Rails 6.1
20
+
21
+
22
+ ## 1.1.0 - 2019-12-13
23
+
24
+ ### Compatible changes
25
+ - Add `preload_association` at instance level. Example: `user.preload_associations(:posts)`
26
+ - Add support for polymorphic associations in `traverse_association`.
27
+
28
+
29
+ ## 1.0.0- 2019-06-12
30
+
31
+ ### Breaking changes
32
+ - Remove support for Ruby 2.2
33
+ - Remove support for Rails 2.3
34
+
35
+ ### Compatible changes
36
+ - Add support for Ruby 2.5.3
37
+ - Add support for Rails 6.0.0.rc1
38
+
39
+
40
+ ## 0.3.3 - 2018-08-29
41
+
42
+ ### Compatible changes
43
+
44
+ - Fix for deprecation warning in Rails 5.2 in `collect_id`
45
+ - Added this CHANGELOG file.
data/Gemfile ADDED
@@ -0,0 +1 @@
1
+ Gemfile.6.1.pg
@@ -2,14 +2,15 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
4
  gem 'activerecord', '~>4.2.0'
5
- gem 'mysql2', '~> 0.3.17'
5
+ gem 'mysql2', '~>0.4.10'
6
6
 
7
7
  # Development dependencies
8
8
  gem 'rake'
9
9
  gem 'database_cleaner'
10
10
  gem 'has_defaults' # used by test models
11
11
  gem 'rspec'
12
- gem 'gemika'
12
+ gem 'gemika', '>=0.5.0'
13
+ gem 'pry-byebug'
13
14
 
14
15
  # Gem under test
15
- gem 'edge_rider', :path => '..'
16
+ gem 'edge_rider', path: '.'
@@ -1,36 +1,45 @@
1
1
  PATH
2
- remote: ..
2
+ remote: .
3
3
  specs:
4
- edge_rider (0.3.2)
5
- activerecord
4
+ edge_rider (2.0.0)
5
+ activerecord (>= 3.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (4.2.7.1)
11
- activesupport (= 4.2.7.1)
10
+ activemodel (4.2.11)
11
+ activesupport (= 4.2.11)
12
12
  builder (~> 3.1)
13
- activerecord (4.2.7.1)
14
- activemodel (= 4.2.7.1)
15
- activesupport (= 4.2.7.1)
13
+ activerecord (4.2.11)
14
+ activemodel (= 4.2.11)
15
+ activesupport (= 4.2.11)
16
16
  arel (~> 6.0)
17
- activesupport (4.2.7.1)
17
+ activesupport (4.2.11)
18
18
  i18n (~> 0.7)
19
- json (~> 1.7, >= 1.7.7)
20
19
  minitest (~> 5.1)
21
20
  thread_safe (~> 0.3, >= 0.3.4)
22
21
  tzinfo (~> 1.1)
23
- arel (6.0.3)
24
- builder (3.2.2)
22
+ arel (6.0.4)
23
+ builder (3.2.4)
24
+ byebug (10.0.2)
25
+ coderay (1.1.2)
26
+ concurrent-ruby (1.1.9)
25
27
  database_cleaner (1.0.1)
26
28
  diff-lcs (1.2.5)
27
- gemika (0.3.2)
29
+ gemika (0.6.1)
28
30
  has_defaults (0.4.4)
29
31
  activerecord
30
- i18n (0.7.0)
31
- json (1.8.3)
32
- minitest (5.9.1)
33
- mysql2 (0.3.21)
32
+ i18n (0.9.5)
33
+ concurrent-ruby (~> 1.0)
34
+ method_source (0.9.2)
35
+ minitest (5.14.4)
36
+ mysql2 (0.4.10)
37
+ pry (0.12.2)
38
+ coderay (~> 1.1.0)
39
+ method_source (~> 0.9.0)
40
+ pry-byebug (3.6.0)
41
+ byebug (~> 10.0)
42
+ pry (~> 0.10)
34
43
  rake (11.3.0)
35
44
  rspec (3.5.0)
36
45
  rspec-core (~> 3.5.0)
@@ -45,8 +54,8 @@ GEM
45
54
  diff-lcs (>= 1.2.0, < 2.0)
46
55
  rspec-support (~> 3.5.0)
47
56
  rspec-support (3.5.0)
48
- thread_safe (0.3.5)
49
- tzinfo (1.2.2)
57
+ thread_safe (0.3.6)
58
+ tzinfo (1.2.9)
50
59
  thread_safe (~> 0.1)
51
60
 
52
61
  PLATFORMS
@@ -56,11 +65,12 @@ DEPENDENCIES
56
65
  activerecord (~> 4.2.0)
57
66
  database_cleaner
58
67
  edge_rider!
59
- gemika
68
+ gemika (>= 0.5.0)
60
69
  has_defaults
61
- mysql2 (~> 0.3.17)
70
+ mysql2 (~> 0.4.10)
71
+ pry-byebug
62
72
  rake
63
73
  rspec
64
74
 
65
75
  BUNDLED WITH
66
- 1.12.5
76
+ 2.2.26
@@ -9,7 +9,8 @@ gem 'rake'
9
9
  gem 'database_cleaner'
10
10
  gem 'rspec'
11
11
  gem 'has_defaults' # used by test models
12
- gem 'gemika'
12
+ gem 'gemika', '>=0.5.0'
13
+ gem 'pry-byebug'
13
14
 
14
15
  # Gem under test
15
- gem 'edge_rider', :path => '..'
16
+ gem 'edge_rider', path: '.'
@@ -1,36 +1,45 @@
1
1
  PATH
2
- remote: ..
2
+ remote: .
3
3
  specs:
4
- edge_rider (0.3.2)
5
- activerecord
4
+ edge_rider (2.0.0)
5
+ activerecord (>= 3.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (4.2.7.1)
11
- activesupport (= 4.2.7.1)
10
+ activemodel (4.2.11)
11
+ activesupport (= 4.2.11)
12
12
  builder (~> 3.1)
13
- activerecord (4.2.7.1)
14
- activemodel (= 4.2.7.1)
15
- activesupport (= 4.2.7.1)
13
+ activerecord (4.2.11)
14
+ activemodel (= 4.2.11)
15
+ activesupport (= 4.2.11)
16
16
  arel (~> 6.0)
17
- activesupport (4.2.7.1)
17
+ activesupport (4.2.11)
18
18
  i18n (~> 0.7)
19
- json (~> 1.7, >= 1.7.7)
20
19
  minitest (~> 5.1)
21
20
  thread_safe (~> 0.3, >= 0.3.4)
22
21
  tzinfo (~> 1.1)
23
- arel (6.0.3)
24
- builder (3.2.2)
22
+ arel (6.0.4)
23
+ builder (3.2.4)
24
+ byebug (10.0.2)
25
+ coderay (1.1.2)
26
+ concurrent-ruby (1.1.9)
25
27
  database_cleaner (1.5.3)
26
28
  diff-lcs (1.2.5)
27
- gemika (0.3.2)
29
+ gemika (0.6.1)
28
30
  has_defaults (0.4.4)
29
31
  activerecord
30
- i18n (0.7.0)
31
- json (1.8.3)
32
- minitest (5.9.1)
32
+ i18n (0.9.5)
33
+ concurrent-ruby (~> 1.0)
34
+ method_source (0.9.2)
35
+ minitest (5.14.4)
33
36
  pg (0.19.0)
37
+ pry (0.12.2)
38
+ coderay (~> 1.1.0)
39
+ method_source (~> 0.9.0)
40
+ pry-byebug (3.6.0)
41
+ byebug (~> 10.0)
42
+ pry (~> 0.10)
34
43
  rake (11.3.0)
35
44
  rspec (3.5.0)
36
45
  rspec-core (~> 3.5.0)
@@ -45,8 +54,8 @@ GEM
45
54
  diff-lcs (>= 1.2.0, < 2.0)
46
55
  rspec-support (~> 3.5.0)
47
56
  rspec-support (3.5.0)
48
- thread_safe (0.3.5)
49
- tzinfo (1.2.2)
57
+ thread_safe (0.3.6)
58
+ tzinfo (1.2.9)
50
59
  thread_safe (~> 0.1)
51
60
 
52
61
  PLATFORMS
@@ -56,11 +65,12 @@ DEPENDENCIES
56
65
  activerecord (~> 4.2.0)
57
66
  database_cleaner
58
67
  edge_rider!
59
- gemika
68
+ gemika (>= 0.5.0)
60
69
  has_defaults
61
70
  pg
71
+ pry-byebug
62
72
  rake
63
73
  rspec
64
74
 
65
75
  BUNDLED WITH
66
- 1.12.5
76
+ 2.2.26
@@ -0,0 +1,17 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Runtime dependencies
4
+ gem 'activerecord', '~>5.2.3'
5
+ gem 'mysql2', '~>0.4.10'
6
+ gem 'i18n', '<=1.5.1' # Required to support tests for Ruby 2.2.x
7
+
8
+ # Development dependencies
9
+ gem 'rake'
10
+ gem 'database_cleaner'
11
+ gem 'rspec'
12
+ gem 'has_defaults' # used by test models
13
+ gem 'gemika', '>=0.5.0'
14
+ gem 'pry-byebug'
15
+
16
+ # Gem under test
17
+ gem 'edge_rider', path: '.'
@@ -1,33 +1,43 @@
1
1
  PATH
2
- remote: ..
2
+ remote: .
3
3
  specs:
4
- edge_rider (0.3.2)
5
- activerecord
4
+ edge_rider (2.0.0)
5
+ activerecord (>= 3.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (5.1.1)
11
- activesupport (= 5.1.1)
12
- activerecord (5.1.1)
13
- activemodel (= 5.1.1)
14
- activesupport (= 5.1.1)
15
- arel (~> 8.0)
16
- activesupport (5.1.1)
10
+ activemodel (5.2.3)
11
+ activesupport (= 5.2.3)
12
+ activerecord (5.2.3)
13
+ activemodel (= 5.2.3)
14
+ activesupport (= 5.2.3)
15
+ arel (>= 9.0)
16
+ activesupport (5.2.3)
17
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (~> 0.7)
18
+ i18n (>= 0.7, < 2)
19
19
  minitest (~> 5.1)
20
20
  tzinfo (~> 1.1)
21
- arel (8.0.0)
22
- concurrent-ruby (1.0.5)
21
+ arel (9.0.0)
22
+ byebug (10.0.2)
23
+ coderay (1.1.2)
24
+ concurrent-ruby (1.1.5)
23
25
  database_cleaner (1.6.1)
24
26
  diff-lcs (1.3)
25
- gemika (0.3.2)
27
+ gemika (0.5.0)
26
28
  has_defaults (0.4.4)
27
29
  activerecord
28
- i18n (0.8.1)
29
- minitest (5.10.2)
30
- mysql2 (0.4.6)
30
+ i18n (1.5.1)
31
+ concurrent-ruby (~> 1.0)
32
+ method_source (0.9.2)
33
+ minitest (5.11.3)
34
+ mysql2 (0.4.10)
35
+ pry (0.12.2)
36
+ coderay (~> 1.1.0)
37
+ method_source (~> 0.9.0)
38
+ pry-byebug (3.6.0)
39
+ byebug (~> 10.0)
40
+ pry (~> 0.10)
31
41
  rake (12.0.0)
32
42
  rspec (3.6.0)
33
43
  rspec-core (~> 3.6.0)
@@ -43,21 +53,23 @@ GEM
43
53
  rspec-support (~> 3.6.0)
44
54
  rspec-support (3.6.0)
45
55
  thread_safe (0.3.6)
46
- tzinfo (1.2.3)
56
+ tzinfo (1.2.5)
47
57
  thread_safe (~> 0.1)
48
58
 
49
59
  PLATFORMS
50
60
  ruby
51
61
 
52
62
  DEPENDENCIES
53
- activerecord (~> 5.1.1)
63
+ activerecord (~> 5.2.3)
54
64
  database_cleaner
55
65
  edge_rider!
56
- gemika
66
+ gemika (>= 0.5.0)
57
67
  has_defaults
58
- mysql2
68
+ i18n (<= 1.5.1)
69
+ mysql2 (~> 0.4.10)
70
+ pry-byebug
59
71
  rake
60
72
  rspec
61
73
 
62
74
  BUNDLED WITH
63
- 1.15.0
75
+ 2.2.26