zucker 2 → 3

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.
Files changed (200) hide show
  1. data/CHANGELOG +12 -0
  2. data/README +4 -1
  3. data/Rakefile +17 -7
  4. data/lib/zucker.rb +7 -1
  5. data/lib/zucker/2/all.rb +2 -2
  6. data/lib/zucker/2/debug.rb +3 -3
  7. data/lib/zucker/2/default.rb +1 -1
  8. data/lib/zucker/3/D.rb +19 -0
  9. data/lib/zucker/3/alias_for.rb +19 -0
  10. data/lib/zucker/3/aliases.rb +28 -0
  11. data/lib/zucker/3/all.rb +6 -0
  12. data/lib/zucker/3/array.rb +23 -0
  13. data/lib/zucker/3/array2proc.rb +16 -0
  14. data/lib/zucker/3/binding.rb +25 -0
  15. data/lib/zucker/3/blank.rb +26 -0
  16. data/lib/zucker/3/class2proc.rb +10 -0
  17. data/lib/zucker/3/debug.rb +6 -0
  18. data/lib/zucker/3/default.rb +35 -0
  19. data/lib/zucker/3/egonil.rb +14 -0
  20. data/lib/zucker/3/enumerable.rb +12 -0
  21. data/lib/zucker/3/hash.rb +19 -0
  22. data/lib/zucker/3/hash2proc.rb +14 -0
  23. data/lib/zucker/3/info.rb +167 -0
  24. data/lib/zucker/3/iterate.rb +23 -0
  25. data/lib/zucker/3/ivars.rb +26 -0
  26. data/lib/zucker/3/kernel.rb +48 -0
  27. data/lib/zucker/3/mcopy.rb +8 -0
  28. data/lib/zucker/3/mm.rb +31 -0
  29. data/lib/zucker/3/not.rb +17 -0
  30. data/lib/zucker/3/regexp2proc.rb +10 -0
  31. data/lib/zucker/3/sandbox.rb +19 -0
  32. data/lib/zucker/3/square_brackets_for.rb +20 -0
  33. data/lib/zucker/3/string.rb +47 -0
  34. data/lib/zucker/3/tap.rb +9 -0
  35. data/lib/zucker/3/unary.rb +22 -0
  36. data/lib/zucker/3/union.rb +14 -0
  37. data/lib/zucker/alias_for.rb +19 -0
  38. data/lib/zucker/array.rb +8 -2
  39. data/lib/zucker/debug.rb +2 -0
  40. data/lib/zucker/default.rb +11 -1
  41. data/lib/zucker/info.rb +5 -2
  42. data/lib/zucker/kernel.rb +41 -11
  43. data/lib/zucker/mcopy.rb +0 -1
  44. data/lib/zucker/not.rb +17 -0
  45. data/lib/zucker/string.rb +24 -2
  46. data/lib/zucker/tap.rb +9 -0
  47. metadata +41 -160
  48. data/lib/zucker/1/desc/D.yaml +0 -23
  49. data/lib/zucker/1/desc/aliases.yaml +0 -16
  50. data/lib/zucker/1/desc/array.yaml +0 -14
  51. data/lib/zucker/1/desc/array2proc.yaml +0 -13
  52. data/lib/zucker/1/desc/binding.yaml +0 -10
  53. data/lib/zucker/1/desc/blank.yaml +0 -12
  54. data/lib/zucker/1/desc/class2proc.yaml +0 -12
  55. data/lib/zucker/1/desc/egonil.yaml +0 -17
  56. data/lib/zucker/1/desc/enumerable.yaml +0 -11
  57. data/lib/zucker/1/desc/hash.yaml +0 -12
  58. data/lib/zucker/1/desc/hash2proc.yaml +0 -11
  59. data/lib/zucker/1/desc/iterate.yaml +0 -17
  60. data/lib/zucker/1/desc/ivars.yaml +0 -20
  61. data/lib/zucker/1/desc/kernel.yaml +0 -13
  62. data/lib/zucker/1/desc/mcopy.yaml +0 -12
  63. data/lib/zucker/1/desc/mm.yaml +0 -12
  64. data/lib/zucker/1/desc/regexp2proc.yaml +0 -13
  65. data/lib/zucker/1/desc/sandbox.yaml +0 -14
  66. data/lib/zucker/1/desc/square_brackets_for.yaml +0 -23
  67. data/lib/zucker/1/desc/string.yaml +0 -13
  68. data/lib/zucker/1/desc/unary.yaml +0 -15
  69. data/lib/zucker/1/desc/union.yaml +0 -11
  70. data/lib/zucker/1/doc/meta.yaml +0 -4
  71. data/lib/zucker/1/doc/zucker_doc.html +0 -1286
  72. data/lib/zucker/1/doc/zucker_doc.rb +0 -493
  73. data/lib/zucker/1/spec/D_spec.rb +0 -27
  74. data/lib/zucker/1/spec/aliases_spec.rb +0 -34
  75. data/lib/zucker/1/spec/array2proc_spec.rb +0 -8
  76. data/lib/zucker/1/spec/array_spec.rb +0 -23
  77. data/lib/zucker/1/spec/binding_spec.rb +0 -6
  78. data/lib/zucker/1/spec/blank_spec.rb +0 -20
  79. data/lib/zucker/1/spec/class2proc_spec.rb +0 -9
  80. data/lib/zucker/1/spec/egonil_spec.rb +0 -30
  81. data/lib/zucker/1/spec/enumerable_spec.rb +0 -8
  82. data/lib/zucker/1/spec/hash2proc_spec.rb +0 -12
  83. data/lib/zucker/1/spec/hash_spec.rb +0 -10
  84. data/lib/zucker/1/spec/iterate_spec.rb +0 -54
  85. data/lib/zucker/1/spec/ivars_spec.rb +0 -20
  86. data/lib/zucker/1/spec/kernel_spec.rb +0 -34
  87. data/lib/zucker/1/spec/mcopy_spec.rb +0 -13
  88. data/lib/zucker/1/spec/mm_spec.rb +0 -6
  89. data/lib/zucker/1/spec/regexp2proc_spec.rb +0 -9
  90. data/lib/zucker/1/spec/sandbox_spec.rb +0 -7
  91. data/lib/zucker/1/spec/square_brackets_for_spec.rb +0 -59
  92. data/lib/zucker/1/spec/string_spec.rb +0 -29
  93. data/lib/zucker/1/spec/unary_spec.rb +0 -26
  94. data/lib/zucker/1/spec/union_spec.rb +0 -13
  95. data/lib/zucker/2/desc/D.yaml +0 -23
  96. data/lib/zucker/2/desc/aliases.yaml +0 -16
  97. data/lib/zucker/2/desc/array.yaml +0 -14
  98. data/lib/zucker/2/desc/array2proc.yaml +0 -17
  99. data/lib/zucker/2/desc/binding.yaml +0 -10
  100. data/lib/zucker/2/desc/blank.yaml +0 -10
  101. data/lib/zucker/2/desc/class2proc.yaml +0 -12
  102. data/lib/zucker/2/desc/egonil.yaml +0 -17
  103. data/lib/zucker/2/desc/enumerable.yaml +0 -11
  104. data/lib/zucker/2/desc/hash.yaml +0 -14
  105. data/lib/zucker/2/desc/hash2proc.yaml +0 -11
  106. data/lib/zucker/2/desc/info.yaml +0 -12
  107. data/lib/zucker/2/desc/iterate.yaml +0 -17
  108. data/lib/zucker/2/desc/ivars.yaml +0 -20
  109. data/lib/zucker/2/desc/kernel.yaml +0 -13
  110. data/lib/zucker/2/desc/mcopy.yaml +0 -12
  111. data/lib/zucker/2/desc/mm.yaml +0 -12
  112. data/lib/zucker/2/desc/regexp2proc.yaml +0 -13
  113. data/lib/zucker/2/desc/sandbox.yaml +0 -19
  114. data/lib/zucker/2/desc/square_brackets_for.yaml +0 -23
  115. data/lib/zucker/2/desc/string.yaml +0 -13
  116. data/lib/zucker/2/desc/unary.yaml +0 -15
  117. data/lib/zucker/2/desc/union.yaml +0 -11
  118. data/lib/zucker/2/doc/zucker_doc.html +0 -1494
  119. data/lib/zucker/2/doc/zucker_doc.rb +0 -498
  120. data/lib/zucker/2/spec/D_spec.rb +0 -35
  121. data/lib/zucker/2/spec/aliases_spec.rb +0 -13
  122. data/lib/zucker/2/spec/array2proc_spec.rb +0 -12
  123. data/lib/zucker/2/spec/array_spec.rb +0 -23
  124. data/lib/zucker/2/spec/binding_spec.rb +0 -8
  125. data/lib/zucker/2/spec/blank_spec.rb +0 -20
  126. data/lib/zucker/2/spec/class2proc_spec.rb +0 -9
  127. data/lib/zucker/2/spec/egonil_spec.rb +0 -30
  128. data/lib/zucker/2/spec/enumerable_spec.rb +0 -8
  129. data/lib/zucker/2/spec/hash2proc_spec.rb +0 -12
  130. data/lib/zucker/2/spec/hash_spec.rb +0 -17
  131. data/lib/zucker/2/spec/info_spec.rb +0 -8
  132. data/lib/zucker/2/spec/iterate_spec.rb +0 -54
  133. data/lib/zucker/2/spec/ivars_spec.rb +0 -20
  134. data/lib/zucker/2/spec/kernel_spec.rb +0 -28
  135. data/lib/zucker/2/spec/mcopy_spec.rb +0 -13
  136. data/lib/zucker/2/spec/mm_spec.rb +0 -8
  137. data/lib/zucker/2/spec/regexp2proc_spec.rb +0 -9
  138. data/lib/zucker/2/spec/sandbox_spec.rb +0 -26
  139. data/lib/zucker/2/spec/spec_helper.rb +0 -18
  140. data/lib/zucker/2/spec/square_brackets_for_spec.rb +0 -59
  141. data/lib/zucker/2/spec/string_spec.rb +0 -29
  142. data/lib/zucker/2/spec/unary_spec.rb +0 -26
  143. data/lib/zucker/2/spec/union_spec.rb +0 -15
  144. data/lib/zucker/desc/D.yaml +0 -23
  145. data/lib/zucker/desc/aliases.yaml +0 -16
  146. data/lib/zucker/desc/array.yaml +0 -14
  147. data/lib/zucker/desc/array2proc.yaml +0 -17
  148. data/lib/zucker/desc/binding.yaml +0 -10
  149. data/lib/zucker/desc/blank.yaml +0 -10
  150. data/lib/zucker/desc/class2proc.yaml +0 -12
  151. data/lib/zucker/desc/egonil.yaml +0 -17
  152. data/lib/zucker/desc/enumerable.yaml +0 -11
  153. data/lib/zucker/desc/hash.yaml +0 -14
  154. data/lib/zucker/desc/hash2proc.yaml +0 -11
  155. data/lib/zucker/desc/info.yaml +0 -12
  156. data/lib/zucker/desc/iterate.yaml +0 -17
  157. data/lib/zucker/desc/ivars.yaml +0 -20
  158. data/lib/zucker/desc/kernel.yaml +0 -13
  159. data/lib/zucker/desc/mcopy.yaml +0 -12
  160. data/lib/zucker/desc/mm.yaml +0 -12
  161. data/lib/zucker/desc/regexp2proc.yaml +0 -13
  162. data/lib/zucker/desc/sandbox.yaml +0 -19
  163. data/lib/zucker/desc/square_brackets_for.yaml +0 -23
  164. data/lib/zucker/desc/string.yaml +0 -13
  165. data/lib/zucker/desc/unary.yaml +0 -15
  166. data/lib/zucker/desc/union.yaml +0 -11
  167. data/lib/zucker/doc/zucker_doc.html +0 -1494
  168. data/lib/zucker/doc/zucker_doc.rb +0 -498
  169. data/lib/zucker/edge/ideas/args.rb +0 -22
  170. data/lib/zucker/edge/ideas/args.yaml +0 -19
  171. data/lib/zucker/edge/ideas/args_spec.rb +0 -19
  172. data/lib/zucker/edge/ideas/clone_deep.rb +0 -21
  173. data/lib/zucker/edge/ideas/clone_deep_spec.rb +0 -12
  174. data/lib/zucker/edge/ideas/dclone.yaml +0 -12
  175. data/lib/zucker/edge/ideas/hash.rb +0 -18
  176. data/lib/zucker/edge/ideas/require_directory.rb +0 -6
  177. data/lib/zucker/spec/D_spec.rb +0 -35
  178. data/lib/zucker/spec/aliases_spec.rb +0 -13
  179. data/lib/zucker/spec/array2proc_spec.rb +0 -12
  180. data/lib/zucker/spec/array_spec.rb +0 -23
  181. data/lib/zucker/spec/binding_spec.rb +0 -8
  182. data/lib/zucker/spec/blank_spec.rb +0 -20
  183. data/lib/zucker/spec/class2proc_spec.rb +0 -9
  184. data/lib/zucker/spec/egonil_spec.rb +0 -30
  185. data/lib/zucker/spec/enumerable_spec.rb +0 -8
  186. data/lib/zucker/spec/hash2proc_spec.rb +0 -12
  187. data/lib/zucker/spec/hash_spec.rb +0 -17
  188. data/lib/zucker/spec/info_spec.rb +0 -8
  189. data/lib/zucker/spec/iterate_spec.rb +0 -54
  190. data/lib/zucker/spec/ivars_spec.rb +0 -20
  191. data/lib/zucker/spec/kernel_spec.rb +0 -28
  192. data/lib/zucker/spec/mcopy_spec.rb +0 -13
  193. data/lib/zucker/spec/mm_spec.rb +0 -8
  194. data/lib/zucker/spec/regexp2proc_spec.rb +0 -9
  195. data/lib/zucker/spec/sandbox_spec.rb +0 -26
  196. data/lib/zucker/spec/spec_helper.rb +0 -18
  197. data/lib/zucker/spec/square_brackets_for_spec.rb +0 -59
  198. data/lib/zucker/spec/string_spec.rb +0 -29
  199. data/lib/zucker/spec/unary_spec.rb +0 -26
  200. data/lib/zucker/spec/union_spec.rb +0 -15
@@ -1,27 +0,0 @@
1
- require 'D'
2
-
3
- describe 'Object#D' do
4
-
5
- let :a do
6
- [ 1, "1", 2..5, [], {:hallo => :du}, nil, true ]
7
- end
8
-
9
- it 'should not change the object"s value' do
10
- a.each{ |e|
11
- (e.D).should == e
12
- }
13
- end
14
-
15
- it "should puts .inspect if no block is given (and not change the object's value)" do
16
- # a.each{ |e|
17
- # (e.D).should == e
18
- # }
19
- end
20
-
21
- it "should puts the block if it is given (and not change the object's value)" do
22
- a.each{ |e|
23
- (e.D{|value| "This is a: #{value}"}).should == e
24
- }
25
- end
26
- end
27
-
@@ -1,34 +0,0 @@
1
- require 'aliases'
2
-
3
- describe '(aliases)' do
4
- it 'should create these aliases [ sorry, no real spec for this one :P ] ' do
5
- # alias is_an? is_a?
6
-
7
- # module Enumerable
8
- # alias with zip
9
- # alias % zip
10
- # end
11
-
12
- # class Array
13
- # alias ** product
14
- # end
15
-
16
- # class Hash
17
- # alias + merge
18
- # end
19
-
20
- # class Binding
21
- # #alias [] eval
22
- # def [](expr)
23
- # self.eval "#{expr}"
24
- # end
25
- # end
26
-
27
- end
28
-
29
- it 'should define these constants' do
30
- Infinity.finite?.should == false
31
- NaN.nan?.should == true
32
- end
33
- end
34
-
@@ -1,8 +0,0 @@
1
- require 'array2proc'
2
-
3
- describe 'Array#to_proc' do
4
- it 'should call the method of the first symbol, using the remaining elements as paramaters' do
5
- [1,2,3,4].map( &[:to_s, 2] ).should == ["1", "10", "11", "100"]
6
- end
7
- end
8
-
@@ -1,23 +0,0 @@
1
- require 'array'
2
-
3
- describe 'Array#^' do
4
- it 'should do an exclusive or' do
5
- a = [1,2,3,4]
6
- b = [3,4,5,6]
7
- (a^b).should == [1,2,5,6]
8
- end
9
- end
10
-
11
- describe 'Array#sum' do
12
- it 'should sum the array' do
13
- [1,2,3,4,5].sum.should == 15
14
- %w|More Ruby|.sum.should == 'MoreRuby'
15
- end
16
- end
17
-
18
- describe 'Array#chrs' do
19
- it 'should convert the array to a string, using each element as ord value for the char' do
20
- [72, 97, 108, 108, 111].chrs.should == 'Hallo'
21
- end
22
- end
23
-
@@ -1,6 +0,0 @@
1
- require 'binding'
2
-
3
- describe 'Binding#inspect' do
4
- it 'should output the current environment'
5
- end
6
-
@@ -1,20 +0,0 @@
1
- require 'blank'
2
-
3
- describe 'Object#blank?' do
4
- it 'should be blank for blank values' do
5
- blank_values = [ nil, false, '', ' ', " \n\t \r ", [], {}, // ]
6
-
7
- blank_values.each{ |blank|
8
- blank.blank?.should == true
9
- }
10
- end
11
-
12
- it 'should not be blank for non blank values' do
13
- present_values = [ Object.new, true, 0, 1, 'a', [nil], { nil => nil } ]
14
-
15
- present_values.each{ |present|
16
- present.blank?.should == false
17
- }
18
- end
19
- end
20
-
@@ -1,9 +0,0 @@
1
- require 'class2proc'
2
- require 'set'
3
-
4
- describe 'Class#to_proc' do
5
- it 'should create new instances of the class' do
6
- [ [1,2],[3,5,6,7,3] ].map(&Set).should == [ Set[1,2], Set[5,6,7,3] ]
7
- end
8
- end
9
-
@@ -1,30 +0,0 @@
1
- require 'egonil'
2
-
3
- describe 'egonil' do
4
- it 'should not raise nil exceptions in the block' do
5
- proc do
6
- egonil{ nil.some_methods.that[:do].not.exist }
7
- end.should_not raise_exception
8
- end
9
-
10
- it 'should return the nil_value if given' do
11
- egonil(9){ nil.some_methods.that[:do].not.exist }.should == 9
12
- end
13
-
14
- it 'should restore default behaviour after the block' do
15
- proc do
16
- egonil{ nil.some_methods.that[:do].not.exist }
17
- end.should_not raise_exception
18
-
19
- proc do
20
- nil.a_method
21
- end.should raise_exception NoMethodError
22
- end
23
-
24
- it 'raise NoMethodError for non-nil objects' do
25
- proc do
26
- egonil{ 5.a_method }
27
- end.should raise_exception NoMethodError
28
- end
29
- end
30
-
@@ -1,8 +0,0 @@
1
- require 'enumerable'
2
-
3
- describe 'Enumerable#mash' do
4
- it 'should "map" a hash' do
5
- [1,2,3].mash{|e| [e, e.to_s] }.should == {1=>'1',2=>'2',3=>'3',}
6
- end
7
- end
8
-
@@ -1,12 +0,0 @@
1
- require 'hash2proc'
2
-
3
- describe 'Hash#to_proc' do
4
- it 'should run the proc given in the value for a key in the hash' do
5
- [1,2,3,4].map(&{
6
- 4 => :to_s,
7
- # 3 => [:to_s, 2] # "11" => if array2proc is used
8
- 2 => lambda {|e| e + 1000}
9
- }).should == [1, 1002, 3, "4"]
10
- end
11
- end
12
-
@@ -1,10 +0,0 @@
1
- require 'hash'
2
-
3
- describe 'Hash.zip' do
4
- it 'should zip together both given enumerables and take them as key=>values for a new hash'
5
- end
6
-
7
- describe 'Hash#<<' do
8
- it 'should append new elements to the hash'
9
- end
10
-
@@ -1,54 +0,0 @@
1
- require 'iterate'
2
-
3
- describe 'Object#iterate' do
4
- let :a do [1, 2, 3] end
5
- let :b do %w|a b c d| end
6
- let :res do Hash.new {[]} end
7
-
8
- it 'should behave like Enumerable#each for a single argument' do
9
- iterate a do |ele|
10
- res[:iter] << ele
11
- end
12
-
13
- a.each do |ele|
14
- res[:each] << ele
15
- end
16
-
17
- res[:iter].should == res[:each]
18
- end
19
-
20
- it 'should pass the right params to the block' do
21
- res = Hash.new {[]} # TODO: why?
22
- res[:iter_a_b] = [] # ....
23
- res[:iter_b_a] = [] # ....
24
-
25
-
26
- iterate a, b do |e,f|
27
- res[:iter_a_b] << [e, f]
28
- # p res[:iter_a_b], e, f
29
- end
30
-
31
- res[:iter_a_b].should == [
32
- [1, 'a'],
33
- [2, 'b'],
34
- [3, 'c'],
35
- [nil, 'd'],
36
- ]
37
-
38
- iterate b, a do |e,f|
39
- res[:iter_b_a] << [e, f]
40
- end
41
-
42
- res[:iter_b_a].should == [
43
- ['a', 1],
44
- ['b', 2],
45
- ['c', 3],
46
- ['d', nil],
47
- ]
48
-
49
- end
50
-
51
- it 'should return enumerators if no block is applied' do
52
- end
53
- end
54
-
@@ -1,20 +0,0 @@
1
- require 'ivars'
2
-
3
- describe 'instance_variables_from' do
4
- it 'should tansform the given parameter to instance variables' do
5
- def a_method(a = 1, b = 2)
6
- instance_variables_from binding # assigns @a and @b
7
-
8
- params = {:c => 3, :d => 4}
9
- ivars params # # assigns @c and @d
10
- end
11
-
12
- a_method
13
- @a.should == 1
14
- @b.should == 2
15
- @c.should == 3
16
- @d.should == 4
17
-
18
- end
19
- end
20
-
@@ -1,34 +0,0 @@
1
- require 'kernel'
2
-
3
- describe 'activate_warnings!' do
4
- it 'should set $VERBOSE to true' do
5
- activate_warnings!
6
- $VERBOSE.should == true
7
- end
8
- end
9
-
10
- describe 'deactivate_warnings!' do
11
- it 'should set $VERBOSE to false' do
12
- deactivate_warnings!
13
- $VERBOSE.should == false
14
- end
15
- end
16
-
17
- describe 'warnings_activated?' do
18
- it 'should return $VERBOSE' do
19
- warnings_activated?.should == $VERBOSE
20
- end
21
- end
22
-
23
- describe 'library?' do
24
- it 'should return false if the file is invoked directly' do
25
- library?.should == ( __FILE__ != $PROGRAM_NAME )
26
- end
27
- end
28
-
29
- describe 'ignore_sigint!' do
30
- it 'should catch ctrl+c signals' do
31
- # ...
32
- end
33
- end
34
-
@@ -1,13 +0,0 @@
1
- require 'mcopy'
2
-
3
- describe 'Object#mcopy' do
4
- it 'create a (deep) copy via marshalling' do
5
- a = %w[hello world]
6
- b = a.mcopy
7
- b.should == a
8
-
9
- b[0][1,1] = ''
10
- b.should_not == a
11
- end
12
- end
13
-
@@ -1,6 +0,0 @@
1
- require 'mm'
2
-
3
- describe 'Object#method_list' do
4
- it 'should display an ordered method list'
5
- end
6
-
@@ -1,9 +0,0 @@
1
- require 'regexp2proc'
2
-
3
- describe 'Regexp#to_proc' do
4
- it 'should match the regex' do
5
- %w|just another string array|.map( &/[jy]/).should == ["j", nil, nil, "y"]
6
- %w|just another string array|.select( &/[jy]/).should == ["just", "array"]
7
- end
8
- end
9
-
@@ -1,7 +0,0 @@
1
- require 'sandbox'
2
-
3
- describe 'sandbox' do
4
- it 'should throw a SecurityError if bad commands are issued'
5
- it 'should run the lambda passed as first parameter for errors, if it is given'
6
- end
7
-
@@ -1,59 +0,0 @@
1
- require 'square_brackets_for'
2
-
3
- describe 'square_brackets_for' do
4
-
5
- before do
6
- class Klass
7
- def initialize
8
- @var = {
9
- :a_key => 1,
10
- :another_one => 2,
11
- }
12
- end
13
-
14
- @eigenvar = {
15
- :a_key => 99
16
- }
17
- end
18
- end
19
-
20
- it 'should define a [] getter (not a setter) for an instance var, if the second parameter is false' do
21
-
22
- class Klass
23
- square_brackets_for :var, nil
24
- end
25
-
26
- a = Klass.new
27
- a[:a_key].should == 1
28
-
29
- proc do
30
- a[:this_is] = 'not possible'
31
- end.should raise_exception NoMethodError
32
- end
33
-
34
- it 'should define [] and []= for accessing an instance variable' do
35
-
36
- class Klass
37
- square_brackets_for :var
38
- end
39
-
40
- a = Klass.new
41
- a[:a_key].should == 1
42
-
43
- a[:this_is] = 'useful'
44
- a[:this_is].should == 'useful'
45
- end
46
-
47
- it 'should also work for class-instance variables' do
48
-
49
- class Klass
50
- class << Klass
51
- square_brackets_for :eigenvar
52
- end
53
- end
54
-
55
- Klass[:a_key].should == 99
56
- end
57
-
58
- end
59
-
@@ -1,29 +0,0 @@
1
- require 'string'
2
-
3
- describe 'String#^' do
4
- it 'should give C-like substring access to strings' do
5
- string = 'Theoretische Informatik ist voll geil!'
6
-
7
- (string|0).should == 'Theoretische Informatik ist voll geil!'
8
- (string|1).should == 'heoretische Informatik ist voll geil!'
9
- (string|13).should == 'Informatik ist voll geil!'
10
- (string|-1).should == 'Theoretische Informatik ist voll geil'
11
- (string|38).should == ''
12
- (string|99).should == nil
13
- end
14
- end
15
-
16
- describe 'String#lchomp' do
17
- it 'should chomp on the left side' do
18
- string = 'Theoretische Informatik ist voll geil!'
19
- string.lchomp('T').should == 'heoretische Informatik ist voll geil!'
20
- end
21
- end
22
-
23
- describe 'String#ords' do
24
- it 'should unpack characters' do
25
- string = 'Theoretische Informatik ist voll geil!'
26
- string.ords.should == [84, 104, 101, 111, 114, 101, 116, 105, 115, 99, 104, 101, 32, 73, 110, 102, 111, 114, 109, 97, 116, 105, 107, 32, 105, 115, 116, 32, 118, 111, 108, 108, 32, 103, 101, 105, 108, 33]
27
- end
28
- end
29
-