monad-maybe 0.9.0 → 0.9.1

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: 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