or_else 0.0.2 → 0.0.3
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 +4 -4
- data/README.md +12 -6
- data/lib/or_else/just.rb +1 -1
- data/lib/or_else/version.rb +1 -1
- data/spec/or_else/just_spec.rb +12 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 909970b9f0b817e9663f287b9aa0d80a2c7d4cda
|
4
|
+
data.tar.gz: 5d4e9eba25df54eb18c26a2bd6231ce83222709c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1963215cf7c74943f5d0fbd5a68bc67d20a397dd3a7e1a8f0b5d269d6b407b6c25d2a9f046951ab6078e16d7e2a740381a29cd880d25d292a0fd1c02646ab5ad
|
7
|
+
data.tar.gz: b1799d401e976b8211648390ec42733d4250c531af2cbd9720513faeedb76344701e4425837883406441fc297cf7f13b12542b72b1dda05ed08427c8cc5fdb7b
|
data/README.md
CHANGED
@@ -19,21 +19,27 @@ Or install it yourself as:
|
|
19
19
|
## Usage
|
20
20
|
|
21
21
|
```ruby
|
22
|
-
value = Maybe(nil) # =>
|
22
|
+
value = Maybe(nil) # => Nothing
|
23
23
|
value.empty? # => true
|
24
24
|
value.nil? # => true
|
25
25
|
value.exists? # => false
|
26
|
-
value.map { |v| v } # =>
|
27
|
-
value.flat_map { |v| v } # =>
|
26
|
+
value.map { |v| v } # => Nothing (Block is ignored)
|
27
|
+
value.flat_map { |v| Maybe(v) } # => Nothing (Block is ignored)
|
28
28
|
value.or_else { 'foo' } # => 'foo'
|
29
29
|
|
30
30
|
value = Maybe('value') # => <OrElse::Just>
|
31
31
|
value.empty? # => false
|
32
32
|
value.nil? # => false
|
33
33
|
value.exists? # => true
|
34
|
-
value.map { |v| v } # =>
|
35
|
-
value.flat_map { |v| v } # =>
|
36
|
-
value.or_else { 'foo' } # => 'value'
|
34
|
+
value.map { |v| v } # => <OrElse::Just> (Block is yielded the bare value and the block is wrapped in a Maybe)
|
35
|
+
value.flat_map { |v| Maybe(v) } # => <OrElse::Just> (Block is yielded the bare value)
|
36
|
+
value.or_else { 'foo' } # => 'value' (Block is ignored)
|
37
|
+
```
|
38
|
+
|
39
|
+
Real life example:
|
40
|
+
|
41
|
+
```
|
42
|
+
comment = Maybe(post.comments.first).or_else { post.comments.build }
|
37
43
|
```
|
38
44
|
|
39
45
|
## Contributing
|
data/lib/or_else/just.rb
CHANGED
data/lib/or_else/version.rb
CHANGED
data/spec/or_else/just_spec.rb
CHANGED
@@ -26,20 +26,24 @@ module OrElse
|
|
26
26
|
context 'when initialized with 1' do
|
27
27
|
let(:val) { 1 }
|
28
28
|
|
29
|
-
specify { expect { |b| just.map(&b) }.to yield_with_args(
|
29
|
+
specify { expect { |b| just.map(&b) }.to yield_with_args(val) }
|
30
30
|
|
31
|
-
it 'yields
|
32
|
-
just.map { |j|
|
31
|
+
it 'yields the value 1 and wraps the block in a Maybe' do
|
32
|
+
expect(just.map { |j| j }.value).to eq val
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'yields the value 1 and is Nothing when the block evaluates to nil' do
|
36
|
+
expect(just.map { |j| nil }).to eq Nothing
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
36
40
|
context 'when initialized with "foo"' do
|
37
41
|
let(:val) { 'foo' }
|
38
42
|
|
39
|
-
specify { expect { |b| just.map(&b) }.to yield_with_args(
|
43
|
+
specify { expect { |b| just.map(&b) }.to yield_with_args(val) }
|
40
44
|
|
41
|
-
it 'yields
|
42
|
-
just.map { |j|
|
45
|
+
it 'yields the value "foo" and wraps the block in a Maybe' do
|
46
|
+
expect(just.map { |j| j }.value).to eq val
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
@@ -48,13 +52,13 @@ module OrElse
|
|
48
52
|
context 'when initialized with 1' do
|
49
53
|
let(:val) { 1 }
|
50
54
|
|
51
|
-
specify { expect { |b| just.flat_map(&b) }.to yield_with_args(
|
55
|
+
specify { expect { |b| just.flat_map(&b) }.to yield_with_args(val) }
|
52
56
|
end
|
53
57
|
|
54
58
|
context 'when initialized with "foo"' do
|
55
59
|
let(:val) { 'foo' }
|
56
60
|
|
57
|
-
specify { expect { |b| just.flat_map(&b) }.to yield_with_args(
|
61
|
+
specify { expect { |b| just.flat_map(&b) }.to yield_with_args(val) }
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
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.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alexpeachey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|