y_support 2.1.5 → 2.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +675 -0
  3. data/Rakefile +1 -1
  4. data/lib/y_support/abstract_algebra.rb +1 -0
  5. data/lib/y_support/all.rb +1 -0
  6. data/lib/y_support/core_ext/array.rb +2 -2
  7. data/lib/y_support/core_ext/class/misc.rb +2 -3
  8. data/lib/y_support/core_ext/class.rb +2 -2
  9. data/lib/y_support/core_ext/enumerable/misc.rb +1 -1
  10. data/lib/y_support/core_ext/enumerable.rb +2 -2
  11. data/lib/y_support/core_ext/hash/misc.rb +26 -39
  12. data/lib/y_support/core_ext/hash.rb +2 -2
  13. data/lib/y_support/core_ext/module/misc.rb +39 -1
  14. data/lib/y_support/core_ext/module.rb +2 -2
  15. data/lib/y_support/core_ext/numeric/misc.rb +0 -2
  16. data/lib/y_support/core_ext/numeric.rb +2 -2
  17. data/lib/y_support/core_ext/object/inspection.rb +0 -2
  18. data/lib/y_support/core_ext/object/misc.rb +31 -16
  19. data/lib/y_support/core_ext/object.rb +3 -3
  20. data/lib/y_support/core_ext/string/misc.rb +7 -7
  21. data/lib/y_support/core_ext/string.rb +2 -2
  22. data/lib/y_support/core_ext/symbol/misc.rb +2 -3
  23. data/lib/y_support/core_ext/symbol.rb +2 -2
  24. data/lib/y_support/core_ext.rb +0 -2
  25. data/lib/y_support/inert_recorder.rb +1 -1
  26. data/lib/y_support/kde.rb +1 -0
  27. data/lib/y_support/name_magic/array.rb +27 -7
  28. data/lib/y_support/name_magic/class_methods.rb +52 -58
  29. data/lib/y_support/name_magic/hash.rb +18 -4
  30. data/lib/y_support/name_magic/namespace_methods.rb +241 -174
  31. data/lib/y_support/name_magic.rb +82 -38
  32. data/lib/y_support/null_object.rb +8 -7
  33. data/lib/y_support/respond_to.rb +1 -2
  34. data/lib/y_support/stdlib_ext/matrix/misc.rb +0 -2
  35. data/lib/y_support/stdlib_ext/matrix.rb +2 -2
  36. data/lib/y_support/stdlib_ext.rb +1 -0
  37. data/lib/y_support/try.rb +1 -1
  38. data/lib/y_support/typing/array/typing.rb +45 -4
  39. data/lib/y_support/typing/array.rb +1 -1
  40. data/lib/y_support/typing/enumerable/typing.rb +26 -28
  41. data/lib/y_support/typing/enumerable.rb +1 -1
  42. data/lib/y_support/typing/hash/typing.rb +47 -29
  43. data/lib/y_support/typing/hash.rb +1 -1
  44. data/lib/y_support/typing/module/typing.rb +4 -6
  45. data/lib/y_support/typing/module.rb +1 -1
  46. data/lib/y_support/typing/object/typing.rb +64 -61
  47. data/lib/y_support/typing/object.rb +1 -1
  48. data/lib/y_support/typing.rb +4 -26
  49. data/lib/y_support/unicode.rb +5 -7
  50. data/lib/y_support/version.rb +1 -1
  51. data/lib/y_support/x.rb +11 -8
  52. data/lib/y_support.rb +2 -2
  53. data/test/abstract_algebra_test.rb +44 -55
  54. data/test/inert_recorder_test.rb +13 -18
  55. data/test/local_object_test.rb +13 -18
  56. data/test/misc_test.rb +15 -10
  57. data/test/name_magic_test.rb +1 -1
  58. data/test/null_object_test.rb +19 -26
  59. data/test/respond_to_test.rb +15 -16
  60. data/test/typing_test.rb +100 -103
  61. data/test/x_test.rb +16 -19
  62. data/y_support.gemspec +21 -17
  63. metadata +37 -8
  64. data/LICENSE +0 -22
@@ -1,34 +1,12 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
2
 
3
3
  require 'y_support'
4
4
 
5
5
  # Typing library.
6
6
  #
7
- # Apart from Ruby default way of typing objects <em>by class and ancestry</em>,
8
- # exemplified eg. by built-in #kind_of?, alias #is_a? inquirers, y_support
9
- # typing library provides support for typing <em>by declaration</em>, and
10
- # runtime assertions for <em>duck type</em> examination.
11
- #
12
- # 1. Using method <b>declare_compliance</b>, a module (class) can explicitly
13
- # declare, that it provides an interface compliant with another module (class).
14
- # Corresponding inquirer methods are <b>declared_compliance</b> (returns a list
15
- # of modules, to which the receiver declares compliance, or implicitly complies
16
- # by ancestry), and <b>declares_compliance?( other_module )</b>, which tells,
17
- # whether the receiver complies with a specific module. An object always
18
- # implicitly complies with its class and ancestry.
19
- #
20
- # 2. Duck type examination is supported by a collection of runtime assertions.
21
- # These start with <b>tE_...</b>, meaning "enforce ... by raising TypeError".
22
- #
23
- class Object
24
- # Alias for ArgumentError
25
- #
26
- AErr = ArgumentError
27
-
28
- # Alias for TypeError
29
- #
30
- TErr = TypeError
31
- end
7
+ # Apart from typing objects <em>by class and ancestry</em> (+#kind_of?+),
8
+ # y_support typing library provides support for typing <em>by declaration</em>,
9
+ # and for runtime assertions.
32
10
 
33
11
  directories_to_look_in = [ :typing ]
34
12
 
@@ -2,7 +2,8 @@
2
2
 
3
3
  require 'y_support'
4
4
 
5
- # A tiny number of Unicode 1-character aliases:
5
+ # +y_support/unicode+ defines a small number of Unicode 1-character aliases to
6
+ # make code more concise.
6
7
  #
7
8
  # * <b>ç</b> – class (c with cedilla, U00E7)
8
9
  # * <b>ⓒ</b> – singleton class (copyright sign)
@@ -35,8 +36,7 @@ class Object
35
36
  end
36
37
  end
37
38
 
38
-
39
- # Defined aliases:
39
+ # +y_support/unicode+ also defines the following aliases:
40
40
  #
41
41
  # * <b>★</b> – alias for include
42
42
  # * <b>ç</b> for +class+ in several method names
@@ -50,19 +50,18 @@ class Module
50
50
  alias remove_ç_variable remove_class_variable
51
51
  end
52
52
 
53
-
54
-
55
53
  # Defined aliases
56
54
  #
57
55
  # * <b>√</b> – root of arbitrary degree ( x.√( n ) is n ** ( 1 / x ) ).
58
56
  # * <b>sqrt</b> as in +4.sqrt+ for square root (Math#sqrt).
59
57
  #
60
58
  class Numeric
59
+ # Returns n-th root of the argument, where n is the receiver number.
60
+ #
61
61
  def √ number
62
62
  number ** ( 1.0 / self )
63
63
  end
64
64
 
65
-
66
65
  # Square root (using Math#sqrt).
67
66
  #
68
67
  def sqrt
@@ -70,7 +69,6 @@ class Numeric
70
69
  end
71
70
  end
72
71
 
73
-
74
72
  # Other abbreviations (eg. for local variables) are optionally encouraged:
75
73
  #
76
74
  # * <b>ɱ</b> – module (m with hook, U2C6E, compose seq. [m, j])
@@ -1,4 +1,4 @@
1
1
  module YSupport
2
- VERSION = "2.1.5"
2
+ VERSION = "2.1.12"
3
3
  DEBUG = false
4
4
  end
data/lib/y_support/x.rb CHANGED
@@ -1,17 +1,20 @@
1
1
  require 'y_support'
2
- require 'gtk2'
3
2
 
3
+ # Assets related to X windows control.
4
+ #
4
5
  module YSupport::X
5
- # Echo a string to the primary X clip with `xsel -b -i`.
6
- #
7
- def echo_primary_clipboard( string )
8
- system 'echo -n ' + string.inspect + ' | xsel -b -i'
6
+ # Echo a string to the primary X clip; `xsel -b -i`.
7
+ #
8
+ def echo_primary_clipboard string
9
+ s = 'echo -n ' + string.inspect + ' | xsel -b -i'
10
+ system s
9
11
  end
10
12
 
11
- # Echo a string to the secondary X clip with `xsel -b -i`.
13
+ # Echo a string to the secondary X clip; `xsel -b -i`.
12
14
  #
13
- def echo_secondary_clipboard( string )
14
- system 'echo -n "' + string.inspect + '" | xsel -s -i'
15
+ def echo_secondary_clipboard string
16
+ s = 'echo -n ' + string.inspect + ' | xsel -s -i'
17
+ system s
15
18
  end
16
19
 
17
20
  # Dialog box querying for a string.
data/lib/y_support.rb CHANGED
@@ -1,5 +1,5 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
2
 
3
- # YSupport is a collection of methods used in Y gems.
3
+ # YSupport is a collection of methods used in Y gems.
4
4
  #
5
5
  require "y_support/version"
@@ -1,41 +1,38 @@
1
1
  #! /usr/bin/ruby
2
2
  #encoding: utf-8
3
3
 
4
- require 'test/unit'
5
- require 'shoulda'
6
-
7
- # This whole test is one big FIXME
8
-
9
- class AbstractAlgebraTest < Test::Unit::TestCase
10
- context "Algebra" do
11
- setup do
12
- require 'y_support/abstract_algebra'
13
- # Define the stupidest monoid:
14
- @monoid = Class.new { include Algebra::Monoid } # make some class
15
- zero = @monoid.new # call arbitrary instance zero
16
- @monoid.class_exec {
17
- # Define the stupidest #add method.
18
- define_method :add do |other|
19
- if self == zero then other
20
- elsif other == zero then self
21
- else self.class.addition_table[[self, other]] end
22
- end
23
- # Define the stupidest addition table.
24
- instance_variable_set :@addition_table,
25
- Hash.new { |ꜧ, k|
26
- ꜧ[k] = if k[0].object_id <= k[1].object_id
27
- new # just make up an instance
28
- else
29
- ꜧ[k[1], k[0]] # swap operands
30
- end
31
- }
4
+ require 'minitest/autorun'
5
+
6
+ describe "Algebra" do
7
+ before do
8
+ require './../lib/y_support/abstract_algebra'
9
+ # Define the stupidest monoid:
10
+ @monoid = Class.new { include Algebra::Monoid } # make some class
11
+ zero = @monoid.new # call arbitrary instance zero
12
+ @monoid.class_exec {
13
+ # Define the stupidest #add method.
14
+ define_method :add do |other|
15
+ if self == zero then other
16
+ elsif other == zero then self
17
+ else self.class.addition_table[[self, other]] end
18
+ end
19
+ # Define the stupidest addition table.
20
+ instance_variable_set :@addition_table,
21
+ Hash.new { |ꜧ, k|
22
+ ꜧ[k] = if k[0].object_id <= k[1].object_id
23
+ new # just make up an instance
24
+ else
25
+ ꜧ[k[1], k[0]] # swap operands
26
+ end
32
27
  }
33
- # And refine the @monoid's singleton class.
34
- @monoid.singleton_class.class_exec { attr_reader :addition_table }
35
- @monoid.define_singleton_method :additive_identity do zero end
36
- end
28
+ }
29
+ # And refine the @monoid's singleton class.
30
+ @monoid.singleton_class.class_exec { attr_reader :addition_table }
31
+ @monoid.define_singleton_method :additive_identity do zero end
32
+ end
37
33
 
38
- should "have working Monoid" do
34
+ describe "Algebra" do
35
+ it "should have working Monoid" do
39
36
  m = @monoid.random # choose an instance
40
37
 
41
38
  # #== method
@@ -53,7 +50,7 @@ class AbstractAlgebraTest < Test::Unit::TestCase
53
50
  assert @monoid.zero + m == m
54
51
  end
55
52
 
56
- should "have working Group" do
53
+ it "should have working Group" do
57
54
  g = @group.random
58
55
 
59
56
  # (monoid properties not tested)
@@ -63,7 +60,7 @@ class AbstractAlgebraTest < Test::Unit::TestCase
63
60
  assert (-g) + g == @group.zero
64
61
  end
65
62
 
66
- should "define AbelianGroup" do
63
+ it "should define AbelianGroup" do
67
64
  ag = @abelian_group.random
68
65
 
69
66
  # (group properties not tested)
@@ -73,7 +70,7 @@ class AbstractAlgebraTest < Test::Unit::TestCase
73
70
  assert ag + bh == bh + ag
74
71
  end
75
72
 
76
- should "define Ring" do
73
+ it "should define Ring" do
77
74
  r = @ring.random
78
75
 
79
76
  # (abelian group properties with respect to addition not tested)
@@ -93,7 +90,7 @@ class AbstractAlgebraTest < Test::Unit::TestCase
93
90
  assert r * ( s + t ) == ( r * s ) + ( s * t )
94
91
  end
95
92
 
96
- should "define Field" do
93
+ it "should define Field" do
97
94
  f = @field.random
98
95
 
99
96
  # (ring properties not tested)
@@ -105,43 +102,35 @@ class AbstractAlgebraTest < Test::Unit::TestCase
105
102
  end
106
103
  end
107
104
 
108
- context "numerics" do
109
- setup do
110
- require 'y_support/abstract_algebra'
111
- end
112
-
113
- should "have patched Integer" do
105
+ describe "numerics" do
106
+ it "should have patched Integer" do
114
107
  assert Integer.zero.equal? 0
115
108
  end
116
109
 
117
- should "have patched Float" do
110
+ it "should have patched Float" do
118
111
  assert Float.zero.equal? 0.0
119
112
  end
120
113
 
121
- should "have patched Rational" do
114
+ it "should have patched Rational" do
122
115
  assert Rational.zero.equal? Rational( 0, 0 )
123
116
  end
124
117
 
125
- should "have patched Complex" do
118
+ it "should have patched Complex" do
126
119
  assert Complex.zero.equal? Complex( 0, 0 )
127
120
  end
128
121
  end
129
122
 
130
- context "Matrix" do
131
- setup do
132
- require 'y_support/abstract_algebra'
133
- end
134
-
135
- should "have Matrix.wildcard_zero public instance method" do
123
+ describe "Matrix" do
124
+ it "should have Matrix.wildcard_zero public instance method" do
136
125
  # FIXME
137
126
  end
138
127
 
139
- should "be able to perform #* with nonnumerics in the matrix" do
128
+ it "should be able to perform #* with nonnumerics in the matrix" do
140
129
  # FIXME
141
130
  end
142
131
 
143
- should "numeric matrix multiplication still be working normally" do
132
+ it "should numeric matrix multiplication still be working normally" do
144
133
  # FIXME
145
134
  end
146
135
  end # context Matrix
147
- end # class AbstractAlgebraTest
136
+ end
@@ -1,26 +1,21 @@
1
1
  #! /usr/bin/ruby
2
- #encoding: utf-8
2
+ # encoding: utf-8
3
3
 
4
- require 'test/unit'
5
- require 'shoulda'
4
+ require 'minitest/autorun'
6
5
 
7
- class YSupportTest < Test::Unit::TestCase
8
- context "Object" do
9
- setup do
10
- require 'y_support/inert_recorder'
11
- end
6
+ describe "InertRecorder" do
7
+ before do
8
+ require './../lib/y_support/inert_recorder'
9
+ end
12
10
 
13
- should "have #InertRecorder() constructor" do
11
+ describe "Object" do
12
+ it "should have #InertRecorder() constructor" do
14
13
  assert_equal InertRecorder, InertRecorder( :bull ).class
15
14
  end
16
- end # context Object
15
+ end
17
16
 
18
- context "InertRecorder" do
19
- setup do
20
- require 'y_support/inert_recorder'
21
- end
22
-
23
- should "InertRecorder exist and comply" do
17
+ describe "InertRecorder" do
18
+ it "should InertRecorder exist and comply" do
24
19
  n = InertRecorder.new
25
20
  assert_equal [true, false], [n.present?, n.blank?]
26
21
  assert_respond_to InertRecorder.new, :arbitrary_message
@@ -30,5 +25,5 @@ class YSupportTest < Test::Unit::TestCase
30
25
  assert_equal [ :arbitrary_message, [:a, :b] ], n.recorded_messages[0][0..1]
31
26
  assert_equal "hello", n.recorded_messages[0][2].call
32
27
  end
33
- end # context InertRecorder
34
- end # class InertRecorderTest
28
+ end
29
+ end
@@ -1,37 +1,32 @@
1
1
  #! /usr/bin/ruby
2
2
  #encoding: utf-8
3
3
 
4
- require 'test/unit'
5
- require 'shoulda'
4
+ require 'minitest/autorun'
6
5
 
7
- class LocalObjectTest < Test::Unit::TestCase
8
- context "Object" do
9
- setup do
10
- require 'y_support/local_object'
11
- end
6
+ describe "LocalObject" do
7
+ before do
8
+ require './../lib/y_support/local_object'
9
+ end
12
10
 
13
- should "have constructor #LocalObject, alias #L!" do
11
+ describe "Object" do
12
+ it "should have constructor #LocalObject, alias #L!" do
14
13
  assert_equal LocalObject, LocalObject().class
15
14
  assert_equal LocalObject, L!.class
16
15
  end
17
16
 
18
- should "have #local_object?, alias #ℓ?" do
17
+ it "should have #local_object?, alias #ℓ?" do
19
18
  assert_equal false, Object.new.local_object?
20
19
  assert_equal false, Object.new.ℓ?
21
20
  end
22
- end # context Object
21
+ end
23
22
 
24
- context "LocalObject" do
25
- setup do
26
- require 'y_support/local_object'
27
- end
28
-
29
- should "exist and comply" do
23
+ describe "LocalObject" do
24
+ it "should exist and comply" do
30
25
  n = LocalObject.new 'whatever'
31
26
  assert ! n.ℓ?
32
27
  assert n.ℓ? 'whatever'
33
28
  assert_equal 'whatever', n.signature
34
29
  assert_equal 'whatever', n.σ
35
30
  end
36
- end # context LocalObject
37
- end # class LocalObjectTest
31
+ end
32
+ end
data/test/misc_test.rb CHANGED
@@ -5,7 +5,7 @@ require 'minitest/autorun'
5
5
 
6
6
  describe Object do
7
7
  before do
8
- require 'y_support/core_ext/object'
8
+ require './../lib/y_support/core_ext/object'
9
9
  end
10
10
 
11
11
  it "should have #param_class" do
@@ -20,7 +20,7 @@ end
20
20
 
21
21
  describe Module do
22
22
  before do
23
- require 'y_support/core_ext/module'
23
+ require './../lib/y_support/core_ext/module'
24
24
  end
25
25
 
26
26
  it "has #const_set_if_not_defined and #const_reset!" do
@@ -29,13 +29,18 @@ describe Module do
29
29
  m::Foo.must_equal 42
30
30
  m.const_reset! :Foo, 43
31
31
  m::Foo.must_equal 43
32
+ m.module_exec do
33
+ def a; 42 end
34
+ chain b: :a, &:to_s
35
+ end
36
+ Class.new do include m end.new.b.must_equal "42"
32
37
  end
33
38
  end
34
39
 
35
40
 
36
41
  describe Class do
37
42
  before do
38
- require 'y_support/core_ext/class'
43
+ require './../lib/y_support/core_ext/class'
39
44
  end
40
45
 
41
46
  it "has #parametrize method" do
@@ -49,7 +54,7 @@ end
49
54
 
50
55
  describe Enumerable do
51
56
  before do
52
- require 'y_support/core_ext/enumerable'
57
+ require './../lib/y_support/core_ext/enumerable'
53
58
  end
54
59
 
55
60
  it "should introduce #all_kind_of? collection qualifier" do
@@ -73,7 +78,7 @@ end
73
78
 
74
79
  describe Array do
75
80
  before do
76
- require 'y_support/core_ext/array'
81
+ require './../lib/y_support/core_ext/array'
77
82
  end
78
83
 
79
84
  it "has #arrays_to_hash" do
@@ -135,7 +140,7 @@ end
135
140
 
136
141
  describe Hash do
137
142
  before do
138
- require 'y_support/core_ext/hash'
143
+ require './../lib/y_support/core_ext/hash'
139
144
  end
140
145
 
141
146
  it "should have #default! custom defaulter" do
@@ -206,7 +211,7 @@ end
206
211
  describe "Matrix" do
207
212
  before do
208
213
  require 'matrix'
209
- require 'y_support/stdlib_ext/matrix'
214
+ require './../lib/y_support/stdlib_ext/matrix'
210
215
  end
211
216
 
212
217
  it "should have #pp method" do
@@ -256,7 +261,7 @@ end
256
261
 
257
262
  describe String do
258
263
  before do
259
- require 'y_support/core_ext/string'
264
+ require './../lib/y_support/core_ext/string'
260
265
  end
261
266
 
262
267
  it "should have #can_be_integer? returning the integer or false if not convertible" do
@@ -312,7 +317,7 @@ end
312
317
 
313
318
  describe Symbol do
314
319
  before do
315
- require 'y_support/core_ext/symbol'
320
+ require './../lib/y_support/core_ext/symbol'
316
321
  end
317
322
 
318
323
  it "should have #default! defaulter going through String#default!" do
@@ -331,7 +336,7 @@ end
331
336
 
332
337
  describe Numeric do
333
338
  before do
334
- require 'y_support/core_ext/numeric'
339
+ require './../lib/y_support/core_ext/numeric'
335
340
  end
336
341
 
337
342
  it "should have #zero public class methods" do
@@ -2,7 +2,7 @@
2
2
  #encoding: utf-8
3
3
 
4
4
  require 'minitest/autorun'
5
- require 'y_support/name_magic'
5
+ require './../lib/y_support/name_magic'
6
6
 
7
7
  describe NameMagic do
8
8
  before do
@@ -1,45 +1,38 @@
1
1
  #! /usr/bin/ruby
2
2
  #encoding: utf-8
3
3
 
4
- require 'test/unit'
5
- require 'shoulda'
4
+ require 'minitest/autorun'
6
5
 
7
- class NullObjectTest < Test::Unit::TestCase
8
- context 'Object' do
9
- setup do
10
- require 'y_support/null_object'
11
- end
6
+ describe "y_support/null_object" do
7
+ before do
8
+ require './../lib/y_support/null_object'
9
+ end
12
10
 
13
- should "Object have #null_object? (alias #null?)" do
14
- require 'y_support/null_object'
15
- assert_equal true, (class Koko < NullObject; self end).new.null_object?
16
- assert_equal true, (class Koko < NullObject; self end).new.null?
17
- assert_equal [false, false], [nil.null_object?, nil.null?]
18
- assert_equal true, NullObject.new( :koko ).null?( :koko )
19
- assert_equal false, NullObject.new( :koko ).null?( :pipi )
11
+ describe Object do
12
+ it "should have #null_object? (alias #null?)" do
13
+ assert ( class Koko < NullObject; self end ).new.null_object?
14
+ assert ( class Koko < NullObject; self end ).new.null?
15
+ assert_equal [ false, false ], [ nil.null_object?, nil.null? ]
16
+ assert NullObject.new( :koko ).null?( :koko )
17
+ assert ! NullObject.new( :koko ).null?( :pipi )
20
18
  end
21
19
 
22
- should "Object have #Maybe() constructor for something / NullObject" do
20
+ it "should have #Maybe() constructor for something / NullObject" do
23
21
  assert_equal NullObject, Maybe(nil).class
24
22
  assert_equal 42, Maybe(42)
25
23
  end
26
24
 
27
- should "Object have #Null() constructor always returning NullObject" do
25
+ it "should have #Null() constructor always returning NullObject" do
28
26
  assert_equal NullObject, Null().class
29
27
  end
30
28
  end # context Object
31
29
 
32
- context "NullObject" do
33
- setup do
34
- require 'y_support/null_object'
35
- end
36
-
37
- should "NullObject exist and comply" do
30
+ describe "NullObject" do
31
+ it "should NullObject exist and comply" do
38
32
  n = NullObject.new
39
- assert_equal [[], "#<NullObject>", 0.0, 0], [n.to_a, n.to_s, n.to_f, n.to_i]
33
+ [n.to_a, n.to_s, n.to_f, n.to_i].must_equal [ [], "#<NullObject>", 0.0, 0 ]
40
34
  assert_equal [false, true], [n.present?, n.empty?]
41
- assert_nothing_raised { NullObject.new.
42
- must_have_attr_reader( :recorded_messages ) }
35
+ NullObject.new.must_have_attr_reader( :recorded_messages )
43
36
  assert_respond_to NullObject.new, :arbitrary_message
44
37
  n = NullObject.new :x
45
38
  n.arbitrary_message( :a, :b ) { "hello" }
@@ -47,4 +40,4 @@ class NullObjectTest < Test::Unit::TestCase
47
40
  assert_equal "#<NullObject kokotina>", NullObject.new( :kokotina ).inspect
48
41
  end
49
42
  end # context NullObject
50
- end # class NullObjectTest
43
+ end
@@ -1,22 +1,21 @@
1
1
  #! /usr/bin/ruby
2
2
  #encoding: utf-8
3
3
 
4
- require 'test/unit'
5
- require 'shoulda'
4
+ require 'minitest/autorun'
6
5
 
7
- class RespondToTest < Test::Unit::TestCase
8
- context "Object" do
9
- setup do
10
- require 'y_support/respond_to'
11
- end
6
+ describe "y_support/typing" do
7
+ before do
8
+ require './../lib/y_support/respond_to'
9
+ end
12
10
 
13
- should "have RespondTo() constructor" do
11
+ describe Object do
12
+ it "should have RespondTo() constructor" do
14
13
  assert_equal RespondTo, RespondTo( :inspect ).class
15
14
  end
16
- end # context Object
15
+ end
17
16
 
18
- context "RespondTo" do
19
- should "work" do
17
+ describe "RespondTo" do
18
+ it "should work" do
20
19
  assert_respond_to( RespondTo.new(:hello), :=== )
21
20
  assert RespondTo.new(:each_char) === "arbitrary string"
22
21
  assert ! ( RespondTo.new(:each_char) === Object.new )
@@ -29,10 +28,10 @@ class RespondToTest < Test::Unit::TestCase
29
28
  when RespondTo.new(:improbab_method_name) then 1
30
29
  else false end
31
30
  end
32
- end # context RespondTo
31
+ end
33
32
 
34
- context "Symbol" do
35
- should "have Symbol#~@ for .respond_to? case statements" do
33
+ describe Symbol do
34
+ it "should have Symbol#~@ for .respond_to? case statements" do
36
35
  assert_kind_of RespondTo, ~:hello
37
36
  assert RespondTo(:<<) === "testing"
38
37
  assert case ?x
@@ -42,5 +41,5 @@ class RespondToTest < Test::Unit::TestCase
42
41
  when ~:improbab_method_name then 1
43
42
  else false end
44
43
  end
45
- end # context Symbol
46
- end # class RespondToTest
44
+ end
45
+ end