totally_lazy 0.1.20 → 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +8 -8
  2. data/lib/option.rb +12 -4
  3. data/spec/option_spec.rb +6 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjVkZmRmNmMyNzlkYmY4ODlhYjhlMzFlN2FlMDQ0ZjIyOWE3M2ZiNg==
4
+ Yzk4ZDgwZmExMjEyMzgzMjg3NWRjZTc2ZjA2NmU2MTcwMjhkMDQwMA==
5
5
  data.tar.gz: !binary |-
6
- OWI2NWQzMmFiODVjZjg1ZGI0NGQzN2JhNmY4MWU5MWQ3Y2NkYjdjYg==
6
+ ZDk3Y2YwOTA4ZTE2ZDVjMThjZjU2YTE0NjFmYTVjZjBkZjM3NjllZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MGI4MzBiOTlmZWEyYjgzZTBhODgwYTMyNzFjMTJiMzQyY2M2ZmJmNDFhNGI0
10
- ODAyYzIyMjhkMjRmNTBjZmY0N2IyNWRlYTFjM2M3NDhmODkwN2IyMDI2NDJm
11
- YmE5NWM4MDdkNzY5NGE4YTNlYTI5ZDUwNTE3Mjg3ZTgwYzQ1NGI=
9
+ N2Y3ODVkMDgyMWNhZjBjOTlkZjc2ZGNmMWQ2MDMyMDQ1YThkNjMzNzNlZThh
10
+ MTAyZTYzMDFmODdkMGZhNzI2OTNkMmU1ZTI1MjQ1ZmU5NjFkYWJjYTRkOGNl
11
+ MGY3NzUyOTk2NTVhOWRkZjIyMDFmNzE0ZjM1MWE0OWFjMWE5ZDU=
12
12
  data.tar.gz: !binary |-
13
- ZTQwNmZhZTRhZTliOTRmZjJkMjkxNTE4ZjQ5NGVjNWZlMzFiYTcyZWUxYzg5
14
- OWM1MTM5NTkxMTk0NjUwNWE1YThiOWY1OTI2OWRiNjQ3YzA3MTRkN2JhMzZi
15
- NzkyM2RkYTcyYmE2MWJiY2U2Njc4NjJjZWExNWZjMjM0MzcyYzQ=
13
+ Yzg2MDY4OGI0MDNmYzU1MzU1YzE1MjNhYjdkYTI4YzdiZDBiNzlhN2NiMDI3
14
+ ZDZkZTJkZWI3YjQ1M2EyMmY5MWM3NzY1ZTUzYzYxZTdhMWVhMGI5MjgyYjA0
15
+ ODU2Yjk2ZTgyOTVkOGNlNzFmOTRjYTczYWJjYzRjZmE1M2MyMWQ=
data/lib/option.rb CHANGED
@@ -26,6 +26,10 @@ module Option
26
26
  exists?(block_given? ? ->(value) { block_pred.call(value) } : fn_pred)
27
27
  end
28
28
 
29
+ def flatten
30
+ flat_map(identity)
31
+ end
32
+
29
33
  class Some < Option
30
34
  include Comparable
31
35
  attr_reader :value
@@ -60,14 +64,14 @@ module Option
60
64
 
61
65
  alias fold_left fold
62
66
 
63
- def flatten
64
- flat_map(identity)
65
- end
66
-
67
67
  def is_empty?
68
68
  false
69
69
  end
70
70
 
71
+ def size
72
+ 1
73
+ end
74
+
71
75
  def enumerator
72
76
  Enumerator.new { |y|
73
77
  y << @value
@@ -115,6 +119,10 @@ module Option
115
119
 
116
120
  alias fold_left fold
117
121
 
122
+ def size
123
+ 0
124
+ end
125
+
118
126
  def enumerator
119
127
  Enumerator.new { |y|
120
128
  raise StopIteration.new
data/spec/option_spec.rb CHANGED
@@ -55,6 +55,12 @@ describe 'Option' do
55
55
  it 'should support flatten' do
56
56
  expect(some(some(1)).flatten).to eq(some(1))
57
57
  expect(some(none).flatten).to eq(none)
58
+ expect(none.flatten).to eq(none)
59
+ end
60
+
61
+ it 'should support size' do
62
+ expect(some(1).size).to eq(1)
63
+ expect(none.size).to eq(0)
58
64
  end
59
65
 
60
66
  it 'should raise exception if you try to use both lambda and block' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: totally_lazy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raymond Barlow