or_else 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 620ca7c95c1fbc42f56933bf0c4e1d9955705eb4
4
- data.tar.gz: 8b1338aed7d6ee2b83f17f55723a953abaa95b58
3
+ metadata.gz: bf07bc7572d8426bf38cfae01f8bf72b5417615b
4
+ data.tar.gz: de6b49ca794aeb464eef63936f87d8caf58e01e6
5
5
  SHA512:
6
- metadata.gz: f902c20e8e58708e7374cd64c448c22185cf0c7be0b13d711ab83006ec926c8fe6b89dc963faa718783cac17fd159ca711aaceddf7aa1b3671940780d2f6bcbc
7
- data.tar.gz: a596e624abf88bccde7228e2cad3ce421a4130d360ec879db975f3192f29e7e84e07e8a0a1dd4f428828bec99c395ab8234f3d870b6e5c767a1e827f01b51c2a
6
+ metadata.gz: f62f50d00e59fbfe8bac96b6779a7ef6fd878bc64cb6f6b9fc1805f04fccfbbc16c940468d058b884a5cb6e0eed6445514a5d6707a6818a7f1119d0de23b227e
7
+ data.tar.gz: 99f8374eaaf14812ab8b04301c5d560dc4638073ee61c8ebacb07f2fb142def3ef3647a7b27028cee546f5c7c219264e45081f1f6bda8a5a73a6a639a0f9b340
data/lib/or_else/just.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  module OrElse
2
2
  class Just < Maybe
3
-
4
3
  def initialize(val)
5
4
  @value = val
6
5
  end
data/lib/or_else/maybe.rb CHANGED
@@ -12,3 +12,11 @@ class Object
12
12
  Maybe(self)
13
13
  end
14
14
  end
15
+
16
+ module OrElse
17
+ class Maybe
18
+ def self.sequence(array)
19
+ Maybe(array.map { |val| val.or_else { return Nothing } })
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module OrElse
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -14,5 +14,23 @@ module OrElse
14
14
  specify { expect(nil.maybe).to eq Nothing }
15
15
  specify { expect(1.maybe).to be_a(Just) }
16
16
  end
17
+
18
+ describe '.sequence' do
19
+ context 'with an array containing all Just' do
20
+ let(:array) { [Maybe(1), Maybe(2), Maybe(3)] }
21
+
22
+ it 'returns a Just of an array of the values' do
23
+ expect(Maybe.sequence(array).or_else {}).to eq [1, 2, 3]
24
+ end
25
+ end
26
+
27
+ context 'with an array containing a Nothing' do
28
+ let(:array) { [Maybe(1), Maybe(nil), Maybe(3)] }
29
+
30
+ it 'returns a Nothing' do
31
+ expect(Maybe.sequence(array)).to eq Nothing
32
+ end
33
+ end
34
+ end
17
35
  end
18
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: or_else
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - alexpeachey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-27 00:00:00.000000000 Z
11
+ date: 2015-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler