functional-ruby 0.7.7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -152
  3. data/doc/memo.txt +192 -0
  4. data/doc/pattern_matching.txt +485 -0
  5. data/doc/protocol.txt +221 -0
  6. data/doc/record.txt +144 -0
  7. data/doc/thread_safety.txt +8 -0
  8. data/lib/functional.rb +48 -18
  9. data/lib/functional/abstract_struct.rb +161 -0
  10. data/lib/functional/delay.rb +117 -0
  11. data/lib/functional/either.rb +222 -0
  12. data/lib/functional/memo.rb +93 -0
  13. data/lib/functional/method_signature.rb +72 -0
  14. data/lib/functional/option.rb +209 -0
  15. data/lib/functional/pattern_matching.rb +117 -100
  16. data/lib/functional/protocol.rb +157 -0
  17. data/lib/functional/protocol_info.rb +193 -0
  18. data/lib/functional/record.rb +155 -0
  19. data/lib/functional/type_check.rb +112 -0
  20. data/lib/functional/union.rb +152 -0
  21. data/lib/functional/version.rb +3 -1
  22. data/spec/functional/abstract_struct_shared.rb +154 -0
  23. data/spec/functional/complex_pattern_matching_spec.rb +205 -0
  24. data/spec/functional/configuration_spec.rb +17 -0
  25. data/spec/functional/delay_spec.rb +147 -0
  26. data/spec/functional/either_spec.rb +237 -0
  27. data/spec/functional/memo_spec.rb +207 -0
  28. data/spec/functional/option_spec.rb +292 -0
  29. data/spec/functional/pattern_matching_spec.rb +279 -276
  30. data/spec/functional/protocol_info_spec.rb +444 -0
  31. data/spec/functional/protocol_spec.rb +274 -0
  32. data/spec/functional/record_spec.rb +175 -0
  33. data/spec/functional/type_check_spec.rb +103 -0
  34. data/spec/functional/union_spec.rb +110 -0
  35. data/spec/spec_helper.rb +6 -4
  36. metadata +55 -45
  37. data/lib/functional/behavior.rb +0 -138
  38. data/lib/functional/behaviour.rb +0 -2
  39. data/lib/functional/catalog.rb +0 -487
  40. data/lib/functional/collection.rb +0 -403
  41. data/lib/functional/inflect.rb +0 -127
  42. data/lib/functional/platform.rb +0 -120
  43. data/lib/functional/search.rb +0 -132
  44. data/lib/functional/sort.rb +0 -41
  45. data/lib/functional/utilities.rb +0 -189
  46. data/md/behavior.md +0 -188
  47. data/md/catalog.md +0 -32
  48. data/md/collection.md +0 -32
  49. data/md/inflect.md +0 -32
  50. data/md/pattern_matching.md +0 -512
  51. data/md/platform.md +0 -32
  52. data/md/search.md +0 -32
  53. data/md/sort.md +0 -32
  54. data/md/utilities.md +0 -55
  55. data/spec/functional/behavior_spec.rb +0 -528
  56. data/spec/functional/catalog_spec.rb +0 -1206
  57. data/spec/functional/collection_spec.rb +0 -752
  58. data/spec/functional/inflect_spec.rb +0 -85
  59. data/spec/functional/integration_spec.rb +0 -205
  60. data/spec/functional/platform_spec.rb +0 -501
  61. data/spec/functional/search_spec.rb +0 -187
  62. data/spec/functional/sort_spec.rb +0 -61
  63. data/spec/functional/utilities_spec.rb +0 -277
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Functional
4
-
5
- describe Inflect do
6
-
7
- context '#camelize' do
8
-
9
- specify { Inflect.camelize('active_model').should eq 'ActiveModel' }
10
- specify { Inflect.camelize('active_model', :lower).should eq 'activeModel' }
11
- specify { Inflect.camelize(:active_model).should eq 'ActiveModel' }
12
- specify { Inflect.camelize(:active_model, :lower).should eq 'activeModel' }
13
-
14
- specify { Inflect.camelize('active_model/errors').should eq 'ActiveModel::Errors' }
15
- specify { Inflect.camelize('active_model/errors', :lower).should eq 'activeModel::Errors' }
16
- specify { Inflect.camelize(:'active_model/errors').should eq 'ActiveModel::Errors' }
17
- specify { Inflect.camelize(:'active_model/errors', :lower).should eq 'activeModel::Errors' }
18
- end
19
-
20
- context '#underscore' do
21
-
22
- specify { Inflect.underscore('ActiveModel').should eq 'active_model' }
23
- specify { Inflect.underscore(:'ActiveModel').should eq 'active_model' }
24
-
25
- specify { Inflect.underscore('ActiveModel::Errors').should eq 'active_model/errors' }
26
- specify { Inflect.underscore(:'ActiveModel::Errors').should eq 'active_model/errors' }
27
- end
28
-
29
- context '#humanize' do
30
-
31
- specify { Inflect.humanize('employee_salary').should eq 'Employee salary' }
32
- specify { Inflect.humanize('author_id').should eq 'Author' }
33
-
34
- specify { Inflect.humanize(:employee_salary).should eq 'Employee salary' }
35
- specify { Inflect.humanize(:author_id).should eq 'Author' }
36
- end
37
-
38
- context '#titleize' do
39
-
40
- specify { Inflect.titleize('man from the boondocks').should eq 'Man From The Boondocks' }
41
- specify { Inflect.titleize('x-men: the last stand').should eq 'X Men: The Last Stand' }
42
- specify { Inflect.titleize('TheManWithoutAPast').should eq 'The Man Without A Past' }
43
- specify { Inflect.titleize('raiders_of_the_lost_ark').should eq 'Raiders Of The Lost Ark' }
44
-
45
- specify { Inflect.titleize(:'man from the boondocks').should eq 'Man From The Boondocks' }
46
- specify { Inflect.titleize(:'x-men: the last stand').should eq 'X Men: The Last Stand' }
47
- specify { Inflect.titleize(:'TheManWithoutAPast').should eq 'The Man Without A Past' }
48
- specify { Inflect.titleize(:'raiders_of_the_lost_ark').should eq 'Raiders Of The Lost Ark' }
49
- end
50
-
51
- context '#dasherize' do
52
-
53
- specify { Inflect.dasherize('puni_puni').should eq 'puni-puni' }
54
- specify { Inflect.dasherize(:'puni_puni').should eq 'puni-puni' }
55
- end
56
-
57
- context '#extensionize' do
58
-
59
- specify { Inflect.extensionize('my_file.png', :png).should eq 'my_file.png' }
60
- specify { Inflect.extensionize('my_file.png', 'png').should eq 'my_file.png' }
61
- specify { Inflect.extensionize('my_file.png', '.png').should eq 'my_file.png' }
62
- specify { Inflect.extensionize('MY_FILE.PNG', '.png').should eq 'MY_FILE.PNG' }
63
-
64
- specify { Inflect.extensionize('my_file.png', :jpg).should eq 'my_file.png.jpg' }
65
- specify { Inflect.extensionize('my_file.png', 'jpg').should eq 'my_file.png.jpg' }
66
- specify { Inflect.extensionize('my_file.png', '.jpg').should eq 'my_file.png.jpg' }
67
-
68
- specify { Inflect.extensionize('my_file.png', :jpg, :chomp => true).should eq 'my_file.jpg' }
69
- specify { Inflect.extensionize('my_file.png', 'jpg', :chomp => true).should eq 'my_file.jpg' }
70
- specify { Inflect.extensionize('my_file.png', '.jpg', :chomp => true).should eq 'my_file.jpg' }
71
-
72
- specify { Inflect.extensionize('my_file', :png).should eq 'my_file.png' }
73
- specify { Inflect.extensionize('my_file', 'png').should eq 'my_file.png' }
74
- specify { Inflect.extensionize('my_file', '.png').should eq 'my_file.png' }
75
-
76
- specify { Inflect.extensionize('My File', :png).should eq 'My File.png' }
77
- specify { Inflect.extensionize('My File', 'png').should eq 'My File.png' }
78
- specify { Inflect.extensionize('My File', '.png').should eq 'My File.png' }
79
-
80
- specify { Inflect.extensionize('My File ', :png).should eq 'My File.png' }
81
- specify { Inflect.extensionize('My File ', 'png').should eq 'My File.png' }
82
- specify { Inflect.extensionize('My File ', '.png').should eq 'My File.png' }
83
- end
84
- end
85
- end
@@ -1,205 +0,0 @@
1
- require 'spec_helper'
2
- require 'ostruct'
3
-
4
- class Bar
5
- def greet
6
- return 'Hello, World!'
7
- end
8
- end
9
-
10
- class Foo < Bar
11
- include PatternMatching
12
-
13
- attr_accessor :name
14
-
15
- defn(:initialize) { @name = 'baz' }
16
- defn(:initialize, _) {|name| @name = name.to_s }
17
-
18
- defn(:greet, _) do |name|
19
- "Hello, #{name}!"
20
- end
21
-
22
- defn(:greet, :male, _) { |name|
23
- "Hello, Mr. #{name}!"
24
- }
25
- defn(:greet, :female, _) { |name|
26
- "Hello, Ms. #{name}!"
27
- }
28
- defn(:greet, nil, _) { |name|
29
- "Goodbye, #{name}!"
30
- }
31
- defn(:greet, _, _) { |_, name|
32
- "Hello, #{name}!"
33
- }
34
-
35
- defn(:hashable, _, {foo: :bar}, _) { |_, opts, _|
36
- :foo_bar
37
- }
38
- defn(:hashable, _, {foo: _, bar: _}, _) { |_, f, b, _|
39
- [f, b]
40
- }
41
- defn(:hashable, _, {foo: _}, _) { |_, f, _|
42
- f
43
- }
44
- defn(:hashable, _, {}, _) {
45
- :empty
46
- }
47
- defn(:hashable, _, _, _) { |_, _, _|
48
- :unbound
49
- }
50
-
51
- defn(:options, _) { |opts|
52
- opts
53
- }
54
-
55
- defn(:recurse) {
56
- 'w00t!'
57
- }
58
- defn(:recurse, :match) {
59
- recurse()
60
- }
61
- defn(:recurse, :super) {
62
- greet()
63
- }
64
- defn(:recurse, :instance) {
65
- @name
66
- }
67
- defn(:recurse, _) { |arg|
68
- arg
69
- }
70
-
71
- defn(:concat, Integer, Integer) { |first, second|
72
- first + second
73
- }
74
- defn(:concat, Integer, String) { |first, second|
75
- "#{first} #{second}"
76
- }
77
- defn(:concat, String, String) { |first, second|
78
- first + second
79
- }
80
- defn(:concat, Integer, UNBOUND) { |first, second|
81
- first + second.to_i
82
- }
83
-
84
- defn(:all, :one, ALL) { |args|
85
- args
86
- }
87
- defn(:all, :one, Integer, ALL) { |int, args|
88
- [int, args]
89
- }
90
- defn(:all, 1, _, ALL) { |var, args|
91
- [var, args]
92
- }
93
- defn(:all, ALL) { | args|
94
- args
95
- }
96
-
97
- defn(:old_enough, _){ true }.when{|x| x >= 16 }
98
- defn(:old_enough, _){ false }
99
-
100
- defn(:right_age, _) {
101
- true
102
- }.when{|x| x >= 16 && x <= 104 }
103
-
104
- defn(:right_age, _) {
105
- false
106
- }
107
-
108
- defn(:wrong_age, _) {
109
- true
110
- }.when{|x| x < 16 || x > 104 }
111
-
112
- defn(:wrong_age, _) {
113
- false
114
- }
115
- end
116
-
117
- class Baz < Foo
118
- def boom_boom_room
119
- 'zoom zoom zoom'
120
- end
121
- def who(first, last)
122
- [first, last].join(' ')
123
- end
124
- end
125
-
126
- class Fizzbuzz < Baz
127
- include PatternMatching
128
- defn(:who, Integer) { |count|
129
- (1..count).each.reduce(:+)
130
- }
131
- defn(:who) { 0 }
132
- end
133
-
134
- describe 'integration' do
135
-
136
- let(:name) { 'Pattern Matcher' }
137
- subject { Foo.new(name) }
138
-
139
- specify { subject.greet.should eq 'Hello, World!' }
140
-
141
- specify { subject.greet('Jerry').should eq 'Hello, Jerry!' }
142
-
143
- specify { subject.greet(:male, 'Jerry').should eq 'Hello, Mr. Jerry!' }
144
- specify { subject.greet(:female, 'Jeri').should eq 'Hello, Ms. Jeri!' }
145
- specify { subject.greet(:unknown, 'Jerry').should eq 'Hello, Jerry!' }
146
- specify { subject.greet(nil, 'Jerry').should eq 'Goodbye, Jerry!' }
147
- specify {
148
- lambda { Foo.new.greet(1,2,3,4,5,6,7) }.should raise_error(NoMethodError)
149
- }
150
-
151
- specify { subject.options(bar: :baz, one: 1, many: 2).should == {bar: :baz, one: 1, many: 2} }
152
-
153
- specify { subject.hashable(:male, {foo: :bar}, :female).should eq :foo_bar }
154
- specify { subject.hashable(:male, {foo: :baz}, :female).should eq :baz }
155
- specify { subject.hashable(:male, {foo: 1, bar: 2}, :female).should eq [1, 2] }
156
- specify { subject.hashable(:male, {foo: 1, baz: 2}, :female).should eq 1 }
157
- specify { subject.hashable(:male, {bar: :baz}, :female).should eq :unbound }
158
- specify { subject.hashable(:male, {}, :female).should eq :empty }
159
-
160
- specify { subject.recurse.should eq 'w00t!' }
161
- specify { subject.recurse(:match).should eq 'w00t!' }
162
- specify { subject.recurse(:super).should eq 'Hello, World!' }
163
- specify { subject.recurse(:instance).should eq name }
164
- specify { subject.recurse(:foo).should eq :foo }
165
-
166
- specify { subject.concat(1, 1).should eq 2 }
167
- specify { subject.concat(1, 'shoe').should eq '1 shoe' }
168
- specify { subject.concat('shoe', 'fly').should eq 'shoefly' }
169
- specify { subject.concat(1, 2.9).should eq 3 }
170
-
171
- specify { subject.all(:one, 'a', 'bee', :see).should == ['a', 'bee', :see] }
172
- specify { subject.all(:one, 1, 'bee', :see).should == [1, 'bee', :see] }
173
- specify { subject.all(1, 'a', 'bee', :see).should == ['a', ['bee', :see]] }
174
- specify { subject.all('a', 'bee', :see).should == ['a', 'bee', :see] }
175
- specify { lambda { subject.all }.should raise_error(NoMethodError) }
176
-
177
- specify { subject.old_enough(20).should be_true }
178
- specify { subject.old_enough(10).should be_false }
179
-
180
- specify { subject.right_age(20).should be_true }
181
- specify { subject.right_age(10).should be_false }
182
- specify { subject.right_age(110).should be_false }
183
-
184
- specify { subject.wrong_age(20).should be_false }
185
- specify { subject.wrong_age(10).should be_true }
186
- specify { subject.wrong_age(110).should be_true }
187
-
188
- context 'inheritance' do
189
-
190
- specify { Fizzbuzz.new.greet(:male, 'Jerry').should eq 'Hello, Mr. Jerry!' }
191
- specify { Fizzbuzz.new.greet(:female, 'Jeri').should eq 'Hello, Ms. Jeri!' }
192
- specify { Fizzbuzz.new.greet(:unknown, 'Jerry').should eq 'Hello, Jerry!' }
193
- specify { Fizzbuzz.new.greet(nil, 'Jerry').should eq 'Goodbye, Jerry!' }
194
-
195
- specify { Fizzbuzz.new.who(5).should eq 15 }
196
- specify { Fizzbuzz.new.who().should eq 0 }
197
- specify {
198
- lambda {
199
- Fizzbuzz.new.who('Jerry', 'secret middle name', "D'Antonio")
200
- }.should raise_error(NoMethodError)
201
- }
202
-
203
- specify { Fizzbuzz.new.boom_boom_room.should eq 'zoom zoom zoom' }
204
- end
205
- end
@@ -1,501 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Functional
4
-
5
- describe Platform do
6
-
7
- # ruby-2.0.0
8
- let(:mri_200) do
9
- {
10
- :MAJOR => '2',
11
- :MINOR => '0',
12
- :TEENY => '0',
13
- :PATCHLEVEL => '195',
14
- :ruby_install_name => 'ruby',
15
- :ruby_version => '2.0.0',
16
- :host_os => 'linux-gnu'
17
- }
18
- end
19
-
20
- # ruby-1.9.3 windows
21
- let(:mri_193_win) do
22
- {
23
- :MAJOR => '1',
24
- :MINOR => '9',
25
- :TEENY => '1',
26
- :PATCHLEVEL => '448',
27
- :ruby_install_name => 'ruby',
28
- :ruby_version => '1.9.1',
29
- :host_os => 'mingw32'
30
- }
31
- end
32
-
33
- # ruby-1.9.3 linux
34
- let(:mri_193) do
35
- {
36
- :MAJOR => '1',
37
- :MINOR => '9',
38
- :TEENY => '1',
39
- :PATCHLEVEL => '327',
40
- :ruby_install_name => 'ruby',
41
- :ruby_version => '1.9.1',
42
- :host_os => 'linux-gnu'
43
- }
44
- end
45
-
46
- # ruby-1.9.2
47
- let(:mri_192) do
48
- {
49
- :MAJOR => '1',
50
- :MINOR => '9',
51
- :TEENY => '1',
52
- :PATCHLEVEL => '320',
53
- :ruby_install_name => 'ruby',
54
- :ruby_version => '1.9.1',
55
- :host_os => 'linux-gnu'
56
- }
57
- end
58
-
59
- # ruby-1.8.7
60
- let(:mri_187) do
61
- {
62
- :MAJOR => '1',
63
- :ruby_version => '1.8',
64
- :PATCHLEVEL => '371',
65
- :MINOR => '8',
66
- :host_os => 'linux-gnu',
67
- :TEENY => '7',
68
- :ruby_install_name => 'ruby'
69
- }
70
- end
71
-
72
- # ruby-1.8.6
73
- let(:mri_186) do
74
- {
75
- :MAJOR => '1',
76
- :ruby_version => '1.8',
77
- :MINOR => '8',
78
- :host_os => 'linux-gnu',
79
- :ruby_install_name => 'ruby',
80
- :TEENY => '6'
81
- }
82
- end
83
-
84
- # ree-1.8.7-2012.02
85
- let(:ree_187) do
86
- {
87
- :MINOR => '8',
88
- :MAJOR => '1',
89
- :host_os => 'linux-gnu',
90
- :PATCHLEVEL => '358',
91
- :ruby_install_name => 'ruby',
92
- :TEENY => '7',
93
- :ruby_version => '1.8'
94
- }
95
- end
96
-
97
- # ree-1.8.7 on os x
98
- let(:ree_187_osx) do
99
- {
100
- :host_os => 'darwin11.4.2',
101
- :ruby_install_name => 'ruby',
102
- :MINOR => '8',
103
- :MAJOR => '1',
104
- :ruby_version => '1.8',
105
- :TEENY => '7',
106
- :PATCHLEVEL => '358'
107
- }
108
- end
109
-
110
- # rubinius-2.0.0.rc1 (rbx) 1.9 mode
111
- let(:rubinius_19) do
112
- {
113
- :ruby_install_name => 'rbx',
114
- :MAJOR => '1',
115
- :MINOR => '9',
116
- :TEENY => '3',
117
- :ruby_version => '1.9',
118
- :host_os => 'darwin11.4.2'
119
- }
120
- end
121
-
122
- # rubinius-2.0.0.rc1 (rbx) 1.8 mode
123
- let(:rubinius_18) do
124
- {
125
- :ruby_install_name => 'rbx',
126
- :host_os => 'darwin11.4.2',
127
- :ruby_version => '1.8',
128
- :TEENY => '7',
129
- :MAJOR => '1',
130
- :MINOR => '8'
131
- }
132
- end
133
-
134
- # jruby-1.7.0
135
- let(:jruby_170) do
136
- {
137
- :MAJOR => '1',
138
- :MINOR => '9',
139
- :TEENY => '3',
140
- :ruby_version => '1.9',
141
- :ruby_install_name => 'jruby',
142
- :host_os => 'linux'
143
- }
144
- end
145
-
146
- # jruby-1.7.0 on os x
147
- let(:jruby_170_osx) do
148
- {
149
- :MAJOR => '1',
150
- :MINOR => '9',
151
- :TEENY => '3',
152
- :ruby_version => '1.9',
153
- :ruby_install_name => 'jruby',
154
- :host_os => 'darwin'
155
- }
156
- end
157
-
158
- # jruby-1.6.8
159
- let(:jruby_168) do
160
- {
161
- :MAJOR => '1',
162
- :MINOR => '8',
163
- :TEENY => '7',
164
- :ruby_version => '1.8',
165
- :ruby_install_name => 'jruby',
166
- :host_os => 'linux'
167
- }
168
- end
169
-
170
- # jruby-1.6.7.2
171
- let(:jruby_1672) do
172
- {
173
- :MAJOR => '1',
174
- :MINOR => '8',
175
- :TEENY => '7',
176
- :ruby_version => '1.8',
177
- :ruby_install_name => 'jruby',
178
- :host_os => 'linux'
179
- }
180
- end
181
-
182
- # jruby-1.6.7
183
- let(:jruby_167) do
184
- {
185
- :MAJOR => '1',
186
- :MINOR => '8',
187
- :TEENY => '7',
188
- :ruby_version => '1.8',
189
- :ruby_install_name => 'jruby',
190
- :host_os => 'linux'
191
- }
192
- end
193
-
194
- def platform_for(config)
195
- return Platform.new(config[:ruby_version], config[:host_os],
196
- config[:ruby_install_name])
197
- end
198
-
199
- context 'operating system' do
200
-
201
- it 'properly detects Linux' do
202
- platform = platform_for(mri_193)
203
- platform.should be_linux
204
- platform.should_not be_windows
205
- platform.should_not be_osx
206
- end
207
-
208
- it 'properly detects Windows' do
209
- platform = platform_for(mri_193_win)
210
- platform.should_not be_linux
211
- platform.should be_windows
212
- platform.should_not be_osx
213
- end
214
-
215
- it 'properly detects OS X' do
216
- platform = platform_for(jruby_170_osx)
217
- platform.should_not be_linux
218
- platform.should_not be_windows
219
- platform.should be_osx
220
- end
221
- end
222
-
223
- context 'Ruby version' do
224
-
225
- it 'properly detects Rubinius (rbx) 1.8 mode (Linux)' do
226
- platform = platform_for(rubinius_18)
227
-
228
- platform.should be_ruby
229
- platform.should be_ruby_18
230
- platform.should_not be_ruby_19
231
- platform.should_not be_ruby_20
232
- platform.should_not be_mri
233
- platform.should_not be_mri_18
234
- platform.should_not be_mri_19
235
- platform.should_not be_mri_20
236
- platform.should be_rbx
237
- platform.should_not be_jruby
238
- platform.should_not be_mswin
239
- platform.should_not be_mingw
240
- platform.should_not be_mingw_18
241
- platform.should_not be_mingw_19
242
- platform.should_not be_mingw_20
243
- end
244
-
245
- it 'properly detects Rubinius (rbx) 1.9 mode (Linux)' do
246
- platform = platform_for(rubinius_19)
247
-
248
- platform.should be_ruby
249
- platform.should_not be_ruby_18
250
- platform.should be_ruby_19
251
- platform.should_not be_mri
252
- platform.should_not be_mri_18
253
- platform.should_not be_mri_19
254
- platform.should_not be_mri_20
255
- platform.should be_rbx
256
- platform.should_not be_jruby
257
- platform.should_not be_mswin
258
- platform.should_not be_mingw
259
- platform.should_not be_mingw_18
260
- platform.should_not be_mingw_19
261
- platform.should_not be_mingw_20
262
- end
263
-
264
- it 'properly detects JRuby 1.6.7 (Linux)' do
265
- platform = platform_for(jruby_167)
266
-
267
- platform.should_not be_ruby
268
- platform.should_not be_ruby_18
269
- platform.should_not be_ruby_19
270
- platform.should_not be_ruby_20
271
- platform.should_not be_mri
272
- platform.should_not be_mri_18
273
- platform.should_not be_mri_19
274
- platform.should_not be_mri_20
275
- platform.should_not be_rbx
276
- platform.should be_jruby
277
- platform.should_not be_mswin
278
- platform.should_not be_mingw
279
- platform.should_not be_mingw_18
280
- platform.should_not be_mingw_19
281
- platform.should_not be_mingw_20
282
- end
283
-
284
- it 'properly detects JRuby 1.6.7.2 (Linux)' do
285
- platform = platform_for(jruby_1672)
286
-
287
- platform.should_not be_ruby
288
- platform.should_not be_ruby_18
289
- platform.should_not be_ruby_19
290
- platform.should_not be_ruby_20
291
- platform.should_not be_mri
292
- platform.should_not be_mri_18
293
- platform.should_not be_mri_19
294
- platform.should_not be_mri_20
295
- platform.should_not be_rbx
296
- platform.should be_jruby
297
- platform.should_not be_mswin
298
- platform.should_not be_mingw
299
- platform.should_not be_mingw_18
300
- platform.should_not be_mingw_19
301
- platform.should_not be_mingw_20
302
- end
303
-
304
- it 'properly detects JRuby 1.6.8 (Linux)' do
305
- platform = platform_for(jruby_168)
306
-
307
- platform.should_not be_ruby
308
- platform.should_not be_ruby_18
309
- platform.should_not be_ruby_19
310
- platform.should_not be_ruby_20
311
- platform.should_not be_mri
312
- platform.should_not be_mri_18
313
- platform.should_not be_mri_19
314
- platform.should_not be_mri_20
315
- platform.should_not be_rbx
316
- platform.should be_jruby
317
- platform.should_not be_mswin
318
- platform.should_not be_mingw
319
- platform.should_not be_mingw_18
320
- platform.should_not be_mingw_19
321
- platform.should_not be_mingw_20
322
- end
323
-
324
- it 'properly detects JRuby 1.7.0 (Linux)' do
325
- platform = platform_for(jruby_170)
326
-
327
- platform.should_not be_ruby
328
- platform.should_not be_ruby_18
329
- platform.should_not be_ruby_19
330
- platform.should_not be_ruby_20
331
- platform.should_not be_mri
332
- platform.should_not be_mri_18
333
- platform.should_not be_mri_19
334
- platform.should_not be_mri_20
335
- platform.should_not be_rbx
336
- platform.should be_jruby
337
- platform.should_not be_mswin
338
- platform.should_not be_mingw
339
- platform.should_not be_mingw_18
340
- platform.should_not be_mingw_19
341
- platform.should_not be_mingw_20
342
- end
343
-
344
- it 'properly detects JRuby 1.7.0 (OS X)' do
345
- platform = platform_for(jruby_170_osx)
346
-
347
- platform.should_not be_ruby
348
- platform.should_not be_ruby_18
349
- platform.should_not be_ruby_19
350
- platform.should_not be_ruby_20
351
- platform.should_not be_mri
352
- platform.should_not be_mri_18
353
- platform.should_not be_mri_19
354
- platform.should_not be_mri_20
355
- platform.should_not be_rbx
356
- platform.should be_jruby
357
- platform.should_not be_mswin
358
- platform.should_not be_mingw
359
- platform.should_not be_mingw_18
360
- platform.should_not be_mingw_19
361
- platform.should_not be_mingw_20
362
- end
363
-
364
- it 'properly detects REE 1.8.7 (Linux)' do
365
- platform = platform_for(ree_187)
366
-
367
- platform.should be_ruby
368
- platform.should be_ruby_18
369
- platform.should_not be_ruby_19
370
- platform.should_not be_ruby_20
371
- platform.should be_mri
372
- platform.should be_mri_18
373
- platform.should_not be_mri_19
374
- platform.should_not be_mri_20
375
- platform.should_not be_rbx
376
- platform.should_not be_jruby
377
- platform.should_not be_mswin
378
- platform.should_not be_mingw
379
- platform.should_not be_mingw_18
380
- platform.should_not be_mingw_19
381
- platform.should_not be_mingw_20
382
- end
383
-
384
- it 'properly detects REE 1.8.7 (OS X)' do
385
- platform = platform_for(ree_187_osx)
386
-
387
- platform.should be_ruby
388
- platform.should be_ruby_18
389
- platform.should_not be_ruby_19
390
- platform.should_not be_ruby_20
391
- platform.should be_mri
392
- platform.should be_mri_18
393
- platform.should_not be_mri_19
394
- platform.should_not be_mri_20
395
- platform.should_not be_rbx
396
- platform.should_not be_jruby
397
- platform.should_not be_mswin
398
- platform.should_not be_mingw
399
- platform.should_not be_mingw_18
400
- platform.should_not be_mingw_19
401
- platform.should_not be_mingw_20
402
- end
403
-
404
- it 'properly detects MRI 1.8.6 (Linux)' do
405
- platform = platform_for(mri_186)
406
-
407
- platform.should be_ruby
408
- platform.should be_ruby_18
409
- platform.should_not be_ruby_19
410
- platform.should_not be_ruby_20
411
- platform.should be_mri
412
- platform.should be_mri_18
413
- platform.should_not be_mri_19
414
- platform.should_not be_mri_20
415
- platform.should_not be_rbx
416
- platform.should_not be_jruby
417
- platform.should_not be_mswin
418
- platform.should_not be_mingw
419
- platform.should_not be_mingw_18
420
- platform.should_not be_mingw_19
421
- platform.should_not be_mingw_20
422
- end
423
-
424
- it 'properly detects MRI 1.8.7 (Linux)' do
425
- platform = platform_for(mri_187)
426
-
427
- platform.should be_ruby
428
- platform.should be_ruby_18
429
- platform.should_not be_ruby_19
430
- platform.should_not be_ruby_20
431
- platform.should be_mri
432
- platform.should be_mri_18
433
- platform.should_not be_mri_19
434
- platform.should_not be_mri_20
435
- platform.should_not be_rbx
436
- platform.should_not be_jruby
437
- platform.should_not be_mswin
438
- platform.should_not be_mingw
439
- platform.should_not be_mingw_18
440
- platform.should_not be_mingw_19
441
- platform.should_not be_mingw_20
442
- end
443
-
444
- it 'properly detects MRI 1.9.2 (Linux)' do
445
- platform = platform_for(mri_192)
446
-
447
- platform.should be_ruby
448
- platform.should_not be_ruby_18
449
- platform.should be_ruby_19
450
- platform.should be_mri
451
- platform.should_not be_mri_18
452
- platform.should be_mri_19
453
- platform.should_not be_rbx
454
- platform.should_not be_jruby
455
- platform.should_not be_mswin
456
- platform.should_not be_mingw
457
- platform.should_not be_mingw_18
458
- platform.should_not be_mingw_19
459
- platform.should_not be_mingw_20
460
- end
461
-
462
- it 'properly detects MRI 1.9.3 (Linux)' do
463
- platform = platform_for(mri_193)
464
-
465
- platform.should be_ruby
466
- platform.should_not be_ruby_18
467
- platform.should be_ruby_19
468
- platform.should be_mri
469
- platform.should_not be_mri_18
470
- platform.should be_mri_19
471
- platform.should_not be_rbx
472
- platform.should_not be_jruby
473
- platform.should_not be_mswin
474
- platform.should_not be_mingw
475
- platform.should_not be_mingw_18
476
- platform.should_not be_mingw_19
477
- platform.should_not be_mingw_20
478
- end
479
-
480
- it 'properly detects MRI 2.0.0 (Linux)' do
481
- platform = platform_for(mri_200)
482
-
483
- platform.should be_ruby
484
- platform.should_not be_ruby_18
485
- platform.should_not be_ruby_19
486
- platform.should be_ruby_20
487
- platform.should be_mri
488
- platform.should_not be_mri_18
489
- platform.should_not be_mri_19
490
- platform.should be_mri_20
491
- platform.should_not be_rbx
492
- platform.should_not be_jruby
493
- platform.should_not be_mswin
494
- platform.should_not be_mingw
495
- platform.should_not be_mingw_18
496
- platform.should_not be_mingw_19
497
- platform.should_not be_mingw_20
498
- end
499
- end
500
- end
501
- end