monad-maybe 0.9.0 → 0.9.1

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: 6cb424b75bfc95f4cbf310c81e4856c84496466a
4
- data.tar.gz: 910d72f9d700f125a7b7f284f4448d6c8dccb4db
3
+ metadata.gz: 115ca1c42c927a7d5ae489333dce07dbf1090e18
4
+ data.tar.gz: 881609187366be6aa31e0c2555ccbf92f9fe8cdc
5
5
  SHA512:
6
- metadata.gz: 7a3f329f7a1e1a1f24a3120673721ddc8fd410549c68abfe306f5b1771753f599c03005f2938407524db7118b02056c01d784bbda0d62e81405650c16b624d1e
7
- data.tar.gz: ac4ea776251ffc0528a24c1653f17e3430bf462f02ccf038a57f4f96534aee2fd2d0d4357e182a0d2e37ae1f3f5a90ac0a933bc82e63abffcbb1e28f8278b675
6
+ metadata.gz: 75a253437966cda5b6c41ae4f34c85b13fd84d66bc9deba9bd7ca11aaed69a73a72b50761d991efb17ad31719624043ac52152df834b54ea8a25c3decfcc90ba
7
+ data.tar.gz: 5ea2adcb6c3ee400772cb9feef134bd4693697c99f2a453443eb2caa7257b90649bebe9a19c617ebc2f2de812acf24c8ab9757244a9e01789087f864bbda52b3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.1
data/lib/monad/maybe.rb CHANGED
@@ -21,8 +21,12 @@ module Monad
21
21
  class ::Range; include Enumerable end
22
22
 
23
23
  class ::Object
24
- def maybe
25
- Just.new(self)
24
+ def maybe(&blk)
25
+ if blk
26
+ Just.new(blk.call(self))
27
+ else
28
+ Just.new(self)
29
+ end
26
30
  end
27
31
 
28
32
  def maybe?
@@ -38,13 +42,12 @@ module Monad
38
42
  end
39
43
 
40
44
  def something?(&blk)
41
- blk.call(self) if blk
42
45
  true
43
46
  end
44
47
  end
45
48
 
46
49
  class ::NilClass
47
- def maybe
50
+ def maybe(&blk)
48
51
  Nothing.instance.freeze
49
52
  end
50
53
 
@@ -53,8 +56,8 @@ module Monad
53
56
  end
54
57
  end
55
58
 
56
- def maybe(o)
57
- o.maybe
59
+ def maybe(o, &blk)
60
+ o.maybe(&blk)
58
61
  end
59
62
 
60
63
  def just(o)
@@ -11,9 +11,6 @@ module Monad
11
11
  true
12
12
  end
13
13
 
14
- def maybe
15
- self
16
- end
17
14
 
18
15
  def to_list
19
16
  List.new(to_a)
@@ -22,14 +22,21 @@ module Monad
22
22
  false
23
23
  end
24
24
 
25
- def something?(&blk)
26
- blk.call(value) if blk
25
+ def something?
27
26
  true
28
27
  end
29
28
 
30
29
  def just?
31
30
  true
32
31
  end
32
+
33
+ def maybe(&blk)
34
+ if blk
35
+ Just.new(blk.call(self.value))
36
+ else
37
+ self
38
+ end
39
+ end
33
40
 
34
41
  def nil?
35
42
  false
@@ -15,11 +15,6 @@ module Monad
15
15
  true
16
16
  end
17
17
 
18
- def something?(&blk)
19
- blk.call(select_just.value_map) if blk
20
- true
21
- end
22
-
23
18
  def <<(obj)
24
19
  @enum << obj if obj.just?
25
20
  self
@@ -28,10 +28,17 @@ module Monad
28
28
  true
29
29
  end
30
30
 
31
+ def maybe(&blk)
32
+ self
33
+ end
34
+
31
35
  def just?
32
36
  false
33
37
  end
34
- alias something? just?
38
+
39
+ def something?
40
+ false
41
+ end
35
42
 
36
43
  def unwrap(val)
37
44
  val
data/monad-maybe.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "monad-maybe"
8
- s.version = "0.9.0"
8
+ s.version = "0.9.1"
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"]
data/test/maybe.rb CHANGED
@@ -47,36 +47,39 @@ class MaybeTest < Test::Unit::TestCase
47
47
  end
48
48
  end
49
49
 
50
- def test_something?
50
+ def test_maybe_block
51
51
  assert_nothing_raised do
52
- nil.something? do
52
+ nil.maybe do
53
53
  raise Exception, "This should not be called"
54
54
  end
55
55
 
56
- nothing.something? do
56
+ nothing.maybe do
57
57
  raise Exception, "This should not be called"
58
58
  end
59
- end
60
59
 
61
- assert_equal false, nil.something?
62
- assert_equal false, nothing.something?
60
+ maybe(nil) do
61
+ raise Exception, "This should not be called"
62
+ end
63
+ end
63
64
 
64
- 1.something? do |n|
65
+ 1.maybe do |n|
65
66
  assert_equal 1, n
66
67
  end
67
68
 
68
- assert 1.something?
69
-
70
- 1.maybe.something? do |n|
69
+ maybe(1) do |n|
71
70
  assert_equal 1, n
72
71
  end
73
72
 
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
73
+ just(1).maybe do |n|
74
+ assert_equal 1, n
78
75
  end
76
+ end
79
77
 
78
+ def test_something?
79
+ assert_equal false, nil.something?
80
+ assert_equal false, nothing.something?
81
+ assert 1.something?
82
+ assert 1.maybe.something?
80
83
  assert (0..10).maybe_map { |n| n }.something?
81
84
  end
82
85
  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.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delon Newman