pupa 0.1.11 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +3 -0
  5. data/.yardopts +0 -1
  6. data/Gemfile +1 -3
  7. data/LICENSE +1 -1
  8. data/PERFORMANCE.md +1 -1
  9. data/README.md +19 -23
  10. data/Rakefile +2 -2
  11. data/lib/pupa.rb +0 -1
  12. data/lib/pupa/models/concerns/timestamps.rb +1 -1
  13. data/lib/pupa/processor/connection.rb +1 -1
  14. data/lib/pupa/processor/connection_adapters/mongodb_adapter.rb +5 -5
  15. data/lib/pupa/processor/connection_adapters/postgresql_adapter.rb +1 -1
  16. data/lib/pupa/processor/document_store/file_store.rb +2 -0
  17. data/lib/pupa/refinements/faraday_middleware.rb +3 -1
  18. data/lib/pupa/version.rb +1 -1
  19. data/pupa.gemspec +9 -9
  20. data/spec/models/area_spec.rb +1 -1
  21. data/spec/models/concerns/contactable_spec.rb +8 -8
  22. data/spec/models/concerns/identifiable_spec.rb +7 -7
  23. data/spec/models/concerns/linkable_spec.rb +3 -3
  24. data/spec/models/concerns/nameable_spec.rb +3 -3
  25. data/spec/models/concerns/sourceable_spec.rb +3 -3
  26. data/spec/models/concerns/timestamps_spec.rb +4 -4
  27. data/spec/models/contact_detail_list_spec.rb +6 -6
  28. data/spec/models/identifier_list_spec.rb +2 -2
  29. data/spec/models/membership_spec.rb +3 -3
  30. data/spec/models/model_spec.rb +32 -32
  31. data/spec/models/motion_spec.rb +1 -1
  32. data/spec/models/organization_spec.rb +3 -3
  33. data/spec/models/person_spec.rb +3 -3
  34. data/spec/models/post_spec.rb +2 -2
  35. data/spec/models/vote_event_spec.rb +8 -8
  36. data/spec/models/vote_spec.rb +1 -1
  37. data/spec/processor/client_spec.rb +4 -4
  38. data/spec/processor/connection_adapters/mongodb_adapter_spec.rb +8 -8
  39. data/spec/processor/connection_adapters/postgresql_adapter_spec.rb +1 -62
  40. data/spec/processor/connection_adapters/sqlite_adapter_spec.rb +5 -0
  41. data/spec/processor/connection_spec.rb +2 -2
  42. data/spec/processor/document_store/file_store_spec.rb +19 -19
  43. data/spec/processor/document_store/redis_store_spec.rb +18 -18
  44. data/spec/processor/document_store_spec.rb +2 -2
  45. data/spec/processor/middleware/logger_spec.rb +7 -7
  46. data/spec/processor/middleware/parse_json_spec.rb +1 -1
  47. data/spec/processor/yielder_spec.rb +4 -4
  48. data/spec/processor_spec.rb +41 -41
  49. data/spec/runner_spec.rb +9 -9
  50. data/spec/spec_helper.rb +9 -1
  51. data/spec/support/shared_examples_for_connection_adapters.rb +66 -0
  52. metadata +38 -35
  53. data/USAGE +0 -1
@@ -7,7 +7,7 @@ describe Pupa::Vote do
7
7
 
8
8
  describe '#to_s' do
9
9
  it 'should return a human-readable string' do
10
- object.to_s.should == 'yes by john-q-public in vote-42'
10
+ expect(object.to_s).to eq('yes by john-q-public in vote-42')
11
11
  end
12
12
  end
13
13
  end
@@ -3,13 +3,13 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
3
  describe Pupa::Processor::Client do
4
4
  describe '.new' do
5
5
  it 'should use the filesystem' do
6
- ActiveSupport::Cache::FileStore.should_receive(:new).and_call_original
7
- Pupa::Processor::Client.new(cache_dir: '/tmp', level: 'UNKNOWN').get('http://example.com/')
6
+ expect(ActiveSupport::Cache::FileStore).to receive(:new).and_call_original
7
+ Pupa::Processor::Client.new(cache_dir: '/tmp', level: 'UNKNOWN').get('http://httpbin.org/')
8
8
  end
9
9
 
10
10
  it 'should use Memcached' do
11
- ActiveSupport::Cache::MemCacheStore.should_receive(:new).and_call_original
12
- Pupa::Processor::Client.new(cache_dir: 'memcached://localhost', level: 'UNKNOWN').get('http://example.com/')
11
+ expect(ActiveSupport::Cache::MemCacheStore).to receive(:new).and_call_original
12
+ Pupa::Processor::Client.new(cache_dir: 'memcached://localhost', level: 'UNKNOWN').get('http://httpbin.org/')
13
13
  end
14
14
  end
15
15
  end
@@ -13,8 +13,8 @@ describe Pupa::Processor::Connection::MongoDBAdapter do
13
13
  connection.raw_connection[:people].drop
14
14
 
15
15
  connection.save(Pupa::Person.new(_id: 'existing', name: 'existing', email: 'existing@example.com'))
16
- connection.raw_connection[:people].insert(_type: 'pupa/person', name: 'non-unique')
17
- connection.raw_connection[:people].insert(_type: 'pupa/person', name: 'non-unique')
16
+ connection.raw_connection[:people].insert_one(_type: 'pupa/person', name: 'non-unique')
17
+ connection.raw_connection[:people].insert_one(_type: 'pupa/person', name: 'non-unique')
18
18
  end
19
19
 
20
20
  describe '.find' do
@@ -23,11 +23,11 @@ describe Pupa::Processor::Connection::MongoDBAdapter do
23
23
  end
24
24
 
25
25
  it 'should return nil if no matches' do
26
- connection.find(_type: _type, name: 'nonexistent').should == nil
26
+ expect(connection.find(_type: _type, name: 'nonexistent')).to eq(nil)
27
27
  end
28
28
 
29
29
  it 'should return a document if one match' do
30
- connection.find(_type: _type, name: 'existing').should be_a(Hash)
30
+ expect(connection.find(_type: _type, name: 'existing')).to be_a(Hash)
31
31
  end
32
32
 
33
33
  it 'should raise an error if many matches' do
@@ -41,13 +41,13 @@ describe Pupa::Processor::Connection::MongoDBAdapter do
41
41
  end
42
42
 
43
43
  it 'should insert a document if no matches' do
44
- connection.save(Pupa::Person.new(_id: 'new', name: 'new', email: 'new@example.com')).should == [true, 'new']
45
- connection.find(_type: _type, name: 'new')['email'].should == 'new@example.com'
44
+ expect(connection.save(Pupa::Person.new(_id: 'new', name: 'new', email: 'new@example.com'))).to eq([true, 'new'])
45
+ expect(connection.find(_type: _type, name: 'new')['email']).to eq('new@example.com')
46
46
  end
47
47
 
48
48
  it 'should update a document if one match' do
49
- connection.save(Pupa::Person.new(_id: 'changed', name: 'existing', email: 'changed@example.com')).should == [false, 'existing']
50
- connection.find(_type: _type, name: 'existing')['email'].should == 'changed@example.com'
49
+ expect(connection.save(Pupa::Person.new(_id: 'changed', name: 'existing', email: 'changed@example.com'))).to eq([false, 'existing'])
50
+ expect(connection.find(_type: _type, name: 'existing')['email']).to eq('changed@example.com')
51
51
  end
52
52
 
53
53
  it 'should raise an error if many matches' do
@@ -1,66 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe Pupa::Processor::Connection::PostgreSQLAdapter do
4
- def _type
5
- 'pupa/person'
6
- end
7
-
8
- def connection
9
- Pupa::Processor::Connection::PostgreSQLAdapter.new('postgres://localhost:5432/pupa_test')
10
- end
11
-
12
- before :all do
13
- connection.raw_connection.drop_table?(:people)
14
- connection.raw_connection.create_table(:people) do
15
- primary_key :id
16
- String :_id
17
- String :_type
18
- String :name
19
- String :email
20
- Time :created_at
21
- Time :updated_at
22
- end
23
-
24
- connection.save(Pupa::Person.new(_id: 'existing', name: 'existing', email: 'existing@example.com'))
25
- connection.raw_connection[:people].insert(_type: 'pupa/person', name: 'non-unique')
26
- connection.raw_connection[:people].insert(_type: 'pupa/person', name: 'non-unique')
27
- end
28
-
29
- describe '.find' do
30
- it 'should raise an error if selector is empty' do
31
- expect{connection.find(_type: _type)}.to raise_error(Pupa::Errors::EmptySelectorError)
32
- end
33
-
34
- it 'should return nil if no matches' do
35
- connection.find(_type: _type, name: 'nonexistent').should == nil
36
- end
37
-
38
- it 'should return a document if one match' do
39
- connection.find(_type: _type, name: 'existing').should be_a(Hash)
40
- end
41
-
42
- it 'should raise an error if many matches' do
43
- expect{connection.find(_type: 'pupa/person', name: 'non-unique')}.to raise_error(Pupa::Errors::TooManyMatches)
44
- end
45
- end
46
-
47
- describe '.save' do
48
- it 'should raise an error if selector is empty' do
49
- expect{connection.save(Pupa::Person.new)}.to raise_error(Pupa::Errors::EmptySelectorError)
50
- end
51
-
52
- it 'should insert a document if no matches' do
53
- connection.save(Pupa::Person.new(_id: 'new', name: 'new', email: 'new@example.com')).should == [true, 'new']
54
- connection.find(_type: _type, name: 'new')['email'].should == 'new@example.com'
55
- end
56
-
57
- it 'should update a document if one match' do
58
- connection.save(Pupa::Person.new(_id: 'changed', name: 'existing', email: 'changed@example.com')).should == [false, 'existing']
59
- connection.find(_type: _type, name: 'existing')['email'].should == 'changed@example.com'
60
- end
61
-
62
- it 'should raise an error if many matches' do
63
- expect{connection.save(Pupa::Person.new(name: 'non-unique'))}.to raise_error(Pupa::Errors::TooManyMatches)
64
- end
65
- end
4
+ include_examples 'SQL adapter', 'postgres://localhost:5432/pupa_test'
66
5
  end
@@ -0,0 +1,5 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe Pupa::Processor::Connection::PostgreSQLAdapter do
4
+ include_examples 'SQL adapter', 'sqlite://test.db'
5
+ end
@@ -3,12 +3,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
3
  describe Pupa::Processor::Connection do
4
4
  describe '.new' do
5
5
  it 'should use MongoDB' do
6
- Pupa::Processor::Connection::MongoDBAdapter.should_receive(:new).with('mongodb://localhost:27017/pupa').and_call_original
6
+ expect(Pupa::Processor::Connection::MongoDBAdapter).to receive(:new).with('mongodb://localhost:27017/pupa').and_call_original
7
7
  Pupa::Processor::Connection.new('mongodb://localhost:27017/pupa')
8
8
  end
9
9
 
10
10
  it 'should use PostgreSQL' do
11
- Pupa::Processor::Connection::PostgreSQLAdapter.should_receive(:new).with('postgres://localhost:5432/pupa').and_call_original
11
+ expect(Pupa::Processor::Connection::PostgreSQLAdapter).to receive(:new).with('postgres://localhost:5432/pupa').and_call_original
12
12
  Pupa::Processor::Connection.new('postgres://localhost:5432/pupa')
13
13
  end
14
14
  end
@@ -7,52 +7,52 @@ describe Pupa::Processor::DocumentStore::FileStore do
7
7
 
8
8
  describe '#exist?' do
9
9
  it 'should return true if the store contains an entry for the given key' do
10
- store.exist?('foo.json').should == true
10
+ expect(store.exist?('foo.json')).to eq(true)
11
11
  end
12
12
 
13
13
  it 'should return false if the store does not contain an entry for the given key' do
14
- store.exist?('nonexistent').should == false
14
+ expect(store.exist?('nonexistent')).to eq(false)
15
15
  end
16
16
  end
17
17
 
18
18
  describe '#entries' do
19
19
  it 'should return all keys in the store' do
20
- store.entries.sort.should == %w(bar.json baz.json foo.json)
20
+ expect(store.entries.sort).to eq(%w(bar.json baz.json foo.json))
21
21
  end
22
22
  end
23
23
 
24
24
  describe '#read' do
25
25
  it 'should return the value of the given key' do
26
- store.read('foo.json').should == {'name' => 'foo'}
26
+ expect(store.read('foo.json')).to eq({'name' => 'foo'})
27
27
  end
28
28
  end
29
29
 
30
30
  describe '#read_multi' do
31
31
  it 'should return the values of the given keys' do
32
- store.read_multi(%w(foo.json bar.json)).should == [{'name' => 'foo'}, {'name' => 'bar'}]
32
+ expect(store.read_multi(%w(foo.json bar.json))).to eq([{'name' => 'foo'}, {'name' => 'bar'}])
33
33
  end
34
34
  end
35
35
 
36
36
  describe '#write' do
37
37
  it 'should write an entry with the given value for the given key' do
38
- store.exist?('new.json').should == false
38
+ expect(store.exist?('new.json')).to eq(false)
39
39
  store.write('new.json', {name: 'new'})
40
- store.read('new.json').should == {'name' => 'new'}
40
+ expect(store.read('new.json')).to eq({'name' => 'new'})
41
41
  store.delete('new.json') # cleanup
42
42
  end
43
43
  end
44
44
 
45
45
  describe '#write_unless_exists' do
46
46
  it 'should write an entry with the given value for the given key' do
47
- store.exist?('new.json').should == false
48
- store.write_unless_exists('new.json', {name: 'new'}).should == true
49
- store.read('new.json').should == {'name' => 'new'}
47
+ expect(store.exist?('new.json')).to eq(false)
48
+ expect(store.write_unless_exists('new.json', {name: 'new'})).to eq(true)
49
+ expect(store.read('new.json')).to eq({'name' => 'new'})
50
50
  store.delete('new.json') # cleanup
51
51
  end
52
52
 
53
53
  it 'should not write an entry with the given value for the given key if the key exists' do
54
- store.write_unless_exists('foo.json', {name: 'new'}).should == false
55
- store.read('foo.json').should == {'name' => 'foo'}
54
+ expect(store.write_unless_exists('foo.json', {name: 'new'})).to eq(false)
55
+ expect(store.read('foo.json')).to eq({'name' => 'foo'})
56
56
  end
57
57
  end
58
58
 
@@ -64,10 +64,10 @@ describe Pupa::Processor::DocumentStore::FileStore do
64
64
  end
65
65
 
66
66
  pairs.keys.each do |name|
67
- store.exist?(name).should == false
67
+ expect(store.exist?(name)).to eq(false)
68
68
  end
69
69
  store.write_multi(pairs)
70
- store.read_multi(pairs.keys).should == [{'name' => 'new1'}, {'name' => 'new2'}]
70
+ expect(store.read_multi(pairs.keys)).to eq([{'name' => 'new1'}, {'name' => 'new2'}])
71
71
  pairs.keys.each do |name| # cleanup
72
72
  store.delete(name)
73
73
  end
@@ -77,17 +77,17 @@ describe Pupa::Processor::DocumentStore::FileStore do
77
77
  describe '#delete' do
78
78
  it 'should delete an entry with the given key from the store' do
79
79
  store.write('new.json', {name: 'new'})
80
- store.exist?('new.json').should == true
80
+ expect(store.exist?('new.json')).to eq(true)
81
81
  store.delete('new.json')
82
- store.exist?('new.json').should == false
82
+ expect(store.exist?('new.json')).to eq(false)
83
83
  end
84
84
  end
85
85
 
86
86
  describe '#clear' do
87
87
  it 'should delete all entries from the store' do
88
- store.entries.sort.should == %w(bar.json baz.json foo.json)
88
+ expect(store.entries.sort).to eq(%w(bar.json baz.json foo.json))
89
89
  store.clear
90
- store.entries.should == []
90
+ expect(store.entries).to eq([])
91
91
 
92
92
  %w(bar baz foo).each do |name| # cleanup
93
93
  store.write("#{name}.json", {name: name})
@@ -97,7 +97,7 @@ describe Pupa::Processor::DocumentStore::FileStore do
97
97
 
98
98
  describe '#path' do
99
99
  it 'should return the file path to the entry' do
100
- store.path('foo').should == File.expand_path(File.join('..', '..', 'fixtures', 'foo'), __dir__)
100
+ expect(store.path('foo')).to eq(File.expand_path(File.join('..', '..', 'fixtures', 'foo'), __dir__))
101
101
  end
102
102
  end
103
103
  end
@@ -14,52 +14,52 @@ describe Pupa::Processor::DocumentStore::RedisStore do
14
14
 
15
15
  describe '#exist?' do
16
16
  it 'should return true if the store contains an entry for the given key' do
17
- store.exist?('foo.json').should == true
17
+ expect(store.exist?('foo.json')).to eq(true)
18
18
  end
19
19
 
20
20
  it 'should return false if the store does not contain an entry for the given key' do
21
- store.exist?('nonexistent').should == false
21
+ expect(store.exist?('nonexistent')).to eq(false)
22
22
  end
23
23
  end
24
24
 
25
25
  describe '#entries' do
26
26
  it 'should return all keys in the store' do
27
- store.entries.sort.should == %w(bar.json baz.json foo.json)
27
+ expect(store.entries.sort).to eq(%w(bar.json baz.json foo.json))
28
28
  end
29
29
  end
30
30
 
31
31
  describe '#read' do
32
32
  it 'should return the value of the given key' do
33
- store.read('foo.json').should == {'name' => 'foo'}
33
+ expect(store.read('foo.json')).to eq({'name' => 'foo'})
34
34
  end
35
35
  end
36
36
 
37
37
  describe '#read_multi' do
38
38
  it 'should return the values of the given keys' do
39
- store.read_multi(%w(foo.json bar.json)).should == [{'name' => 'foo'}, {'name' => 'bar'}]
39
+ expect(store.read_multi(%w(foo.json bar.json))).to eq([{'name' => 'foo'}, {'name' => 'bar'}])
40
40
  end
41
41
  end
42
42
 
43
43
  describe '#write' do
44
44
  it 'should write an entry with the given value for the given key' do
45
- store.exist?('new.json').should == false
45
+ expect(store.exist?('new.json')).to eq(false)
46
46
  store.write('new.json', {name: 'new'})
47
- store.read('new.json').should == {'name' => 'new'}
47
+ expect(store.read('new.json')).to eq({'name' => 'new'})
48
48
  store.delete('new.json') # cleanup
49
49
  end
50
50
  end
51
51
 
52
52
  describe '#write_unless_exists' do
53
53
  it 'should write an entry with the given value for the given key' do
54
- store.exist?('new.json').should == false
55
- store.write_unless_exists('new.json', {name: 'new'}).should == true
56
- store.read('new.json').should == {'name' => 'new'}
54
+ expect(store.exist?('new.json')).to eq(false)
55
+ expect(store.write_unless_exists('new.json', {name: 'new'})).to eq(true)
56
+ expect(store.read('new.json')).to eq({'name' => 'new'})
57
57
  store.delete('new.json') # cleanup
58
58
  end
59
59
 
60
60
  it 'should not write an entry with the given value for the given key if the key exists' do
61
- store.write_unless_exists('foo.json', {name: 'new'}).should == false
62
- store.read('foo.json').should == {'name' => 'foo'}
61
+ expect(store.write_unless_exists('foo.json', {name: 'new'})).to eq(false)
62
+ expect(store.read('foo.json')).to eq({'name' => 'foo'})
63
63
  end
64
64
  end
65
65
 
@@ -71,10 +71,10 @@ describe Pupa::Processor::DocumentStore::RedisStore do
71
71
  end
72
72
 
73
73
  pairs.keys.each do |name|
74
- store.exist?(name).should == false
74
+ expect(store.exist?(name)).to eq(false)
75
75
  end
76
76
  store.write_multi(pairs)
77
- store.read_multi(pairs.keys).should == [{'name' => 'new1'}, {'name' => 'new2'}]
77
+ expect(store.read_multi(pairs.keys)).to eq([{'name' => 'new1'}, {'name' => 'new2'}])
78
78
  pairs.keys.each do |name| # cleanup
79
79
  store.delete(name)
80
80
  end
@@ -84,17 +84,17 @@ describe Pupa::Processor::DocumentStore::RedisStore do
84
84
  describe '#delete' do
85
85
  it 'should delete an entry with the given key from the store' do
86
86
  store.write('new.json', {name: 'new'})
87
- store.exist?('new.json').should == true
87
+ expect(store.exist?('new.json')).to eq(true)
88
88
  store.delete('new.json')
89
- store.exist?('new.json').should == false
89
+ expect(store.exist?('new.json')).to eq(false)
90
90
  end
91
91
  end
92
92
 
93
93
  describe '#clear' do
94
94
  it 'should delete all entries from the store' do
95
- store.entries.sort.should == %w(bar.json baz.json foo.json)
95
+ expect(store.entries.sort).to eq(%w(bar.json baz.json foo.json))
96
96
  store.clear
97
- store.entries.should == []
97
+ expect(store.entries).to eq([])
98
98
 
99
99
  %w(bar baz foo).each do |name| # cleanup
100
100
  store.write("#{name}.json", {name: name})
@@ -3,12 +3,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
3
  describe Pupa::Processor::DocumentStore do
4
4
  describe '.new' do
5
5
  it 'should use the filesystem' do
6
- Pupa::Processor::DocumentStore::FileStore.should_receive(:new).with('/tmp').and_call_original
6
+ expect(Pupa::Processor::DocumentStore::FileStore).to receive(:new).with('/tmp').and_call_original
7
7
  Pupa::Processor::DocumentStore.new('/tmp')
8
8
  end
9
9
 
10
10
  it 'should use Redis' do
11
- Pupa::Processor::DocumentStore::RedisStore.should_receive(:new).with('redis://localhost', {}).and_call_original
11
+ expect(Pupa::Processor::DocumentStore::RedisStore).to receive(:new).with('redis://localhost', {}).and_call_original
12
12
  Pupa::Processor::DocumentStore.new('redis://localhost')
13
13
  end
14
14
  end
@@ -27,15 +27,15 @@ describe Pupa::Processor::Middleware::Logger do
27
27
  end
28
28
 
29
29
  it 'should still return output' do
30
- @response.body.should == 'hello'
30
+ expect(@response.body).to eq('hello')
31
31
  end
32
32
 
33
33
  it 'should log the method and URL' do
34
- io.string.should match('get http:/hello')
34
+ expect(io.string).to match('get http:/hello')
35
35
  end
36
36
 
37
37
  it 'should log request headers' do
38
- io.string.should match('Accept: "text/html')
38
+ expect(io.string).to match('Accept: "text/html')
39
39
  end
40
40
  end
41
41
 
@@ -62,11 +62,11 @@ describe Pupa::Processor::Middleware::Logger do
62
62
  end
63
63
 
64
64
  it 'should log the method and URL' do
65
- io.string.should match('get http:/hello')
65
+ expect(io.string).to match('get http:/hello')
66
66
  end
67
67
 
68
68
  it 'should not log request headers' do
69
- io.string.should_not match('Accept: "text/html')
69
+ expect(io.string).not_to match('Accept: "text/html')
70
70
  end
71
71
  end
72
72
 
@@ -76,11 +76,11 @@ describe Pupa::Processor::Middleware::Logger do
76
76
  end
77
77
 
78
78
  it 'should log the method and URL' do
79
- io.string.should match('post http:/hello foo=bar')
79
+ expect(io.string).to match('post http:/hello foo=bar')
80
80
  end
81
81
 
82
82
  it 'should not log request headers' do
83
- io.string.should_not match('Accept: "text/html')
83
+ expect(io.string).not_to match('Accept: "text/html')
84
84
  end
85
85
  end
86
86
  end
@@ -85,6 +85,6 @@ describe Pupa::Processor::Middleware::ParseJson do
85
85
  end
86
86
 
87
87
  it "chokes on invalid json" do
88
- expect{ process('{') }.to raise_error
88
+ expect{ process('{') }.to raise_error(Faraday::ParsingError)
89
89
  end
90
90
  end
@@ -21,11 +21,11 @@ describe Pupa::Processor::Yielder do
21
21
  yielder.each do |n|
22
22
  array << n
23
23
  end
24
- array.should == (0..9).to_a
24
+ expect(array).to eq((0..9).to_a)
25
25
  end
26
26
 
27
27
  it 'should be composable with other iterators' do
28
- yielder.each.map{|n| n}.should == (0..9).to_a
28
+ expect(yielder.each.map{|n| n}).to eq((0..9).to_a)
29
29
  end
30
30
  end
31
31
 
@@ -35,7 +35,7 @@ describe Pupa::Processor::Yielder do
35
35
  10.times do |n|
36
36
  array << yielder.next
37
37
  end
38
- array.should == (0..9).to_a
38
+ expect(array).to eq((0..9).to_a)
39
39
  end
40
40
 
41
41
  it 'should raise an error if the enumerator is at the end' do
@@ -45,7 +45,7 @@ describe Pupa::Processor::Yielder do
45
45
 
46
46
  describe '#to_enum' do
47
47
  it 'should return an enumerator' do
48
- yielder.to_enum.should be_a(Enumerator)
48
+ expect(yielder.to_enum).to be_a(Enumerator)
49
49
  end
50
50
 
51
51
  it 'should return a lazy enumerator' do