mug 0.4.1 → 0.4.2
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 +4 -4
- data/lib/mug.rb +2 -0
- data/lib/mug/any-and-all.rb +38 -0
- data/lib/mug/nonempty.rb +71 -0
- data/test/test-any-and-all.rb +25 -0
- data/test/test-nonempty.rb +30 -0
- metadata +24 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbc9df2427fedefa9ed326ebaa85af9f94055a20
|
4
|
+
data.tar.gz: 92a464c5eff53dbef69f098f176f4c67fdccf930
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd5bd64b1442ca799327f41b8e5325d32593c8762448254da80ef9d32f55b2ba92d97de4da152150ce6ee6854a99f5c7fad545017ec542698075a31a111993c9
|
7
|
+
data.tar.gz: 71d71d48de44e8074c336f258a55e8e1ae957f4204a6c12f1b6c1ab8361d9cca2676474a349ce2a1e8978cbd4283609469bd555fffd32441587a1cf54177b9f1
|
data/lib/mug.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
require_relative 'mug/and-or'
|
3
|
+
require_relative 'mug/any-and-all'
|
3
4
|
require_relative 'mug/apply'
|
4
5
|
require_relative 'mug/array/extend'
|
5
6
|
require_relative 'mug/array/minus'
|
@@ -16,6 +17,7 @@ require_relative 'mug/matchdata/each'
|
|
16
17
|
require_relative 'mug/matchdata/hash'
|
17
18
|
require_relative 'mug/maybe'
|
18
19
|
require_relative 'mug/negativity'
|
20
|
+
require_relative 'mug/nonempty'
|
19
21
|
require_relative 'mug/rexproc'
|
20
22
|
require_relative 'mug/self'
|
21
23
|
require_relative 'mug/tau'
|
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
module Enumerable
|
3
|
+
|
4
|
+
#
|
5
|
+
# Passes each element of the collection to the given block. The method returns `true` if the
|
6
|
+
# block contains elements that never return `false` or `nil`. If the block is not given, Ruby
|
7
|
+
# adds an implicit block of `{ |obj| obj }` which will cause `and_and_all?` to return `true`
|
8
|
+
# when none of the collection members are `false` or `nil`.
|
9
|
+
#
|
10
|
+
def any_and_all? &block
|
11
|
+
block ||= proc {|obj| obj }
|
12
|
+
|
13
|
+
result = false
|
14
|
+
each do |x|
|
15
|
+
return false unless block[x]
|
16
|
+
result = true
|
17
|
+
end
|
18
|
+
result
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
=begin
|
24
|
+
Copyright (c) 2016, Matthew Kerwin <matthew@kerwin.net.au>
|
25
|
+
|
26
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
27
|
+
purpose with or without fee is hereby granted, provided that the above
|
28
|
+
copyright notice and this permission notice appear in all copies.
|
29
|
+
|
30
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
31
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
32
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
33
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
34
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
35
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
36
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
37
|
+
=end
|
38
|
+
|
data/lib/mug/nonempty.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
|
2
|
+
class Array
|
3
|
+
#
|
4
|
+
# Returns +true+ if +self+ contains elements.
|
5
|
+
#
|
6
|
+
def nonempty?
|
7
|
+
!empty?
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Hash
|
12
|
+
#
|
13
|
+
# Returns +true+ if +hsh+ contains elements.
|
14
|
+
#
|
15
|
+
def nonempty?
|
16
|
+
!empty?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class String
|
21
|
+
#
|
22
|
+
# Returns +true+ if +str+ has a length greater than zero.
|
23
|
+
#
|
24
|
+
def nonempty?
|
25
|
+
!empty?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Symbol
|
30
|
+
#
|
31
|
+
# Returns that +sym+ is not :"".
|
32
|
+
#
|
33
|
+
def nonempty?
|
34
|
+
!empty?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class << ENV
|
39
|
+
#
|
40
|
+
# Returns true when there are environment variables.
|
41
|
+
#
|
42
|
+
def nonempty?
|
43
|
+
!empty?
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class Queue
|
48
|
+
#
|
49
|
+
# Returns +true+ if the queue is not empty.
|
50
|
+
#
|
51
|
+
def nonempty?
|
52
|
+
!empty?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
=begin
|
57
|
+
Copyright (c) 2016, Matthew Kerwin <matthew@kerwin.net.au>
|
58
|
+
|
59
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
60
|
+
purpose with or without fee is hereby granted, provided that the above
|
61
|
+
copyright notice and this permission notice appear in all copies.
|
62
|
+
|
63
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
64
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
65
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
66
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
67
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
68
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
69
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
70
|
+
=end
|
71
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
$VERBOSE = true
|
3
|
+
|
4
|
+
require_relative '../lib/mug/any-and-all'
|
5
|
+
class Test_any_and_all < Test::Unit::TestCase
|
6
|
+
def test_any_and_all__block
|
7
|
+
b = proc {|o| o > 1 }
|
8
|
+
[
|
9
|
+
[ false, [] ],
|
10
|
+
[ false, [3,0,9] ],
|
11
|
+
[ true, [3,5,9] ],
|
12
|
+
].each do |x, a|
|
13
|
+
assert_equal( x, a.any_and_all?(&b) )
|
14
|
+
end
|
15
|
+
end
|
16
|
+
def test_any_and_all__noblock
|
17
|
+
[
|
18
|
+
[ false, [] ],
|
19
|
+
[ false, [3,nil,9] ],
|
20
|
+
[ true, [3,5,9] ],
|
21
|
+
].each do |x, a|
|
22
|
+
assert_equal( x, a.any_and_all? )
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
$VERBOSE = true
|
3
|
+
|
4
|
+
require_relative '../lib/mug/nonempty'
|
5
|
+
require 'thread'
|
6
|
+
class Test_nonempty < Test::Unit::TestCase
|
7
|
+
def test_nonempty
|
8
|
+
yes = [
|
9
|
+
[nil],
|
10
|
+
{ :foo => nil },
|
11
|
+
Queue.new.tap{|q| q << 1 },
|
12
|
+
'x',
|
13
|
+
:x,
|
14
|
+
]
|
15
|
+
no = [
|
16
|
+
[],
|
17
|
+
{},
|
18
|
+
Queue.new,
|
19
|
+
'',
|
20
|
+
:'',
|
21
|
+
]
|
22
|
+
yes.each do |obj|
|
23
|
+
assert( obj.nonempty?, "#{obj.inspect} should be nonempty?" )
|
24
|
+
end
|
25
|
+
no.each do |obj|
|
26
|
+
assert( !obj.nonempty?, "#{obj.inspect} should not be nonempty?" )
|
27
|
+
end
|
28
|
+
assert_raise( NoMethodError ) { Object.new.nonempty? }
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Kerwin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
== MUG: Matty's Ultimate Gem
|
@@ -24,6 +24,7 @@ extra_rdoc_files: []
|
|
24
24
|
files:
|
25
25
|
- lib/mug.rb
|
26
26
|
- lib/mug/and-or.rb
|
27
|
+
- lib/mug/any-and-all.rb
|
27
28
|
- lib/mug/apply.rb
|
28
29
|
- lib/mug/array.rb
|
29
30
|
- lib/mug/array/extend.rb
|
@@ -47,12 +48,14 @@ files:
|
|
47
48
|
- lib/mug/matchdata/hash.rb
|
48
49
|
- lib/mug/maybe.rb
|
49
50
|
- lib/mug/negativity.rb
|
51
|
+
- lib/mug/nonempty.rb
|
50
52
|
- lib/mug/rexproc.rb
|
51
53
|
- lib/mug/self.rb
|
52
54
|
- lib/mug/tau.rb
|
53
55
|
- lib/mug/to_h.rb
|
54
56
|
- lib/mug/top.rb
|
55
57
|
- test/test-and-or.rb
|
58
|
+
- test/test-any-and-all.rb
|
56
59
|
- test/test-apply.rb
|
57
60
|
- test/test-array-extend.rb
|
58
61
|
- test/test-array-minus.rb
|
@@ -69,6 +72,7 @@ files:
|
|
69
72
|
- test/test-matchdata_hash.rb
|
70
73
|
- test/test-maybe.rb
|
71
74
|
- test/test-negativity.rb
|
75
|
+
- test/test-nonempty.rb
|
72
76
|
- test/test-rexproc.rb
|
73
77
|
- test/test-self.rb
|
74
78
|
- test/test-tau.rb
|
@@ -93,29 +97,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
97
|
version: '0'
|
94
98
|
requirements: []
|
95
99
|
rubyforge_project:
|
96
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.5.1
|
97
101
|
signing_key:
|
98
102
|
specification_version: 4
|
99
103
|
summary: 'MUG: Matty''s Ultimate Gem'
|
100
104
|
test_files:
|
101
|
-
- test/test-
|
102
|
-
- test/test-maybe.rb
|
103
|
-
- test/test-hashop.rb
|
104
|
-
- test/test-loop-with.rb
|
105
|
-
- test/test-counts.rb
|
106
|
-
- test/test-array-minus.rb
|
107
|
-
- test/test-bool.rb
|
105
|
+
- test/test-clamp.rb
|
108
106
|
- test/test-rexproc.rb
|
109
107
|
- test/test-tau.rb
|
110
|
-
- test/test-
|
111
|
-
- test/test-
|
112
|
-
- test/test-iterator-for.rb
|
113
|
-
- test/test-negativity.rb
|
108
|
+
- test/test-nonempty.rb
|
109
|
+
- test/test-matchdata_each.rb
|
114
110
|
- test/test-matchdata_hash.rb
|
115
|
-
- test/test-
|
111
|
+
- test/test-array-extend.rb
|
112
|
+
- test/test-iterator-for.rb
|
113
|
+
- test/test-top.rb
|
116
114
|
- test/test-and-or.rb
|
115
|
+
- test/test-any-and-all.rb
|
116
|
+
- test/test-self.rb
|
117
|
+
- test/test-counts.rb
|
118
|
+
- test/test-negativity.rb
|
119
|
+
- test/test-bool.rb
|
117
120
|
- test/test-hashmap.rb
|
118
|
-
- test/test-
|
121
|
+
- test/test-loop-with.rb
|
122
|
+
- test/test-maybe.rb
|
123
|
+
- test/test-hashop.rb
|
119
124
|
- test/test-iterator-method.rb
|
120
|
-
- test/test-
|
121
|
-
- test/test-
|
125
|
+
- test/test-apply.rb
|
126
|
+
- test/test-array-minus.rb
|
127
|
+
- test/test-fragile-method-chain.rb
|