mug 0.4.2 → 0.5

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: dbc9df2427fedefa9ed326ebaa85af9f94055a20
4
- data.tar.gz: 92a464c5eff53dbef69f098f176f4c67fdccf930
3
+ metadata.gz: 312309b5648e3c0bcf0f20a78b1f2e8967a8c407
4
+ data.tar.gz: 36928e26dc4bbc52d6f4a8ef58a6a8faca5f6879
5
5
  SHA512:
6
- metadata.gz: bd5bd64b1442ca799327f41b8e5325d32593c8762448254da80ef9d32f55b2ba92d97de4da152150ce6ee6854a99f5c7fad545017ec542698075a31a111993c9
7
- data.tar.gz: 71d71d48de44e8074c336f258a55e8e1ae957f4204a6c12f1b6c1ab8361d9cca2676474a349ce2a1e8978cbd4283609469bd555fffd32441587a1cf54177b9f1
6
+ metadata.gz: 8728a0f1d3fdfaf985ba2ef0201d0895e0ac47963c214ca45713bb11526fbcd6622e3f712ab58ae4a32dc98596220981c898ad43391d1cd152c8aee56a720c3b
7
+ data.tar.gz: 4d347c516b264cffc9da8b80b19f168d0a1946db18df8f74c76a1443dc39876b1e7d69249ccd557fa5da494f89af81658d268d7277862f5860b8e8d9495d122e
data/lib/mug.rb CHANGED
@@ -17,7 +17,7 @@ require_relative 'mug/matchdata/each'
17
17
  require_relative 'mug/matchdata/hash'
18
18
  require_relative 'mug/maybe'
19
19
  require_relative 'mug/negativity'
20
- require_relative 'mug/nonempty'
20
+ require_relative 'mug/not'
21
21
  require_relative 'mug/rexproc'
22
22
  require_relative 'mug/self'
23
23
  require_relative 'mug/tau'
@@ -1,55 +1,10 @@
1
1
 
2
- class Array
2
+ module Kernel
3
3
  #
4
- # Returns +true+ if +self+ contains elements.
4
+ # Negate a predicate.
5
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?
6
+ def not(*a, &b)
7
+ not a.empty? ? (b ? (yield self) : self) : __send__(*a, &b)
53
8
  end
54
9
  end
55
10
 
@@ -60,6 +15,12 @@ Permission to use, copy, modify, and/or distribute this software for any
60
15
  purpose with or without fee is hereby granted, provided that the above
61
16
  copyright notice and this permission notice appear in all copies.
62
17
 
18
+ Additional license is granted to the Ruby Core Team to use this software
19
+ in the ruby core or ruby standard libraries without including the above
20
+ copyright notice nor this permission notice. Subsequently, such a copy
21
+ of this software becomes wholly subject to the relevant licensing terms
22
+ of the ruby core or ruby standard libraries.
23
+
63
24
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
64
25
  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
65
26
  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
@@ -0,0 +1,60 @@
1
+ require 'test/unit'
2
+ $VERBOSE = true
3
+
4
+ require_relative '../lib/mug/not'
5
+ class Test_not < Test::Unit::TestCase
6
+ def test_not__noargs
7
+ [
8
+ [true, false],
9
+ [99, false],
10
+ [false, true],
11
+ [nil, true],
12
+ ].each do |o, x|
13
+ assert_equal( x, o.not, "#{o.inspect}.not should be #{x}" )
14
+ end
15
+ end
16
+ def test_not__method
17
+ [
18
+ [[], false],
19
+ [[99], true],
20
+ ].each do |o, x|
21
+ assert_equal( x, o.not(:empty?), "#{o.inspect}.not(:empty?) should be #{x}" )
22
+ end
23
+ end
24
+ def test_not__method2
25
+ [
26
+ [[], false],
27
+ [[99], true],
28
+ ].each do |o, x|
29
+ assert_equal( x, o.not(&:empty?), "#{o.inspect}.not(&:empty?) should be #{x}" )
30
+ end
31
+ end
32
+ def test_not__args
33
+ [
34
+ [1, true],
35
+ [0, true],
36
+ [-1, false],
37
+ ].each do |o, x|
38
+ assert_equal( x, o.not(:<, 0), "#{o.inspect}.not(:<, 0) should be #{x}" )
39
+ end
40
+ end
41
+
42
+ def test_not__block
43
+ [
44
+ [1, true],
45
+ [0, true],
46
+ [-1, false],
47
+ ].each do |o, x|
48
+ assert_equal( x, o.not {|obj| obj < 0 }, "#{o.inspect}.not{|obj|obj<0} should be #{x}" )
49
+ end
50
+ end
51
+ def test_not__method_block
52
+ [
53
+ [[], true],
54
+ [[0,-1], true],
55
+ [[0,99], false],
56
+ ].each do |o, x|
57
+ assert_equal( x, o.not(:any?) {|item| item > 0 }, "#{o.inspect}.not(:any?){|item|item>0} should be #{x}" )
58
+ end
59
+ end
60
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Kerwin
@@ -48,7 +48,7 @@ files:
48
48
  - lib/mug/matchdata/hash.rb
49
49
  - lib/mug/maybe.rb
50
50
  - lib/mug/negativity.rb
51
- - lib/mug/nonempty.rb
51
+ - lib/mug/not.rb
52
52
  - lib/mug/rexproc.rb
53
53
  - lib/mug/self.rb
54
54
  - lib/mug/tau.rb
@@ -72,7 +72,7 @@ files:
72
72
  - test/test-matchdata_hash.rb
73
73
  - test/test-maybe.rb
74
74
  - test/test-negativity.rb
75
- - test/test-nonempty.rb
75
+ - test/test-not.rb
76
76
  - test/test-rexproc.rb
77
77
  - test/test-self.rb
78
78
  - test/test-tau.rb
@@ -105,9 +105,9 @@ test_files:
105
105
  - test/test-clamp.rb
106
106
  - test/test-rexproc.rb
107
107
  - test/test-tau.rb
108
- - test/test-nonempty.rb
109
108
  - test/test-matchdata_each.rb
110
109
  - test/test-matchdata_hash.rb
110
+ - test/test-not.rb
111
111
  - test/test-array-extend.rb
112
112
  - test/test-iterator-for.rb
113
113
  - test/test-top.rb
@@ -1,30 +0,0 @@
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