monad-maybe 0.8.1 → 0.9.0

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: 711b5f676d97b04b9a929f52a4b538b47e9a0f4c
4
- data.tar.gz: aa5c6a26e8d76ae71ac94116d7e24c30f58b05e4
3
+ metadata.gz: 6cb424b75bfc95f4cbf310c81e4856c84496466a
4
+ data.tar.gz: 910d72f9d700f125a7b7f284f4448d6c8dccb4db
5
5
  SHA512:
6
- metadata.gz: 160810dd5f538ca55768e5f6d7d925d546604a339636b398532f26280c9b0aad5d37d5880759df5f6ca08cd018397a12e5217e31477c92b954f6fe3c9bcee32d
7
- data.tar.gz: 5b919aea5a60ba2124e9acf81d77975654faeeb00c65fb12c11aac20b95d9aa29b2a10eaab9e4eef74a06a8e911e0e8dd77d22bde7c712b4fda6f7743534f352
6
+ metadata.gz: 7a3f329f7a1e1a1f24a3120673721ddc8fd410549c68abfe306f5b1771753f599c03005f2938407524db7118b02056c01d784bbda0d62e81405650c16b624d1e
7
+ data.tar.gz: ac4ea776251ffc0528a24c1653f17e3430bf462f02ccf038a57f4f96534aee2fd2d0d4357e182a0d2e37ae1f3f5a90ac0a933bc82e63abffcbb1e28f8278b675
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.9.0
@@ -36,12 +36,21 @@ module Monad
36
36
  def nothing?
37
37
  false
38
38
  end
39
+
40
+ def something?(&blk)
41
+ blk.call(self) if blk
42
+ true
43
+ end
39
44
  end
40
45
 
41
46
  class ::NilClass
42
47
  def maybe
43
48
  Nothing.instance.freeze
44
49
  end
50
+
51
+ def something?
52
+ false
53
+ end
45
54
  end
46
55
 
47
56
  def maybe(o)
@@ -21,6 +21,11 @@ module Monad
21
21
  def nothing?
22
22
  false
23
23
  end
24
+
25
+ def something?(&blk)
26
+ blk.call(value) if blk
27
+ true
28
+ end
24
29
 
25
30
  def just?
26
31
  true
@@ -14,6 +14,11 @@ module Monad
14
14
  def maybe?
15
15
  true
16
16
  end
17
+
18
+ def something?(&blk)
19
+ blk.call(select_just.value_map) if blk
20
+ true
21
+ end
17
22
 
18
23
  def <<(obj)
19
24
  @enum << obj if obj.just?
@@ -31,6 +31,7 @@ module Monad
31
31
  def just?
32
32
  false
33
33
  end
34
+ alias something? just?
34
35
 
35
36
  def unwrap(val)
36
37
  val
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "monad-maybe"
8
- s.version = "0.8.1"
8
+ s.version = "0.9.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Delon Newman"]
@@ -46,4 +46,37 @@ class MaybeTest < Test::Unit::TestCase
46
46
  assert_equal xs.count, ys.count
47
47
  end
48
48
  end
49
+
50
+ def test_something?
51
+ assert_nothing_raised do
52
+ nil.something? do
53
+ raise Exception, "This should not be called"
54
+ end
55
+
56
+ nothing.something? do
57
+ raise Exception, "This should not be called"
58
+ end
59
+ end
60
+
61
+ assert_equal false, nil.something?
62
+ assert_equal false, nothing.something?
63
+
64
+ 1.something? do |n|
65
+ assert_equal 1, n
66
+ end
67
+
68
+ assert 1.something?
69
+
70
+ 1.maybe.something? do |n|
71
+ assert_equal 1, n
72
+ end
73
+
74
+ assert 1.maybe.something?
75
+
76
+ (0..10).maybe_map { |n| n % 2 == 0 ? nil : n }.something? do |xs|
77
+ assert_equal (0..10).select { |n| n % 2 != 0 }, xs
78
+ end
79
+
80
+ assert (0..10).maybe_map { |n| n }.something?
81
+ end
49
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monad-maybe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delon Newman