option 1.1.0 → 1.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +4 -0
- data/Gemfile +2 -2
- data/README.md +4 -3
- data/ci/option.gemspec +20 -0
- data/gem-public_cert.pem +17 -16
- data/lib/option.rb +8 -1
- data/lib/option/version.rb +1 -1
- data/spec/option_spec.rb +17 -0
- metadata +30 -46
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3dd34fb171dfcc1862b66d435d6f8d3b6c1d143e
|
4
|
+
data.tar.gz: ebf4273da8e4e9d2a30de1408dd87e7fe7ea181f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f07ca0002272a113c26e4498d252eb9ae751bf51d9c44b9d78d63cfca91d9c4d98b5d17a0361021e959195ae77b679022bf57d867c52927a887215705029d711
|
7
|
+
data.tar.gz: 30512e4b6f843b62e74cecf9a708591dc25705b39a4f15086f74174ec65964df8c4b31d501b653b0b91f490925cf355f042f29e2c1090faf74f0c3f097ac156f
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
���=����ӕ$N�7dR���I��l�DI-jG(6�!$�O�d���]�`��o?*��avK�T�~}�)]�픗��Ϝ��S�<���"�gW�5����Yzp�>�;_v ��u��k�v��v�`Pf�>8�=�?�<��'dFLDz������(]�hF���F���
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -76,6 +76,7 @@ end
|
|
76
76
|
|
77
77
|
1. Fork it
|
78
78
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
79
|
-
3.
|
80
|
-
4.
|
81
|
-
5.
|
79
|
+
3. Implement your feature. Patches not considered without accompanying tests.
|
80
|
+
4. Commit your changes (`git commit -am 'Added some feature'`)
|
81
|
+
5. Push to the branch (`git push origin my-new-feature`)
|
82
|
+
6. Create new Pull Request
|
data/ci/option.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../../lib/option/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Rob Ares"]
|
6
|
+
gem.email = ["rob.ares@gmail.com"]
|
7
|
+
gem.description = %q{Ruby port of Scala's Option Monad}
|
8
|
+
gem.summary = %q{Option attempts to be faithful to the useful parts of the scala api. We lose the type safety but still is quite useful when dealing with optional values.}
|
9
|
+
gem.homepage = "http://www.github.com/rares/option"
|
10
|
+
|
11
|
+
gem.files = `git ls-files`.split($\)
|
12
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
13
|
+
gem.test_files = gem.files.grep(%r{^(spec)/})
|
14
|
+
gem.name = "option"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = Option::VERSION
|
17
|
+
|
18
|
+
gem.add_development_dependency "rake", "= 0.9.2.2"
|
19
|
+
gem.add_development_dependency "minitest", "= 3.4.0"
|
20
|
+
end
|
data/gem-public_cert.pem
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhyb2Iu
|
3
3
|
YXJlczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
4
|
-
|
4
|
+
MB4XDTE0MDMwMzE1MzYyMloXDTE1MDMwMzE1MzYyMlowPzERMA8GA1UEAwwIcm9i
|
5
5
|
LmFyZXMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
6
|
+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALbltpKu3b5+nvN46Eew
|
7
|
+
IDzCxoi9wbrbt2I9zsuF0i6BxH8It5ce+4dGHpzUTK7Kw6HHesUUL2xePE7aaf4D
|
8
|
+
SfYOLqE/qVam/JqnRBHNWvBBZl/qXtcm4TS8HpO1EXaQZ8uubYnaAKF6Drgv3eUq
|
9
|
+
Y/GZ9XwyVSeRJDKDtjrWLhwi+SJENbWbUIu2HelNCoscQmza9rGdciVz65IDKWxO
|
10
|
+
vA7kzCVhykGxCHb/K2ICslo4+49+zB7owtvrrUWN/tuPX5CkLwNG42B3zGED+dgI
|
11
|
+
Jpm12B3DuTrSn2sd1brj+PiqmR9no1fPDKPLZ9IoOZsL+gUSo2zyCciKSAFmIhUz
|
12
|
+
agMCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFPRT
|
13
|
+
NwXu52FT6zVrl9P0Ils7MbCOMB0GA1UdEQQWMBSBEnJvYi5hcmVzQGdtYWlsLmNv
|
14
|
+
bTAdBgNVHRIEFjAUgRJyb2IuYXJlc0BnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
|
15
|
+
ggEBAHlZQvEnbCVAM+peq/BDA/l4Kxzo7Pf/k1hm76P5xwThW5DDsnA0TN/tj5zN
|
16
|
+
vagQHqC1rjSUyZdpsmirMATm4DpiwyIwxrSxzLHO4kSJNsX3hB9wcSdeiVc7gH1a
|
17
|
+
2rCnN1ZcvSM1lcVkRW3BX4ycyl86MkvHrgP9ytdA1tZgHQM30ZAw6h86si4TOMwJ
|
18
|
+
OIuMBzMI/Ssl3C8DJlN6UlkytPjppqD/3qukepuVOm0gbKqAOlGbDEK/FfSzV0Mr
|
19
|
+
77c8ApML1B7wubSs7fykaPuXZX4VL2Gsus1znAJtqiIpuGw3cupy9mApeesCI6kO
|
20
|
+
290ocpWJbAZG98uB33L0VfcVIGs=
|
20
21
|
-----END CERTIFICATE-----
|
data/lib/option.rb
CHANGED
@@ -10,7 +10,6 @@ class OptionClass
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
13
|
private
|
15
14
|
|
16
15
|
def assert_option(result)
|
@@ -96,6 +95,10 @@ class SomeClass < OptionClass
|
|
96
95
|
else self
|
97
96
|
end
|
98
97
|
end
|
98
|
+
|
99
|
+
def error(*argv)
|
100
|
+
self
|
101
|
+
end
|
99
102
|
end
|
100
103
|
|
101
104
|
class NoneClass < OptionClass
|
@@ -171,6 +174,10 @@ class NoneClass < OptionClass
|
|
171
174
|
def flatten
|
172
175
|
self
|
173
176
|
end
|
177
|
+
|
178
|
+
def error(*argv)
|
179
|
+
argv.empty? ? raise : raise(*argv)
|
180
|
+
end
|
174
181
|
end
|
175
182
|
|
176
183
|
None = NoneClass.new
|
data/lib/option/version.rb
CHANGED
data/spec/option_spec.rb
CHANGED
@@ -90,6 +90,18 @@ describe NoneClass do
|
|
90
90
|
it "#flatten should return itself" do
|
91
91
|
None.flatten.must_be_none
|
92
92
|
end
|
93
|
+
|
94
|
+
it "#error should raise a RuntimeError with the given message" do
|
95
|
+
lambda { None.error("error") }.must_raise RuntimeError, "error"
|
96
|
+
end
|
97
|
+
|
98
|
+
it "#error should raise the error passed to it" do
|
99
|
+
-> { None.error(ArgumentError.new("name")) }.must_raise ArgumentError, "name"
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should assemble an Error from the arguments passed in" do
|
103
|
+
-> { None.error(StandardError, "this is a problem") }.must_raise StandardError, "this is a problem"
|
104
|
+
end
|
93
105
|
end
|
94
106
|
|
95
107
|
describe SomeClass do
|
@@ -195,6 +207,11 @@ describe SomeClass do
|
|
195
207
|
inner_value.must_be_some(value)
|
196
208
|
inner_value.or_nil.must_equal(value)
|
197
209
|
end
|
210
|
+
|
211
|
+
it "#error should return the Some" do
|
212
|
+
value = !!(Some(value).error("error") rescue false)
|
213
|
+
value.must_equal true
|
214
|
+
end
|
198
215
|
end
|
199
216
|
|
200
217
|
describe OptionClass do
|
metadata
CHANGED
@@ -1,47 +1,40 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: option
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Rob Ares
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain:
|
12
|
-
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
Q3FZR1VhenZ6a2hYCmNHbytaT1ZzbXhuVUNUaE90UE9idHRNSXdVZjY5Y1pa
|
36
|
-
RXJwU3JwSW9FRXoyUnBGQTJvZnJ6T0lNbW5FZUxUUWoKVUp6THlpQXI4SmVG
|
37
|
-
TjI4bXJ1dXFjNHFrRFZLUHBUdExQRk9GZXMzclRFSEIzaGZiM3AzczV5MW9R
|
38
|
-
dTYzb0puagpSK3QwWXZjVwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
39
|
-
date: 2013-02-16 00:00:00.000000000 Z
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhyb2Iu
|
14
|
+
YXJlczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
15
|
+
MB4XDTE0MDMwMzE1MzYyMloXDTE1MDMwMzE1MzYyMlowPzERMA8GA1UEAwwIcm9i
|
16
|
+
LmFyZXMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
17
|
+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALbltpKu3b5+nvN46Eew
|
18
|
+
IDzCxoi9wbrbt2I9zsuF0i6BxH8It5ce+4dGHpzUTK7Kw6HHesUUL2xePE7aaf4D
|
19
|
+
SfYOLqE/qVam/JqnRBHNWvBBZl/qXtcm4TS8HpO1EXaQZ8uubYnaAKF6Drgv3eUq
|
20
|
+
Y/GZ9XwyVSeRJDKDtjrWLhwi+SJENbWbUIu2HelNCoscQmza9rGdciVz65IDKWxO
|
21
|
+
vA7kzCVhykGxCHb/K2ICslo4+49+zB7owtvrrUWN/tuPX5CkLwNG42B3zGED+dgI
|
22
|
+
Jpm12B3DuTrSn2sd1brj+PiqmR9no1fPDKPLZ9IoOZsL+gUSo2zyCciKSAFmIhUz
|
23
|
+
agMCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFPRT
|
24
|
+
NwXu52FT6zVrl9P0Ils7MbCOMB0GA1UdEQQWMBSBEnJvYi5hcmVzQGdtYWlsLmNv
|
25
|
+
bTAdBgNVHRIEFjAUgRJyb2IuYXJlc0BnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
|
26
|
+
ggEBAHlZQvEnbCVAM+peq/BDA/l4Kxzo7Pf/k1hm76P5xwThW5DDsnA0TN/tj5zN
|
27
|
+
vagQHqC1rjSUyZdpsmirMATm4DpiwyIwxrSxzLHO4kSJNsX3hB9wcSdeiVc7gH1a
|
28
|
+
2rCnN1ZcvSM1lcVkRW3BX4ycyl86MkvHrgP9ytdA1tZgHQM30ZAw6h86si4TOMwJ
|
29
|
+
OIuMBzMI/Ssl3C8DJlN6UlkytPjppqD/3qukepuVOm0gbKqAOlGbDEK/FfSzV0Mr
|
30
|
+
77c8ApML1B7wubSs7fykaPuXZX4VL2Gsus1znAJtqiIpuGw3cupy9mApeesCI6kO
|
31
|
+
290ocpWJbAZG98uB33L0VfcVIGs=
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
40
34
|
dependencies:
|
41
35
|
- !ruby/object:Gem::Dependency
|
42
36
|
name: rake
|
43
37
|
requirement: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
38
|
requirements:
|
46
39
|
- - '='
|
47
40
|
- !ruby/object:Gem::Version
|
@@ -49,7 +42,6 @@ dependencies:
|
|
49
42
|
type: :development
|
50
43
|
prerelease: false
|
51
44
|
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
45
|
requirements:
|
54
46
|
- - '='
|
55
47
|
- !ruby/object:Gem::Version
|
@@ -57,7 +49,6 @@ dependencies:
|
|
57
49
|
- !ruby/object:Gem::Dependency
|
58
50
|
name: minitest
|
59
51
|
requirement: !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
61
52
|
requirements:
|
62
53
|
- - '='
|
63
54
|
- !ruby/object:Gem::Version
|
@@ -65,7 +56,6 @@ dependencies:
|
|
65
56
|
type: :development
|
66
57
|
prerelease: false
|
67
58
|
version_requirements: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
59
|
requirements:
|
70
60
|
- - '='
|
71
61
|
- !ruby/object:Gem::Version
|
@@ -83,6 +73,7 @@ files:
|
|
83
73
|
- LICENSE
|
84
74
|
- README.md
|
85
75
|
- Rakefile
|
76
|
+
- ci/option.gemspec
|
86
77
|
- gem-public_cert.pem
|
87
78
|
- lib/option.rb
|
88
79
|
- lib/option/version.rb
|
@@ -92,33 +83,26 @@ files:
|
|
92
83
|
- spec/spec_helper.rb
|
93
84
|
homepage: http://www.github.com/rares/option
|
94
85
|
licenses: []
|
86
|
+
metadata: {}
|
95
87
|
post_install_message:
|
96
88
|
rdoc_options: []
|
97
89
|
require_paths:
|
98
90
|
- lib
|
99
91
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
92
|
requirements:
|
102
|
-
- -
|
93
|
+
- - '>='
|
103
94
|
- !ruby/object:Gem::Version
|
104
95
|
version: '0'
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
hash: -4306780363685144709
|
108
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
97
|
requirements:
|
111
|
-
- -
|
98
|
+
- - '>='
|
112
99
|
- !ruby/object:Gem::Version
|
113
100
|
version: '0'
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
hash: -4306780363685144709
|
117
101
|
requirements: []
|
118
102
|
rubyforge_project:
|
119
|
-
rubygems_version:
|
103
|
+
rubygems_version: 2.0.14
|
120
104
|
signing_key:
|
121
|
-
specification_version:
|
105
|
+
specification_version: 4
|
122
106
|
summary: Option attempts to be faithful to the useful parts of the scala api. We lose
|
123
107
|
the type safety but still is quite useful when dealing with optional values.
|
124
108
|
test_files:
|
metadata.gz.sig
CHANGED
Binary file
|