mug 0.0.8 → 0.1.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: 2be29414472cff6df24d27c9be475a3c476d97af
4
- data.tar.gz: e70a29a755e2e6574d85feda4470a3ce762b6e3f
3
+ metadata.gz: caac6c79133f87c320e088fe7273c80e440a00e1
4
+ data.tar.gz: 25ba29b491cdaf310e65803e854fefd855df6120
5
5
  SHA512:
6
- metadata.gz: f0df1b32c5c08b775fd26b344269c5c5862792605764521bcee0900ee64445021d04ef4e512e09ba419549803075565aef2dfabe5c152ee997f8c1ab4b9a2451
7
- data.tar.gz: cd1d43856397900dd9dacb727949e96984b425c7bea6f2077a06cb43b2facd1cd00d9b39f93af3468e5b7c860e88e336ad32cfd96306fb1c83a4fcd06ee1375a
6
+ metadata.gz: 7268ec06de0aff1c765b3e911e577746fbdd17a2c8b198e0c99fcd76a0e46530a4d4829c4b3cde41b5188f916548ec273c00c9c828e705f508d2dabcc241a305
7
+ data.tar.gz: 728948939a043370bd502776f4905387afab60224ccee6b1e03cf1eef96bd4f66ab9cfab3b60921139e7253283091d8fee40f9f1d8259dd09c239f1c3baa2567
data/lib/mug.rb CHANGED
@@ -1,12 +1,13 @@
1
-
2
- require_relative 'mug/bool'
3
- require_relative 'mug/fragile-method-chain'
4
- require_relative 'mug/hashmap'
5
- require_relative 'mug/hashop'
6
- require_relative 'mug/iterator/for'
7
- require_relative 'mug/iterator/method'
8
- require_relative 'mug/maybe'
9
- require_relative 'mug/self'
10
- require_relative 'mug/tau'
11
- require_relative 'mug/to_h'
12
-
1
+
2
+ require_relative 'mug/apply'
3
+ require_relative 'mug/bool'
4
+ require_relative 'mug/fragile-method-chain'
5
+ require_relative 'mug/hashmap'
6
+ require_relative 'mug/hashop'
7
+ require_relative 'mug/iterator/for'
8
+ require_relative 'mug/iterator/method'
9
+ require_relative 'mug/maybe'
10
+ require_relative 'mug/self'
11
+ require_relative 'mug/tau'
12
+ require_relative 'mug/to_h'
13
+
data/lib/mug/and-or.rb CHANGED
@@ -1,48 +1,48 @@
1
-
2
- class Object
3
-
4
- #
5
- # Returns either +obj+ or +default+, depending on the falsiness of +obj+.
6
- #
7
- # If a block is given, +obj+ is yielded to it; if it returns truthy,
8
- # +default+ is returned, otherwise +obj+ is returned.
9
- #
10
- def and default
11
- if block_given?
12
- yield(self) ? default : self
13
- else
14
- self && default
15
- end
16
- end
17
-
18
- #
19
- # Returns either +obj+ or +default+, depending on the truthiness of +obj+.
20
- #
21
- # If a block is given, +obj+ is yielded to it; if it returns truthy,
22
- # +obj+ is returned, otherwise +default+ is returned.
23
- #
24
- def or default
25
- if block_given?
26
- yield(self) ? self : default
27
- else
28
- self || default
29
- end
30
- end
31
- end
32
-
33
- =begin
34
- Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
35
-
36
- Permission to use, copy, modify, and/or distribute this software for any
37
- purpose with or without fee is hereby granted, provided that the above
38
- copyright notice and this permission notice appear in all copies.
39
-
40
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
41
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
42
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
43
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
44
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
45
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
46
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
47
- =end
48
-
1
+
2
+ class Object
3
+
4
+ #
5
+ # Returns either +obj+ or +default+, depending on the falsiness of +obj+.
6
+ #
7
+ # If a block is given, +obj+ is yielded to it; if it returns truthy,
8
+ # +default+ is returned, otherwise +obj+ is returned.
9
+ #
10
+ def and default
11
+ if block_given?
12
+ yield(self) ? default : self
13
+ else
14
+ self && default
15
+ end
16
+ end
17
+
18
+ #
19
+ # Returns either +obj+ or +default+, depending on the truthiness of +obj+.
20
+ #
21
+ # If a block is given, +obj+ is yielded to it; if it returns truthy,
22
+ # +obj+ is returned, otherwise +default+ is returned.
23
+ #
24
+ def or default
25
+ if block_given?
26
+ yield(self) ? self : default
27
+ else
28
+ self || default
29
+ end
30
+ end
31
+ end
32
+
33
+ =begin
34
+ Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
35
+
36
+ Permission to use, copy, modify, and/or distribute this software for any
37
+ purpose with or without fee is hereby granted, provided that the above
38
+ copyright notice and this permission notice appear in all copies.
39
+
40
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
41
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
42
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
43
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
44
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
45
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
46
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
47
+ =end
48
+
data/lib/mug/apply.rb ADDED
@@ -0,0 +1,58 @@
1
+
2
+ class Proc
3
+ #
4
+ # Curries this Proc and partially applies parameters.
5
+ # If a sufficient number of arguments are supplied, it passes the
6
+ # supplied arguments to the original proc and returns the result.
7
+ # Otherwise, returns another curried proc that takes the rest of
8
+ # arguments.
9
+ #
10
+ def apply(*args)
11
+ curry.call(*args)
12
+ end
13
+ end
14
+
15
+ class Method
16
+ #
17
+ # Returns a curried proc. If the optional arity argument is given,
18
+ # it determines the number of arguments. A curried proc receives
19
+ # some arguments. If a sufficient number of arguments are supplied,
20
+ # it passes the supplied arguments to the original proc and returns
21
+ # the result. Otherwise, returns another curried proc that takes the
22
+ # rest of arguments.
23
+ #
24
+ def curry(n=nil)
25
+ if n
26
+ to_proc.curry n
27
+ else
28
+ to_proc.curry
29
+ end
30
+ end
31
+
32
+ #
33
+ # Curries this Method and partially applies parameters.
34
+ # If a sufficient number of arguments are supplied, it passes the
35
+ # supplied arguments to the original proc and returns the result.
36
+ # Otherwise, returns another curried proc that takes the rest of
37
+ # arguments.
38
+ #
39
+ def apply(*args)
40
+ curry.call(*args)
41
+ end
42
+ end
43
+
44
+ =begin
45
+ Copyright (c) 2014, Matthew Kerwin <matthew@kerwin.net.au>
46
+
47
+ Permission to use, copy, modify, and/or distribute this software for any
48
+ purpose with or without fee is hereby granted, provided that the above
49
+ copyright notice and this permission notice appear in all copies.
50
+
51
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
52
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
53
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
54
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
55
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
56
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
57
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
58
+ =end
data/lib/mug/bool.rb CHANGED
@@ -1,128 +1,128 @@
1
-
2
- #
3
- # Converts arg to a boolean (true or false).
4
- #
5
- def Bool(arg)
6
- !!arg
7
- end
8
-
9
- class Object
10
- #
11
- # Converts obj to a boolean.
12
- #
13
- def to_bool
14
- true
15
- end
16
-
17
- #
18
- # Converts obj to a boolean.
19
- #
20
- def to_b
21
- true
22
- end
23
- end
24
-
25
- def nil.to_bool; false; end
26
- def nil.to_b; false; end
27
- def false.to_bool; false; end
28
- def false.to_b; false; end
29
-
30
- class Numeric
31
- #
32
- # Converts num to a boolean.
33
- # Returns true if not zero.
34
- #
35
- def to_b
36
- self != 0
37
- end
38
- end
39
-
40
- class Float
41
- #
42
- # Converts num to a boolean.
43
- # Returns true if not zero or NaN.
44
- # Note: -0.0 is false, and +/-infinity are true.
45
- #
46
- def to_b
47
- !(self.zero? || self.nan?)
48
- end
49
- end
50
-
51
- class String
52
- #
53
- # Converts str to a boolean.
54
- # Returns true if not empty.
55
- #
56
- def to_b
57
- !empty?
58
- end
59
- end
60
-
61
- class Array
62
- #
63
- # Converts ary to a boolean.
64
- # Returns true if not empty.
65
- #
66
- def to_b
67
- !empty?
68
- end
69
- end
70
-
71
- class Hash
72
- #
73
- # Converts hsh to a boolean.
74
- # Returns true if not empty.
75
- #
76
- def to_b
77
- !empty?
78
- end
79
- end
80
-
81
- module Enumerable
82
- #
83
- # Converts enum to a boolean.
84
- # Returns true if there are any elements.
85
- #
86
- def to_b
87
- any?{ true }
88
- end
89
- end
90
-
91
- if RUBY_VERSION.to_i >= 2
92
- class Enumerator
93
- #
94
- # Converts enum to a boolean.
95
- # Returns true if there are any elements.
96
- #
97
- def to_b
98
- size.to_b
99
- end
100
- end
101
- end
102
-
103
- class Exception
104
- #
105
- # Converts ex to a boolean.
106
- # All Exceptions are considered false.
107
- #
108
- def to_b
109
- false
110
- end
111
- end
112
-
113
- =begin
114
- Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
115
-
116
- Permission to use, copy, modify, and/or distribute this software for any
117
- purpose with or without fee is hereby granted, provided that the above
118
- copyright notice and this permission notice appear in all copies.
119
-
120
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
121
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
122
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
123
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
124
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
125
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
126
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
127
- =end
128
-
1
+
2
+ #
3
+ # Converts arg to a boolean (true or false).
4
+ #
5
+ def Bool(arg)
6
+ !!arg
7
+ end
8
+
9
+ class Object
10
+ #
11
+ # Converts obj to a boolean.
12
+ #
13
+ def to_bool
14
+ true
15
+ end
16
+
17
+ #
18
+ # Converts obj to a boolean.
19
+ #
20
+ def to_b
21
+ true
22
+ end
23
+ end
24
+
25
+ def nil.to_bool; false; end
26
+ def nil.to_b; false; end
27
+ def false.to_bool; false; end
28
+ def false.to_b; false; end
29
+
30
+ class Numeric
31
+ #
32
+ # Converts num to a boolean.
33
+ # Returns true if not zero.
34
+ #
35
+ def to_b
36
+ self != 0
37
+ end
38
+ end
39
+
40
+ class Float
41
+ #
42
+ # Converts num to a boolean.
43
+ # Returns true if not zero or NaN.
44
+ # Note: -0.0 is false, and +/-infinity are true.
45
+ #
46
+ def to_b
47
+ !(self.zero? || self.nan?)
48
+ end
49
+ end
50
+
51
+ class String
52
+ #
53
+ # Converts str to a boolean.
54
+ # Returns true if not empty.
55
+ #
56
+ def to_b
57
+ !empty?
58
+ end
59
+ end
60
+
61
+ class Array
62
+ #
63
+ # Converts ary to a boolean.
64
+ # Returns true if not empty.
65
+ #
66
+ def to_b
67
+ !empty?
68
+ end
69
+ end
70
+
71
+ class Hash
72
+ #
73
+ # Converts hsh to a boolean.
74
+ # Returns true if not empty.
75
+ #
76
+ def to_b
77
+ !empty?
78
+ end
79
+ end
80
+
81
+ module Enumerable
82
+ #
83
+ # Converts enum to a boolean.
84
+ # Returns true if there are any elements.
85
+ #
86
+ def to_b
87
+ any?{ true }
88
+ end
89
+ end
90
+
91
+ if RUBY_VERSION.to_i >= 2
92
+ class Enumerator
93
+ #
94
+ # Converts enum to a boolean.
95
+ # Returns true if there are any elements.
96
+ #
97
+ def to_b
98
+ size.to_b
99
+ end
100
+ end
101
+ end
102
+
103
+ class Exception
104
+ #
105
+ # Converts ex to a boolean.
106
+ # All Exceptions are considered false.
107
+ #
108
+ def to_b
109
+ false
110
+ end
111
+ end
112
+
113
+ =begin
114
+ Copyright (c) 2013, Matthew Kerwin <matthew@kerwin.net.au>
115
+
116
+ Permission to use, copy, modify, and/or distribute this software for any
117
+ purpose with or without fee is hereby granted, provided that the above
118
+ copyright notice and this permission notice appear in all copies.
119
+
120
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
121
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
122
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
123
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
124
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
125
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
126
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
127
+ =end
128
+