edge_rider 0.3.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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