or_else 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea1f770c7189e52acfa57c07f7e4a007f5431391
4
- data.tar.gz: 958ee299da814ce469991f9b9766526aa701a944
3
+ metadata.gz: 620ca7c95c1fbc42f56933bf0c4e1d9955705eb4
4
+ data.tar.gz: 8b1338aed7d6ee2b83f17f55723a953abaa95b58
5
5
  SHA512:
6
- metadata.gz: 05725eadd1e158819d61be707034c36f60ba267ab6def5c07f2d3ed39128b96d57bfd3b1b1be5924e618cf9775c4f1a6a978c85b8e365f1a07c3fdfc4b2843cd
7
- data.tar.gz: 13854e54283bb8cd998b7788b3b75d8442ba0a07ec58914fed0b83f18c575ed753d0f43a5851f626ab2d9d88dda9d874cc2779146bf01d22b36a82fd501fa11a
6
+ metadata.gz: f902c20e8e58708e7374cd64c448c22185cf0c7be0b13d711ab83006ec926c8fe6b89dc963faa718783cac17fd159ca711aaceddf7aa1b3671940780d2f6bcbc
7
+ data.tar.gz: a596e624abf88bccde7228e2cad3ce421a4130d360ec879db975f3192f29e7e84e07e8a0a1dd4f428828bec99c395ab8234f3d870b6e5c767a1e827f01b51c2a
data/lib/or_else/just.rb CHANGED
@@ -13,6 +13,10 @@ module OrElse
13
13
  Maybe(yield value)
14
14
  end
15
15
 
16
+ def filter
17
+ (yield value) ? self : Nothing
18
+ end
19
+
16
20
  def empty?
17
21
  false
18
22
  end
@@ -12,6 +12,10 @@ module OrElse
12
12
  Nothing
13
13
  end
14
14
 
15
+ def filter
16
+ Nothing
17
+ end
18
+
15
19
  def empty?
16
20
  true
17
21
  end
@@ -1,3 +1,3 @@
1
1
  module OrElse
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
@@ -60,6 +60,24 @@ module OrElse
60
60
  end
61
61
  end
62
62
 
63
+ describe '#filter' do
64
+ let(:val) { 1 }
65
+
66
+ specify { expect { |b| just.filter(&b) }.to yield_with_args(val) }
67
+
68
+ context 'when the predicate returns true' do
69
+ it 'returns the Just intact' do
70
+ expect(just.filter {|j| j == 1}).to eq just
71
+ end
72
+ end
73
+
74
+ context 'when the predicate returns false' do
75
+ it 'returns Nothing' do
76
+ expect(just.filter {|j| j != 1}).to eq Nothing
77
+ end
78
+ end
79
+ end
80
+
63
81
  describe '#empty?' do
64
82
  let(:val) { 1 }
65
83
 
@@ -16,6 +16,10 @@ module OrElse
16
16
  specify { expect(nothing.flat_map).to eq Nothing }
17
17
  end
18
18
 
19
+ describe '#filter' do
20
+ specify { expect(nothing.filter).to eq Nothing }
21
+ end
22
+
19
23
  describe '#empty?' do
20
24
  specify { expect(nothing.empty?).to be true }
21
25
  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.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - alexpeachey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-25 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  version: '0'
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.2.2
99
+ rubygems_version: 2.4.5
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: A simple Maybe/Option implementation.