mr_darcy 0.1.0 → 0.2.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.
@@ -1,5 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
+ shared_examples_for :threaded_promise do
4
+ it { should be_a MrDarcy::Promise::Thread }
5
+ end
6
+
7
+ shared_examples_for :synchronous_promise do
8
+ it { should be_a MrDarcy::Promise::Synchronous }
9
+ end
10
+
11
+ shared_examples_for :celluloid_promise do
12
+ it { should be_a MrDarcy::Promise::Celluloid }
13
+ end
14
+
15
+ shared_examples_for :event_machine_promise do
16
+ if RUBY_ENGINE == 'jruby'
17
+ When 'on JRuby' do
18
+ it 'raises an error' do
19
+ expect { subject }.to raise_error
20
+ end
21
+ end
22
+ else
23
+ it { should be_a MrDarcy::Promise::EM }
24
+ end
25
+ end
26
+
3
27
  describe MrDarcy::Promise do
4
28
  describe '.new' do
5
29
  let(:driver) { nil }
@@ -16,57 +40,57 @@ describe MrDarcy::Promise do
16
40
 
17
41
  When 'driver is :thread' do
18
42
  let(:driver) { :thread }
19
- it { should be_a MrDarcy::Promise::Thread }
43
+ it_should_behave_like :threaded_promise
20
44
  end
21
45
 
22
46
  When 'driver is :Thread' do
23
47
  let(:driver) { :Thread }
24
- it { should be_a MrDarcy::Promise::Thread }
48
+ it_should_behave_like :threaded_promise
25
49
  end
26
50
 
27
51
  When 'driver is :synchronous' do
28
52
  let(:driver) { :synchronous }
29
- it { should be_a MrDarcy::Promise::Synchronous }
53
+ it_should_behave_like :synchronous_promise
30
54
  end
31
55
 
32
56
  When 'driver is :Synchronous' do
33
57
  let(:driver) { :Synchronous }
34
- it { should be_a MrDarcy::Promise::Synchronous }
58
+ it_should_behave_like :synchronous_promise
35
59
  end
36
60
 
37
61
  When 'driver is :celluloid' do
38
62
  let(:driver) { :celluloid }
39
- it { should be_a MrDarcy::Promise::Celluloid }
63
+ it_should_behave_like :celluloid_promise
40
64
  end
41
65
 
42
66
  When 'driver is :Celluloid' do
43
67
  let(:driver) { :Celluloid }
44
- it { should be_a MrDarcy::Promise::Celluloid }
68
+ it_should_behave_like :celluloid_promise
45
69
  end
46
70
 
47
71
  When 'driver is :em' do
48
72
  let(:driver) { :em }
49
- it { should be_a MrDarcy::Promise::EM }
73
+ it_should_behave_like :event_machine_promise
50
74
  end
51
75
 
52
76
  When 'driver is :EM' do
53
77
  let(:driver) { :EM }
54
- it { should be_a MrDarcy::Promise::EM }
78
+ it_should_behave_like :event_machine_promise
55
79
  end
56
80
 
57
81
  When 'driver is :event_machine' do
58
82
  let(:driver) { :event_machine }
59
- it { should be_a MrDarcy::Promise::EM }
83
+ it_should_behave_like :event_machine_promise
60
84
  end
61
85
 
62
86
  When 'driver is :eventmachine' do
63
87
  let(:driver) { :eventmachine }
64
- it { should be_a MrDarcy::Promise::EM }
88
+ it_should_behave_like :event_machine_promise
65
89
  end
66
90
 
67
91
  When 'driver is :EventMachine' do
68
92
  let(:driver) { :EventMachine }
69
- it { should be_a MrDarcy::Promise::EM }
93
+ it_should_behave_like :event_machine_promise
70
94
  end
71
95
  end
72
96
  end
@@ -85,5 +85,5 @@ describe MrDarcy::Role do
85
85
  subject { player }
86
86
 
87
87
  it { should_not respond_to :really_a_money_source? }
88
- end
88
+ end unless RUBY_ENGINE == 'jruby'
89
89
  end
@@ -5,6 +5,26 @@ describe MrDarcy do
5
5
  it { should respond_to :driver }
6
6
  it { should respond_to :driver= }
7
7
 
8
+
9
+ describe '.all_drivers' do
10
+ subject { MrDarcy.all_drivers }
11
+
12
+ When 'running on jruby' do
13
+ before { stub_const 'RUBY_ENGINE', 'jruby' }
14
+
15
+ it { should_not include :em }
16
+ end
17
+
18
+ Otherwise do
19
+ before { stub_const 'RUBY_ENGINE', 'mri'}
20
+
21
+ it { should include :synchronous }
22
+ it { should include :thread }
23
+ it { should include :celluloid }
24
+ it { should include :em }
25
+ end
26
+ end
27
+
8
28
  # This spec doesn't pass on CI. I can't figure out why.
9
29
  # describe '#promise' do
10
30
  # When 'no driver is specified' do
metadata CHANGED
@@ -1,169 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mr_darcy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Harton
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-08 00:00:00.000000000 Z
11
+ date: 2014-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
20
+ requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - ~>
25
23
  - !ruby/object:Gem::Version
26
24
  version: '1.5'
25
+ prerelease: false
26
+ type: :development
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - '>='
32
37
  - !ruby/object:Gem::Version
33
38
  version: '0'
34
- type: :development
35
39
  prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
45
  - - '>='
39
46
  - !ruby/object:Gem::Version
40
47
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
50
  - - '>='
46
51
  - !ruby/object:Gem::Version
47
52
  version: '0'
48
- type: :development
49
53
  prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: guard
57
62
  requirement: !ruby/object:Gem::Requirement
58
63
  requirements:
59
64
  - - '>='
60
65
  - !ruby/object:Gem::Version
61
66
  version: '0'
62
- type: :development
63
67
  prerelease: false
68
+ type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
64
71
  version_requirements: !ruby/object:Gem::Requirement
65
72
  requirements:
66
73
  - - '>='
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: guard-rspec
71
76
  requirement: !ruby/object:Gem::Requirement
72
77
  requirements:
73
78
  - - '>='
74
79
  - !ruby/object:Gem::Version
75
80
  version: '0'
76
- type: :development
77
81
  prerelease: false
82
+ type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-bundler
78
85
  version_requirements: !ruby/object:Gem::Requirement
79
86
  requirements:
80
87
  - - '>='
81
88
  - !ruby/object:Gem::Version
82
89
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: guard-bundler
85
90
  requirement: !ruby/object:Gem::Requirement
86
91
  requirements:
87
92
  - - '>='
88
93
  - !ruby/object:Gem::Version
89
94
  version: '0'
90
- type: :development
91
95
  prerelease: false
96
+ type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ name: terminal-notifier-guard
92
99
  version_requirements: !ruby/object:Gem::Requirement
93
100
  requirements:
94
101
  - - '>='
95
102
  - !ruby/object:Gem::Version
96
103
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: terminal-notifier-guard
99
104
  requirement: !ruby/object:Gem::Requirement
100
105
  requirements:
101
106
  - - '>='
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
- type: :development
105
109
  prerelease: false
110
+ type: :development
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
106
113
  version_requirements: !ruby/object:Gem::Requirement
107
114
  requirements:
108
115
  - - '>='
109
116
  - !ruby/object:Gem::Version
110
117
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: pry
113
118
  requirement: !ruby/object:Gem::Requirement
114
119
  requirements:
115
120
  - - '>='
116
121
  - !ruby/object:Gem::Version
117
122
  version: '0'
118
- type: :development
119
123
  prerelease: false
124
+ type: :development
125
+ - !ruby/object:Gem::Dependency
126
+ name: eventmachine
120
127
  version_requirements: !ruby/object:Gem::Requirement
121
128
  requirements:
122
129
  - - '>='
123
130
  - !ruby/object:Gem::Version
124
131
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: eventmachine
127
132
  requirement: !ruby/object:Gem::Requirement
128
133
  requirements:
129
134
  - - '>='
130
135
  - !ruby/object:Gem::Version
131
136
  version: '0'
132
- type: :development
133
137
  prerelease: false
138
+ type: :development
139
+ - !ruby/object:Gem::Dependency
140
+ name: em-http-request
134
141
  version_requirements: !ruby/object:Gem::Requirement
135
142
  requirements:
136
143
  - - '>='
137
144
  - !ruby/object:Gem::Version
138
145
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: em-http-request
141
146
  requirement: !ruby/object:Gem::Requirement
142
147
  requirements:
143
148
  - - '>='
144
149
  - !ruby/object:Gem::Version
145
150
  version: '0'
146
- type: :development
147
151
  prerelease: false
152
+ type: :development
153
+ - !ruby/object:Gem::Dependency
154
+ name: celluloid
148
155
  version_requirements: !ruby/object:Gem::Requirement
149
156
  requirements:
150
157
  - - '>='
151
158
  - !ruby/object:Gem::Version
152
159
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: celluloid
155
160
  requirement: !ruby/object:Gem::Requirement
156
161
  requirements:
157
162
  - - '>='
158
163
  - !ruby/object:Gem::Version
159
164
  version: '0'
160
- type: :development
161
165
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
166
+ type: :development
167
167
  description: |2
168
168
  MrDarcy takes async promises from the javascript word, DCI from Jim
169
169
  Gay's brain and sprinkles some ruby on top for great justice!
@@ -215,6 +215,7 @@ files:
215
215
  - spec/lib/mr_darcy/promise/base_spec.rb
216
216
  - spec/lib/mr_darcy/promise/child_promise_spec.rb
217
217
  - spec/lib/mr_darcy/promise/dsl_spec.rb
218
+ - spec/lib/mr_darcy/promise/em_spec.rb
218
219
  - spec/lib/mr_darcy/promise/state/base_spec.rb
219
220
  - spec/lib/mr_darcy/promise/state/rejected_spec.rb
220
221
  - spec/lib/mr_darcy/promise/state/resolved_spec.rb
@@ -232,7 +233,7 @@ homepage: https://github.com/jamesotron/MrDarcy
232
233
  licenses:
233
234
  - MIT
234
235
  metadata: {}
235
- post_install_message:
236
+ post_install_message:
236
237
  rdoc_options: []
237
238
  require_paths:
238
239
  - lib
@@ -247,9 +248,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
248
  - !ruby/object:Gem::Version
248
249
  version: '0'
249
250
  requirements: []
250
- rubyforge_project:
251
- rubygems_version: 2.1.11
252
- signing_key:
251
+ rubyforge_project:
252
+ rubygems_version: 2.2.2
253
+ signing_key:
253
254
  specification_version: 4
254
255
  summary: A mashup of async Promises and DCI in Ruby.
255
256
  test_files:
@@ -264,6 +265,7 @@ test_files:
264
265
  - spec/lib/mr_darcy/promise/base_spec.rb
265
266
  - spec/lib/mr_darcy/promise/child_promise_spec.rb
266
267
  - spec/lib/mr_darcy/promise/dsl_spec.rb
268
+ - spec/lib/mr_darcy/promise/em_spec.rb
267
269
  - spec/lib/mr_darcy/promise/state/base_spec.rb
268
270
  - spec/lib/mr_darcy/promise/state/rejected_spec.rb
269
271
  - spec/lib/mr_darcy/promise/state/resolved_spec.rb