option 0.6.0 → 1.0.0

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.
data/lib/option.rb CHANGED
@@ -72,6 +72,10 @@ class SomeClass < OptionClass
72
72
  !! blk.call(get)
73
73
  end
74
74
 
75
+ def include?(value)
76
+ get == value
77
+ end
78
+
75
79
  def filter(&blk)
76
80
  exists?(&blk) ? self : None
77
81
  end
@@ -139,6 +143,10 @@ class NoneClass < OptionClass
139
143
  false
140
144
  end
141
145
 
146
+ def include?(value)
147
+ false
148
+ end
149
+
142
150
  def filter(&blk)
143
151
  self
144
152
  end
@@ -1,3 +1,3 @@
1
1
  module Option
2
- VERSION = "0.6.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/spec/option_spec.rb CHANGED
@@ -45,6 +45,10 @@ describe NoneClass do
45
45
  None.exists? {}.must_equal(false)
46
46
  end
47
47
 
48
+ it "#include? should return false" do
49
+ None.include?(value).must_equal(false)
50
+ end
51
+
48
52
  it "#fold should invoke the default proc" do
49
53
  None.fold(proc { value }) { |v| v.to_f }.must_equal(value)
50
54
  end
@@ -144,6 +148,14 @@ describe SomeClass do
144
148
  Some(value).exists? { |v| v % 2 != 0 }.must_equal(false)
145
149
  end
146
150
 
151
+ it "#include? should return true when the passed value and the boxed value are the same" do
152
+ Some(value).include?(value).must_equal(true)
153
+ end
154
+
155
+ it "#include? should return false when the passed value and the boxed value are not the same" do
156
+ Some(value).include?(value + 1).must_equal(false)
157
+ end
158
+
147
159
  it "#fold should map the proc over the value and return it" do
148
160
  Some(value).fold(proc { value * 2 }) { |v| v * 3 }.must_equal(36)
149
161
  end
@@ -171,7 +183,9 @@ describe SomeClass do
171
183
  end
172
184
 
173
185
  it "#flatten" do
174
- Some(Some(Some(value))).flatten.must_be_some(value)
186
+ inner_value = Some(Some(Some(value))).flatten
187
+ inner_value.must_be_some(value)
188
+ inner_value.or_nil.must_equal(value)
175
189
  end
176
190
  end
177
191
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: option
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-27 00:00:00.000000000 Z
12
+ date: 2012-12-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -76,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  segments:
78
78
  - 0
79
- hash: 3506142581205413460
79
+ hash: 2753894737332832695
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  segments:
87
87
  - 0
88
- hash: 3506142581205413460
88
+ hash: 2753894737332832695
89
89
  requirements: []
90
90
  rubyforge_project:
91
91
  rubygems_version: 1.8.24