edge_rider 1.1.0 → 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.
data/.travis.yml DELETED
@@ -1,51 +0,0 @@
1
- language: ruby
2
-
3
- dist: trusty
4
-
5
- matrix:
6
- include:
7
- - rvm: 2.2.4
8
- gemfile: Gemfile.3.2.mysql2
9
- - rvm: 2.2.4
10
- gemfile: Gemfile.4.2.mysql2
11
- - rvm: 2.3.1
12
- gemfile: Gemfile.4.2.mysql2
13
- - rvm: 2.2.4
14
- gemfile: Gemfile.4.2.pg
15
- - rvm: 2.3.1
16
- gemfile: Gemfile.4.2.pg
17
- - rvm: 2.2.4
18
- gemfile: Gemfile.5.2.mysql2
19
- - rvm: 2.3.1
20
- gemfile: Gemfile.5.2.mysql2
21
- - rvm: 2.4.1
22
- gemfile: Gemfile.5.2.mysql2
23
- - rvm: 2.5.3
24
- gemfile: Gemfile.5.2.mysql2
25
- - rvm: 2.2.4
26
- gemfile: Gemfile.5.2.pg
27
- - rvm: 2.3.1
28
- gemfile: Gemfile.5.2.pg
29
- - rvm: 2.4.1
30
- gemfile: Gemfile.5.2.pg
31
- - rvm: 2.5.3
32
- gemfile: Gemfile.5.2.pg
33
- - rvm: 2.5.3
34
- gemfile: Gemfile.6.0.pg
35
-
36
- services:
37
- - mysql
38
-
39
- install:
40
- # Replace default Travis CI bundler script with a version that doesn't
41
- # explode when lockfile doesn't match recently bumped version
42
- - bundle install --no-deployment --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
43
-
44
- addons:
45
- postgresql: 9.3
46
-
47
- before_script:
48
- - psql -c 'create database edge_rider_test;' -U postgres
49
- - mysql -e 'create database IF NOT EXISTS edge_rider_test;'
50
-
51
- script: bundle exec rake current_rspec
data/Gemfile.3.2.mysql2 DELETED
@@ -1,17 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Runtime dependencies
4
- gem 'activerecord', '=3.2.22'
5
- gem 'mysql2', '= 0.3.17'
6
- gem 'i18n', '=0.6.11' # 0.7 no longer builds for Ruby 1.8.7
7
-
8
- # Development dependencies
9
- gem 'rake', '=10.0.4'
10
- gem 'database_cleaner'
11
- gem 'rspec', '~> 3.4'
12
- gem 'has_defaults' # used by test models
13
- gem 'gemika'
14
- gem 'pry-byebug'
15
-
16
- # Gem under test
17
- gem 'edge_rider', path: '.'
@@ -1,72 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- edge_rider (1.1.0)
5
- activerecord (>= 3.2)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (3.2.22)
11
- activesupport (= 3.2.22)
12
- builder (~> 3.0.0)
13
- activerecord (3.2.22)
14
- activemodel (= 3.2.22)
15
- activesupport (= 3.2.22)
16
- arel (~> 3.0.2)
17
- tzinfo (~> 0.3.29)
18
- activesupport (3.2.22)
19
- i18n (~> 0.6, >= 0.6.4)
20
- multi_json (~> 1.0)
21
- arel (3.0.3)
22
- builder (3.0.4)
23
- byebug (10.0.2)
24
- coderay (1.1.2)
25
- database_cleaner (1.0.1)
26
- diff-lcs (1.2.5)
27
- gemika (0.4.0)
28
- has_defaults (0.4.4)
29
- activerecord
30
- i18n (0.6.11)
31
- method_source (0.9.2)
32
- multi_json (1.12.1)
33
- mysql2 (0.3.17)
34
- pry (0.12.2)
35
- coderay (~> 1.1.0)
36
- method_source (~> 0.9.0)
37
- pry-byebug (3.6.0)
38
- byebug (~> 10.0)
39
- pry (~> 0.10)
40
- rake (10.0.4)
41
- rspec (3.5.0)
42
- rspec-core (~> 3.5.0)
43
- rspec-expectations (~> 3.5.0)
44
- rspec-mocks (~> 3.5.0)
45
- rspec-core (3.5.3)
46
- rspec-support (~> 3.5.0)
47
- rspec-expectations (3.5.0)
48
- diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.5.0)
50
- rspec-mocks (3.5.0)
51
- diff-lcs (>= 1.2.0, < 2.0)
52
- rspec-support (~> 3.5.0)
53
- rspec-support (3.5.0)
54
- tzinfo (0.3.51)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- activerecord (= 3.2.22)
61
- database_cleaner
62
- edge_rider!
63
- gemika
64
- has_defaults
65
- i18n (= 0.6.11)
66
- mysql2 (= 0.3.17)
67
- pry-byebug
68
- rake (= 10.0.4)
69
- rspec (~> 3.4)
70
-
71
- BUNDLED WITH
72
- 1.17.3
data/Gemfile.6.0.pg.lock DELETED
@@ -1,74 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- edge_rider (1.1.0)
5
- activerecord (>= 3.2)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (6.0.0.rc1)
11
- activesupport (= 6.0.0.rc1)
12
- activerecord (6.0.0.rc1)
13
- activemodel (= 6.0.0.rc1)
14
- activesupport (= 6.0.0.rc1)
15
- activesupport (6.0.0.rc1)
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.4)
21
- byebug (10.0.2)
22
- coderay (1.1.2)
23
- concurrent-ruby (1.1.5)
24
- database_cleaner (1.7.0)
25
- diff-lcs (1.3)
26
- gemika (0.4.0)
27
- has_defaults (0.4.4)
28
- activerecord
29
- i18n (1.6.0)
30
- concurrent-ruby (~> 1.0)
31
- method_source (0.9.2)
32
- minitest (5.11.3)
33
- pg (1.1.4)
34
- pry (0.12.2)
35
- coderay (~> 1.1.0)
36
- method_source (~> 0.9.0)
37
- pry-byebug (3.6.0)
38
- byebug (~> 10.0)
39
- pry (~> 0.10)
40
- rake (12.3.2)
41
- rspec (3.8.0)
42
- rspec-core (~> 3.8.0)
43
- rspec-expectations (~> 3.8.0)
44
- rspec-mocks (~> 3.8.0)
45
- rspec-core (3.8.0)
46
- rspec-support (~> 3.8.0)
47
- rspec-expectations (3.8.2)
48
- diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.8.0)
50
- rspec-mocks (3.8.0)
51
- diff-lcs (>= 1.2.0, < 2.0)
52
- rspec-support (~> 3.8.0)
53
- rspec-support (3.8.0)
54
- thread_safe (0.3.6)
55
- tzinfo (1.2.5)
56
- thread_safe (~> 0.1)
57
- zeitwerk (2.1.6)
58
-
59
- PLATFORMS
60
- ruby
61
-
62
- DEPENDENCIES
63
- activerecord (~> 6.0.0.rc1)
64
- database_cleaner
65
- edge_rider!
66
- gemika
67
- has_defaults
68
- pg
69
- pry-byebug
70
- rake
71
- rspec
72
-
73
- BUNDLED WITH
74
- 1.17.3
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe EdgeRider::CollectColumn do
4
-
5
- describe '#collect_column' do
6
-
7
- it 'should collect the given value from a scope' do
8
- Forum.create!(id: 1, name: 'Name 1')
9
- Forum.create!(id: 2, name: 'Name 2')
10
- Forum.create!(id: 3, name: 'Name 3')
11
- scope = Forum.scoped(conditions: { id: [2, 3] })
12
- scope.collect_column(:name).should =~ ['Name 2', 'Name 3']
13
- end
14
-
15
- it 'should collect the given value from an ActiveRecord class' do
16
- Forum.create!(id: 1, name: 'Name 1')
17
- Forum.create!(id: 2, name: 'Name 2')
18
- Forum.collect_column(:name).should =~ ['Name 1', 'Name 2']
19
- end
20
-
21
- it 'should cast the collected value to their equivalent Ruby type' do
22
- Post.create!
23
- Post.collect_column(:created_at).first.should be_a(Time)
24
- end
25
-
26
- it 'should not instantiate ActiveRecord objects when collecting values' do
27
- Forum.create!(name: 'Name')
28
- Forum.should_not_receive(:new)
29
- Forum.collect_column(:name).should == ['Name']
30
- end
31
-
32
- it 'should qualify the column name to resolve any ambiguities' do
33
- expect { Topic.scoped(joins: :forum).collect_column(:id) }.to_not raise_error
34
- end
35
-
36
- context 'with :distinct option' do
37
-
38
- it 'should return unique values' do
39
- Forum.create!(id: 1, name: 'Name 1')
40
- Forum.create!(id: 2, name: 'Name 2')
41
- Forum.create!(id: 3, name: 'Name 2')
42
- scope = Forum.scoped(conditions: { id: [2, 3] })
43
- scope.collect_column(:name, distinct: true).should =~ ['Name 2']
44
- end
45
-
46
- end
47
-
48
- context 'when called on a has many association' do
49
-
50
- it 'should collect the given value' do
51
- topic = Topic.create!
52
- post = Post.create!(topic: topic, id: 1)
53
- post = Post.create!(topic: topic, id: 2)
54
- topic.reload
55
- topic.posts.to_a
56
- topic.posts.collect_column(:id).should =~ [1,2]
57
- end
58
-
59
- it 'should return values when further restricted with an anonymous scope' do
60
- topic = Topic.create!
61
- post = Post.create!(topic: topic, id: 1)
62
- post = Post.create!(topic: topic, id: 2)
63
- topic.reload
64
- topic.posts.to_a
65
- if topic.posts.respond_to?(:where)
66
- topic.posts.where(id: [1]).collect_ids.should =~ [1]
67
- else
68
- topic.posts.scoped(conditions: {id: [1]}).collect_column(:id).should =~ [1]
69
- end
70
- end
71
-
72
- it 'should return values when further restricted with a named scope' do
73
- topic = Topic.create!
74
- post = Post.create!(topic: topic, id: 1)
75
- post = Post.create!(topic: topic, id: 2)
76
- topic.reload
77
- topic.posts.to_a
78
- topic.posts.these([1]).collect_column(:id).should =~ [1]
79
- end
80
-
81
- end
82
-
83
- end
84
-
85
- end
@@ -1,108 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe EdgeRider::CollectIds do
4
-
5
- describe '#collect_ids' do
6
-
7
- context 'when called on an ActiveRecord class' do
8
-
9
- it 'should return the ids for all records of that class' do
10
- Forum.create!(id: 1)
11
- Forum.create!(id: 2)
12
- Forum.collect_ids.should =~ [1, 2]
13
- end
14
-
15
- end
16
-
17
- context 'when called on a scope' do
18
-
19
- it 'should return the ids for all records matching that scope' do
20
- Forum.create!(id: 1, name: 'Name 1')
21
- Forum.create!(id: 2, name: 'Name 2')
22
- Forum.create!(id: 3, name: 'Name 2')
23
- scope = Forum.scoped(conditions: { name: 'Name 2' })
24
- scope.collect_ids.should =~ [2, 3]
25
- end
26
-
27
- end
28
-
29
- context 'when called on an Integer' do
30
-
31
- it 'should return the number as an array with a single element' do
32
- 5.collect_ids.should == [5]
33
- end
34
-
35
- end
36
-
37
- context 'when called on another scalar value' do
38
-
39
- it 'should not be defined' do
40
- expect { "foo".collect_ids }.to raise_error(NoMethodError)
41
- end
42
-
43
- end
44
-
45
- context 'when called on an array of Integers' do
46
-
47
- it 'should return the list itself' do
48
- [1, 3].collect_ids.should == [1, 3]
49
- end
50
-
51
- end
52
-
53
- context 'when called on an array of ActiveRecords' do
54
-
55
- it 'should return the ids collected from that list' do
56
- forum_1 = Forum.create!(id: 1)
57
- forum_2 = Forum.create!(id: 2)
58
- [forum_1, forum_2].collect_ids.should =~ [1, 2]
59
- end
60
-
61
- end
62
-
63
- context 'when called on an array of other values' do
64
-
65
- it 'should raise an error' do
66
- expect { [1, 'foo', 3].collect_ids }.to raise_error(EdgeRider::CollectIds::Uncollectable)
67
- end
68
-
69
- end
70
-
71
- context 'when called on a has many association' do
72
-
73
- it 'should return the ids' do
74
- topic = Topic.create!
75
- post = Post.create!(topic: topic, id: 1)
76
- post = Post.create!(topic: topic, id: 2)
77
- topic.reload
78
- topic.posts.to_a
79
- topic.posts.collect_ids.should =~ [1,2]
80
- end
81
-
82
- it 'should return ids when further restricted with an anonymous scope' do
83
- topic = Topic.create!
84
- post = Post.create!(topic: topic, id: 1)
85
- post = Post.create!(topic: topic, id: 2)
86
- topic.reload
87
- topic.posts.to_a
88
- if topic.posts.respond_to?(:where)
89
- topic.posts.where(id: [1]).collect_ids.should =~ [1]
90
- else
91
- topic.posts.scoped(conditions: {id: [1]}).collect_ids.should =~ [1]
92
- end
93
- end
94
-
95
- it 'should return ids when further restricted with a named scope' do
96
- topic = Topic.create!
97
- post = Post.create!(topic: topic, id: 1)
98
- post = Post.create!(topic: topic, id: 2)
99
- topic.reload
100
- topic.posts.to_a
101
- topic.posts.these([1]).collect_ids.should =~ [1]
102
- end
103
-
104
- end
105
-
106
- end
107
-
108
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe EdgeRider::OriginClass do
4
-
5
- describe '#origin_class' do
6
-
7
- it "should return the class a scope is based on" do
8
- Forum.create!(id: 1)
9
- Forum.create!(id: 2)
10
- scope = Forum.scoped(conditions: { id: [1] })
11
- scope.origin_class.should == Forum
12
- scope.origin_class.collect_ids.should == [1, 2]
13
- end
14
-
15
- it "should return the class a scope chain is based on" do
16
- Forum.create!(id: 1, name: 'A')
17
- Forum.create!(id: 2, name: 'B')
18
- Forum.create!(id: 3, name: 'C')
19
- scope_chain = Forum.scoped(conditions: { id: [1, 2] }).scoped(conditions: { name: ['A', 'B'] })
20
- scope_chain.origin_class.should == Forum
21
- scope_chain.origin_class.collect_ids.should == [1, 2, 3]
22
- end
23
-
24
- it "should return itself when called on an ActiveRecord class" do
25
- Forum.create!(id: 1)
26
- Forum.create!(id: 2)
27
- Forum.origin_class.should == Forum
28
- Forum.origin_class.collect_ids.should == [1, 2]
29
- end
30
- end
31
-
32
- end