option 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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
@@ -1,5 +1,8 @@
1
1
  language: ruby
2
+ before_install:
3
+ - gem install bundler
2
4
  rvm:
5
+ - 2.0.0
3
6
  - 1.9.3
4
7
  - 1.9.2
5
8
  - jruby-18mode
@@ -8,3 +11,4 @@ rvm:
8
11
  - rbx-19mode
9
12
  - 1.8.7
10
13
  - ree
14
+
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in option.gemspec
4
- gemspec
4
+ gemspec :path => "ci", :name => "option"
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. Commit your changes (`git commit -am 'Added some feature'`)
80
- 4. Push to the branch (`git push origin my-new-feature`)
81
- 5. Create new Pull Request
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
@@ -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
@@ -1,20 +1,21 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhyb2Iu
2
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhyb2Iu
3
3
  YXJlczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
4
- MB4XDTEzMDIwMTAzNTcxMloXDTE0MDIwMTAzNTcxMlowPzERMA8GA1UEAwwIcm9i
4
+ MB4XDTE0MDMwMzE1MzYyMloXDTE1MDMwMzE1MzYyMlowPzERMA8GA1UEAwwIcm9i
5
5
  LmFyZXMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
6
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlgyNRdkrEvWu5C30qR
7
- /fMzQxV/+3I7vzqzJQlmKz859Xh0x+D8cwCXo0O8V7xzm44+bYYfHO59dKdTAqYM
8
- LINg3k0wJ1fV03PwNHKdBb9mnoDDAjlYZUYImZnLQC8iyRQV+W4imFUp7JrgJlTW
9
- xft1owPEAtX9DKUH+ngmwrTOSv1gf9uNu5Fi7u73PAANKRWRoumOOC3jeI2EDTtR
10
- dpd3cHWb1zHD1cW3QPrbPk5G5noo4rI1G5+n/vwnp7QH4TPjiYSsTX74z+Rqr+QT
11
- Rzy1vKyvfQ2aNcCS0gXeY8xkKMYmHDubzBn4Y8mvCrfk0TEpSnJfbglcvQx05Mtg
12
- FbsCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUoBxN7R9quE/p75POJF6v
13
- TbUII2AwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQBFuziXzC3RR6H5
14
- J1F46+jJw+M8ZlbzLDA36v+vofzcyCQCBEtSf1IUZhhzSZYp/UGhwM4g8K75tLOr
15
- zaHptNmFwyrYgOR2rglNSTpYtRBLkxKQ9gi66JdRMdAk5SBCPbzjD53TrmecmqFO
16
- yOQNAekrOR4VLp40dQO0g+jtmAuxLcy8gMk03oWGf4oTNck4JUC8CqYGUazvzkhX
17
- cGo+ZOVsmxnUCThOtPObttMIwUf69cZZErpSrpIoEEz2RpFA2ofrzOIMmnEeLTQj
18
- UJzLyiAr8JeFN28mruuqc4qkDVKPpTtLPFOFes3rTEHB3hfb3p3s5y1oQu63oJnj
19
- R+t0YvcW
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-----
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Option
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -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.1.0
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
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURNakNDQWhxZ0F3SUJB
14
- Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREEvTVJFd0R3WURWUVFEREFoeWIy
15
- SXUKWVhKbGN6RVZNQk1HQ2dtU0pvbVQ4aXhrQVJrV0JXZHRZV2xzTVJNd0VR
16
- WUtDWkltaVpQeUxHUUJHUllEWTI5dApNQjRYRFRFek1ESXdNVEF6TlRjeE1s
17
- b1hEVEUwTURJd01UQXpOVGN4TWxvd1B6RVJNQThHQTFVRUF3d0ljbTlpCkxt
18
- RnlaWE14RlRBVEJnb0praWFKay9Jc1pBRVpGZ1ZuYldGcGJERVRNQkVHQ2dt
19
- U0pvbVQ4aXhrQVJrV0EyTnYKYlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFB
20
- RGdnRVBBRENDQVFvQ2dnRUJBT2xneU5SZGtyRXZXdTVDMzBxUgovZk16UXhW
21
- LyszSTd2enF6SlFsbUt6ODU5WGgweCtEOGN3Q1hvME84Vjd4em00NCtiWVlm
22
- SE81OWRLZFRBcVlNCkxJTmczazB3SjFmVjAzUHdOSEtkQmI5bW5vRERBamxZ
23
- WlVZSW1abkxRQzhpeVJRVitXNGltRlVwN0pyZ0psVFcKeGZ0MW93UEVBdFg5
24
- REtVSCtuZ213clRPU3YxZ2Y5dU51NUZpN3U3M1BBQU5LUldSb3VtT09DM2pl
25
- STJFRFR0UgpkcGQzY0hXYjF6SEQxY1czUVByYlBrNUc1bm9vNHJJMUc1K24v
26
- dnducDdRSDRUUGppWVNzVFg3NHorUnFyK1FUClJ6eTF2S3l2ZlEyYU5jQ1Mw
27
- Z1hlWTh4a0tNWW1IRHViekJuNFk4bXZDcmZrMFRFcFNuSmZiZ2xjdlF4MDVN
28
- dGcKRmJzQ0F3RUFBYU01TURjd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZn
29
- UVVvQnhON1I5cXVFL3A3NVBPSkY2dgpUYlVJSTJBd0N3WURWUjBQQkFRREFn
30
- U3dNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJGdXppWHpDM1JSNkg1Ckox
31
- RjQ2K2pKdytNOFpsYnpMREEzNnYrdm9memN5Q1FDQkV0U2YxSVVaaGh6U1pZ
32
- cC9VR2h3TTRnOEs3NXRMT3IKemFIcHRObUZ3eXJZZ09SMnJnbE5TVHBZdFJC
33
- TGt4S1E5Z2k2NkpkUk1kQWs1U0JDUGJ6akQ1M1RybWVjbXFGTwp5T1FOQWVr
34
- ck9SNFZMcDQwZFFPMGcranRtQXV4TGN5OGdNazAzb1dHZjRvVE5jazRKVUM4
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: 1.8.24
103
+ rubygems_version: 2.0.14
120
104
  signing_key:
121
- specification_version: 3
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