facets 2.2.1 → 2.3.0

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 (313) hide show
  1. data/CHANGES +6 -0
  2. data/NOTES +14 -1
  3. data/Rakefile +26 -0
  4. data/demo/bench/general/bench_calls.rb +74 -0
  5. data/demo/bench/general/bench_includes.rb +25 -0
  6. data/demo/bench/general/bench_methods.rb +17 -0
  7. data/demo/bench/general/bench_pathname.rb +24 -0
  8. data/demo/bench/general/bench_range.rb +64 -0
  9. data/demo/bench/general/bench_return.rb +56 -0
  10. data/demo/bench/general/bench_yeild.rb +75 -0
  11. data/lib/{more → class}/facets/association.rb +0 -0
  12. data/lib/{more → class}/facets/autoarray.rb +0 -0
  13. data/lib/{more → class}/facets/basicobject.rb +0 -0
  14. data/lib/{more → class}/facets/buildingblock.rb +0 -44
  15. data/lib/{more → class}/facets/cachedelegator.rb +3 -0
  16. data/lib/{more → class}/facets/coroutine.rb +0 -56
  17. data/lib/{more → class}/facets/dictionary.rb +0 -0
  18. data/lib/{more → class}/facets/downloader.rb +0 -0
  19. data/lib/{more → class}/facets/filelist.rb +0 -0
  20. data/lib/{more → class}/facets/fileshell.rb +0 -0
  21. data/lib/{more → class}/facets/hashbuilder.rb +0 -0
  22. data/lib/{more → class}/facets/heap.rb +0 -0
  23. data/lib/{more → class}/facets/infinity.rb +0 -46
  24. data/lib/{more → class}/facets/interval.rb +0 -0
  25. data/lib/{more → class}/facets/ioredirect.rb +0 -0
  26. data/lib/{more → class}/facets/linkedlist.rb +0 -42
  27. data/lib/{more → class}/facets/lrucache.rb +0 -23
  28. data/lib/{more → class}/facets/minitar.rb +0 -0
  29. data/lib/{more → class}/facets/nackclass.rb +0 -0
  30. data/lib/{more → class}/facets/nullclass.rb +0 -0
  31. data/lib/{more → class}/facets/opencascade.rb +0 -70
  32. data/lib/{more → class}/facets/opencollection.rb +0 -0
  33. data/lib/class/facets/openhash.rb +41 -0
  34. data/lib/{more → class}/facets/openobject.rb +0 -121
  35. data/lib/{more → class}/facets/orderedhash.rb +0 -0
  36. data/lib/{more → class}/facets/pathlist.rb +0 -0
  37. data/lib/{more → class}/facets/pool.rb +0 -0
  38. data/lib/{more → class}/facets/pqueue.rb +0 -0
  39. data/lib/{more → class}/facets/progressbar.rb +0 -0
  40. data/lib/{more → class}/facets/recorder.rb +0 -40
  41. data/lib/{more → class}/facets/reference.rb +0 -0
  42. data/lib/{more → class}/facets/rwdelegator.rb +0 -0
  43. data/lib/{more → class}/facets/semaphore.rb +0 -0
  44. data/lib/{more → class}/facets/syncarray.rb +0 -24
  45. data/lib/{more → class}/facets/synchash.rb +1 -25
  46. data/lib/{more → class}/facets/timer.rb +0 -62
  47. data/lib/{more → class}/facets/tuple.rb +0 -60
  48. data/lib/{more → class}/facets/version.rb +0 -0
  49. data/lib/core/facets/dir/multiglob.rb +20 -5
  50. data/lib/core/facets/enumerable/cartesian.rb +2 -2
  51. data/lib/core/facets/enumerable/combination.rb +9 -1
  52. data/lib/core/facets/kernel/object.rb +1 -1
  53. data/lib/{more → mixin}/facets/binreadable.rb +0 -62
  54. data/lib/{more → mixin}/facets/buildable.rb +0 -48
  55. data/lib/mixin/facets/cloneable.rb +90 -0
  56. data/lib/{more → mixin}/facets/enumerablepass.rb +0 -81
  57. data/lib/{more → mixin}/facets/expirable.rb +0 -0
  58. data/lib/{more → mixin}/facets/fileable.rb +0 -0
  59. data/lib/{more → mixin}/facets/instantiable.rb +0 -30
  60. data/lib/{more → mixin}/facets/multiton.rb +0 -0
  61. data/lib/{more → mixin}/facets/registerable.rb +0 -0
  62. data/lib/mixin/facets/tasksystem.rb +350 -0
  63. data/lib/{more → mixin}/facets/uninheritable.rb +1 -39
  64. data/lib/{more → mixin}/facets/validation.rb +0 -0
  65. data/lib/more/facets/arguments.rb +0 -66
  66. data/lib/more/facets/attributes.rb +0 -35
  67. data/lib/more/facets/bbcode.rb +1 -31
  68. data/lib/more/facets/bytes.rb +0 -80
  69. data/lib/more/facets/class_extension.rb +0 -66
  70. data/lib/more/facets/classmethods.rb +0 -64
  71. data/lib/more/facets/compare_on.rb +0 -52
  72. data/lib/more/facets/curry.rb +0 -29
  73. data/lib/more/facets/cut.rb +0 -27
  74. data/lib/more/facets/date.rb +0 -54
  75. data/lib/more/facets/dependency.rb +0 -70
  76. data/lib/more/facets/elementor.rb +0 -67
  77. data/lib/more/facets/getoptlong.rb +0 -30
  78. data/lib/more/facets/{hash_keyize.rb → hash/keyize.rb} +0 -0
  79. data/lib/more/facets/inheritor.rb +0 -150
  80. data/lib/more/facets/instantise.rb +0 -41
  81. data/lib/more/facets/let.rb +0 -20
  82. data/lib/more/facets/memoize.rb +0 -45
  83. data/lib/more/facets/multipliers.rb +0 -110
  84. data/lib/more/facets/ostruct.rb +0 -124
  85. data/lib/more/facets/random.rb +0 -153
  86. data/lib/more/facets/rbconfig.rb +55 -0
  87. data/lib/more/facets/set.rb +27 -0
  88. data/lib/more/facets/snapshot.rb +0 -30
  89. data/lib/more/facets/stylize.rb +0 -147
  90. data/lib/more/facets/times.rb +0 -98
  91. data/lib/more/facets/tracepoint.rb +194 -0
  92. data/lib/more/facets/typecast.rb +0 -63
  93. data/lib/more/facets/ziputils.rb +7 -0
  94. data/log/Changelog-0.txt +239 -0
  95. data/log/Changelog-1.txt +450 -0
  96. data/log/Changelog.txt +841 -0
  97. data/log/Fixme.txt +18 -0
  98. data/log/Testlog.txt +188 -0
  99. data/log/Todo.txt +326 -0
  100. data/meta/MANIFEST +1 -1
  101. data/meta/VERSION +1 -0
  102. data/meta/authors +48 -0
  103. data/meta/description +8 -0
  104. data/meta/project.yaml +11 -5
  105. data/task/install +4 -2
  106. data/task/rdoc +5 -0
  107. data/task/test +40 -0
  108. data/test/{unit → class}/test_association.rb +0 -0
  109. data/test/{unit → class}/test_autoarray.rb +0 -0
  110. data/test/{unit → class}/test_basicobject.rb +0 -0
  111. data/test/{unit → class}/test_buildingblock.rb +1 -0
  112. data/test/{unit → class}/test_coroutine.rb +0 -0
  113. data/test/{unit → class}/test_dictionary.rb +0 -0
  114. data/test/{unit → class}/test_infinity.rb +0 -0
  115. data/test/{unit → class}/test_interval.rb +0 -0
  116. data/test/{unit → class}/test_linkedlist.rb +1 -1
  117. data/test/{unit → class}/test_lrucache.rb +3 -0
  118. data/test/{unit → class}/test_opencascade.rb +0 -0
  119. data/test/{unit → class}/test_openobject.rb +0 -0
  120. data/test/{unit → class}/test_recorder.rb +0 -1
  121. data/test/{unit → class}/test_syncarray.rb +2 -4
  122. data/test/{unit → class}/test_synchash.rb +2 -4
  123. data/test/{unit → class}/test_timer.rb +0 -1
  124. data/test/{unit → class}/test_tuple.rb +0 -0
  125. data/test/{unit → core}/array/test_delete.rb +0 -0
  126. data/test/{unit → core}/array/test_indexable.rb +0 -0
  127. data/test/{unit → core}/array/test_merge.rb +0 -0
  128. data/test/{unit → core}/array/test_only.rb +0 -0
  129. data/test/{unit → core}/array/test_pad.rb +0 -0
  130. data/test/{unit → core}/array/test_rotate.rb +0 -0
  131. data/test/{unit → core}/array/test_select.rb +0 -0
  132. data/test/{unit → core}/array/test_stackable.rb +0 -0
  133. data/test/{unit/binding/test_cflow.rb → core/binding/test_caller.rb} +2 -2
  134. data/test/{unit → core}/binding/test_defined.rb +0 -0
  135. data/test/{unit → core}/binding/test_eval.rb +0 -0
  136. data/test/{unit → core}/binding/test_here.rb +0 -0
  137. data/test/{unit → core}/binding/test_self.rb +0 -0
  138. data/test/{unit → core}/binding/test_vars.rb +0 -0
  139. data/test/{unit → core}/class/test_descendents.rb +0 -0
  140. data/test/{unit → core}/class/test_initializer.rb +0 -0
  141. data/test/{unit → core}/class/test_remove_descendents.rb +0 -0
  142. data/test/{unit → core}/comparable/test_bound.rb +0 -0
  143. data/test/{unit → core}/comparable/test_cmp.rb +0 -0
  144. data/test/{unit → core}/dir/test_parent.rb +0 -0
  145. data/test/{unit → core}/dir/test_recurse.rb +0 -0
  146. data/test/{unit → core}/dir/test_traverse.rb +0 -0
  147. data/test/{unit → core}/enumerable/test_cartesian.rb +0 -0
  148. data/test/{unit → core}/enumerable/test_collect.rb +0 -0
  149. data/test/{unit → core}/enumerable/test_combination.rb +0 -0
  150. data/test/{unit → core}/enumerable/test_count.rb +0 -0
  151. data/test/{unit → core}/enumerable/test_each.rb +0 -0
  152. data/test/{unit → core}/enumerable/test_mash.rb +0 -0
  153. data/test/{unit → core}/enumerable/test_permutation.rb +0 -0
  154. data/test/{unit → core}/enumerable/test_probability.rb +0 -0
  155. data/test/{unit → core}/enumerable/test_split.rb +0 -0
  156. data/test/{unit → core}/exception/test_detail.rb +0 -0
  157. data/test/{unit → core}/file/test_null.rb +0 -0
  158. data/test/{unit → core}/file/test_read.rb +0 -0
  159. data/test/{unit → core}/file/test_sanitize.rb +0 -0
  160. data/test/{unit → core}/file/test_split_all.rb +0 -0
  161. data/test/{unit → core}/file/test_write.rb +0 -0
  162. data/test/{unit → core}/filetest/test_root.rb +0 -0
  163. data/test/{unit → core}/hash/test_alias.rb +0 -0
  164. data/test/{unit → core}/hash/test_at.rb +0 -0
  165. data/test/{unit → core}/hash/test_autonew.rb +0 -0
  166. data/test/core/hash/test_collate.rb +33 -0
  167. data/test/{unit → core}/hash/test_delete.rb +0 -0
  168. data/test/{unit → core}/hash/test_each_with_key.rb +0 -0
  169. data/test/{unit → core}/hash/test_has_keys.rb +0 -0
  170. data/test/{unit → core}/hash/test_insert.rb +0 -0
  171. data/test/{unit → core}/hash/test_inverse.rb +0 -0
  172. data/test/{unit → core}/hash/test_op.rb +0 -0
  173. data/test/{unit → core}/hash/test_rekey.rb +0 -0
  174. data/test/{unit → core}/hash/test_reverse_merge.rb +0 -0
  175. data/test/{unit → core}/hash/test_select.rb +0 -0
  176. data/test/{unit → core}/hash/test_swap.rb +0 -0
  177. data/test/{unit → core}/hash/test_traverse.rb +0 -0
  178. data/test/{unit → core}/hash/test_update.rb +0 -0
  179. data/test/{unit → core}/hash/test_weave.rb +0 -0
  180. data/test/{unit → core}/hash/test_zipnew.rb +0 -0
  181. data/test/{unit → core}/integer/test_bitmask.rb +0 -0
  182. data/test/{unit → core}/integer/test_factorial.rb +0 -0
  183. data/test/{unit → core}/integer/test_multiple.rb +0 -0
  184. data/test/{unit → core}/integer/test_of.rb +0 -0
  185. data/test/{unit → core}/kernel/test_callstack.rb +0 -0
  186. data/test/{unit → core}/kernel/test_constant.rb +0 -0
  187. data/test/{unit → core}/kernel/test_deepcopy.rb +0 -0
  188. data/test/{unit → core}/kernel/test_instance.rb +0 -0
  189. data/test/{unit → core}/kernel/test_metaid.rb +0 -0
  190. data/test/{unit → core}/kernel/test_object.rb +1 -1
  191. data/test/{unit → core}/kernel/test_populate.rb +0 -0
  192. data/test/{unit → core}/kernel/test_report.rb +0 -0
  193. data/test/{unit → core}/kernel/test_returning.rb +0 -0
  194. data/test/{unit → core}/kernel/test_silence.rb +0 -0
  195. data/test/{unit → core}/kernel/test_super.rb +0 -0
  196. data/test/{unit → core}/kernel/test_tap.rb +0 -0
  197. data/test/{unit → core}/kernel/test_val.rb +0 -0
  198. data/test/{unit → core}/kernel/test_withattr.rb +0 -0
  199. data/test/{unit → core}/matchdata/test_match.rb +0 -0
  200. data/test/{unit → core}/matchdata/test_matchset.rb +0 -0
  201. data/test/{unit → core}/module/test_abstract.rb +0 -0
  202. data/test/{unit → core}/module/test_alias.rb +0 -0
  203. data/test/{unit → core}/module/test_cattr.rb +0 -0
  204. data/test/{unit → core}/module/test_clone.rb +0 -0
  205. data/test/{unit → core}/module/test_include.rb +0 -0
  206. data/test/{unit → core}/module/test_modify.rb +0 -0
  207. data/test/{unit → core}/module/test_name.rb +0 -0
  208. data/test/{unit → core}/module/test_traits.rb +0 -0
  209. data/test/{unit → core}/numeric/test_round.rb +0 -0
  210. data/test/{unit → core}/proc/test_bind.rb +0 -0
  211. data/test/{unit → core}/proc/test_compose.rb +0 -0
  212. data/test/{unit → core}/range/test_combine.rb +0 -0
  213. data/test/{unit → core}/range/test_overlap.rb +0 -0
  214. data/test/{unit → core}/regexp/test_arity.rb +0 -0
  215. data/test/{unit → core}/string/test_align.rb +0 -0
  216. data/test/{unit → core}/string/test_blank.rb +0 -0
  217. data/test/{unit → core}/string/test_bracket.rb +0 -0
  218. data/test/{unit → core}/string/test_case.rb +0 -0
  219. data/test/{unit → core}/string/test_crypt.rb +0 -0
  220. data/test/{unit → core}/string/test_filter.rb +0 -0
  221. data/test/{unit → core}/string/test_indexable.rb +0 -0
  222. data/test/{unit → core}/string/test_interpolate.rb +0 -0
  223. data/test/{unit → core}/string/test_natcmp.rb +0 -0
  224. data/test/{unit → core}/string/test_nchar.rb +0 -0
  225. data/test/{unit → core}/string/test_op.rb +0 -0
  226. data/test/{unit → core}/string/test_partitions.rb +0 -0
  227. data/test/{unit → core}/string/test_range.rb +0 -0
  228. data/test/{unit → core}/string/test_regesc.rb +0 -0
  229. data/test/{unit → core}/string/test_scan.rb +0 -0
  230. data/test/{unit → core}/string/test_stackable.rb +0 -0
  231. data/test/{unit → core}/string/test_tabs.rb +0 -0
  232. data/test/{unit → core}/string/test_wrap.rb +0 -0
  233. data/test/{unit → core}/symbol/test_chomp.rb +0 -0
  234. data/test/{unit → core}/symbol/test_generate.rb +0 -0
  235. data/test/{unit → core}/symbol/test_not.rb +0 -0
  236. data/test/{unit → core}/symbol/test_shadow.rb +0 -0
  237. data/test/{unit → core}/symbol/test_succ.rb +0 -0
  238. data/test/{unit → core}/symbol/test_to_proc.rb +0 -0
  239. data/test/{unit → core}/test_1stclassmethod.rb +0 -0
  240. data/test/{unit → core}/test_boolean.rb +0 -0
  241. data/test/{unit → core}/test_conversion.rb +0 -0
  242. data/test/{unit → core}/test_functor.rb +0 -0
  243. data/test/{unit → core}/time/test_change.rb +0 -0
  244. data/test/{unit → core}/time/test_elapse.rb +0 -0
  245. data/test/{unit → core}/time/test_stamp.rb +0 -0
  246. data/test/{unit → mixin}/test_binreadable.rb +0 -0
  247. data/test/{unit → mixin}/test_buildable.rb +1 -0
  248. data/test/mixin/test_cloneable.rb +41 -0
  249. data/test/{unit → mixin}/test_enumerablepass.rb +0 -0
  250. data/test/{unit → mixin}/test_instantiable.rb +2 -1
  251. data/test/{unit → mixin}/test_multiton.rb +0 -0
  252. data/test/{unit → mixin}/test_uninheritable.rb +1 -2
  253. data/test/{unit → more/hash}/test_keyize.rb +1 -1
  254. data/test/{unit → more}/test_advice.rb +0 -0
  255. data/test/{unit → more}/test_annotations.rb +0 -0
  256. data/test/{unit → more}/test_ansicode.rb +0 -0
  257. data/test/{unit → more}/test_aop.rb +0 -0
  258. data/test/{unit → more}/test_arguments.rb +1 -0
  259. data/test/{unit → more}/test_attributes.rb +2 -2
  260. data/test/{unit → more}/test_bbcode.rb +1 -0
  261. data/test/{unit → more}/test_bytes.rb +1 -0
  262. data/test/{unit → more}/test_class_extension.rb +2 -1
  263. data/test/{unit → more}/test_classmethods.rb +2 -1
  264. data/test/{unit → more}/test_compare_on.rb +0 -1
  265. data/test/{unit → more}/test_continuation.rb +0 -0
  266. data/test/{unit → more}/test_crypt.rb +0 -0
  267. data/test/{unit → more}/test_curry.rb +1 -0
  268. data/test/{unit → more}/test_cut.rb +2 -1
  269. data/test/{unit → more}/test_date.rb +1 -1
  270. data/test/{unit → more}/test_dependency.rb +2 -2
  271. data/test/{unit → more}/test_elementor.rb +1 -1
  272. data/test/{unit → more}/test_getoptlong.rb +1 -0
  273. data/test/{unit → more}/test_inheritor.rb +1 -1
  274. data/test/{unit → more}/test_instantise.rb +2 -1
  275. data/test/{unit → more}/test_interface.rb +0 -0
  276. data/test/{unit → more}/test_let.rb +0 -1
  277. data/test/{unit → more}/test_memoize.rb +2 -3
  278. data/test/{unit → more}/test_multipliers.rb +1 -1
  279. data/test/{unit → more}/test_namespace.rb +0 -0
  280. data/test/{unit → more}/test_ostruct.rb +0 -0
  281. data/test/{unit → more}/test_overload.rb +0 -0
  282. data/test/{unit → more}/test_paramix.rb +0 -0
  283. data/test/{unit → more}/test_prototype.rb +0 -0
  284. data/test/more/test_random.rb +146 -0
  285. data/test/{unit → more}/test_snapshot.rb +0 -3
  286. data/test/{unit → more}/test_stylize.rb +1 -2
  287. data/test/{unit → more}/test_thread.rb +0 -0
  288. data/test/{unit → more}/test_times.rb +2 -2
  289. data/test/{unit → more}/test_typecast.rb +0 -3
  290. metadata +1117 -1098
  291. data/lib/more/facets/cloneable.rb +0 -75
  292. data/log/changelog.txt +0 -0
  293. data/meta/facets.roll +0 -4
  294. data/meta/google_ad.html +0 -15
  295. data/meta/icli.yaml +0 -17
  296. data/task/changes +0 -29
  297. data/task/clean +0 -17
  298. data/task/clobber/package +0 -10
  299. data/task/log +0 -17
  300. data/task/prepare +0 -7
  301. data/task/publish +0 -43
  302. data/task/release +0 -10
  303. data/task/stamp +0 -33
  304. data/task/stats +0 -138
  305. data/task/test/cross +0 -309
  306. data/task/test/each +0 -42
  307. data/task/test/load +0 -30
  308. data/task/test/pairs +0 -50
  309. data/task/test/solo +0 -294
  310. data/task/test/syntax +0 -31
  311. data/task/test/whole +0 -34
  312. data/test/unit/hash/test_collate.rb +0 -31
  313. data/test/unit/test_random.rb +0 -149
@@ -88,3 +88,6 @@ class Cache
88
88
  end
89
89
 
90
90
  end
91
+
92
+ CacheDelegator = Cache
93
+
@@ -118,59 +118,3 @@ class Coroutine
118
118
 
119
119
  end
120
120
 
121
-
122
-
123
- # _____ _
124
- # |_ _|__ ___| |_
125
- # | |/ _ \/ __| __|
126
- # | | __/\__ \ |_
127
- # |_|\___||___/\__|
128
- #
129
-
130
- =begin testing
131
-
132
- require 'test/unit'
133
-
134
- class TC_Coroutine < Test::Unit::TestCase
135
-
136
- def test_run
137
- assert_nothing_raised {
138
-
139
- count = 100
140
- input = (1..count).map { (rand * 10000).round.to_f / 100 }
141
-
142
- @producer = Coroutine.new do |me|
143
- loop do
144
- 1.upto(6) do
145
- me[:last_input] = input.shift
146
- me.resume(@printer)
147
- end
148
- input.shift # discard every seventh input number
149
- end
150
- end
151
-
152
- @printer = Coroutine.new do |me|
153
- loop do
154
- 1.upto(8) do
155
- me.resume(@producer)
156
- if @producer[:last_input]
157
- @producer[:last_input] = nil
158
- end
159
- me.resume(@controller)
160
- end
161
- end
162
- end
163
-
164
- @controller = Coroutine.new do |me|
165
- until input.empty? do
166
- me.resume(@printer)
167
- end
168
- end
169
- @controller.run
170
-
171
- }
172
- end
173
-
174
- end
175
-
176
- =end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -181,49 +181,3 @@ Inf = INFINITY
181
181
  PosInf = +INFINITY
182
182
  NegInf = -INFINITY
183
183
 
184
-
185
- # _____ _
186
- # |_ _|__ ___| |_
187
- # | |/ _ \/ __| __|
188
- # | | __/\__ \ |_
189
- # |_|\___||___/\__|
190
- #
191
-
192
- =begin testing
193
-
194
- require 'test/unit'
195
-
196
- class GeneralTest < Test::Unit::TestCase
197
-
198
- def test_pos
199
- assert_equal((1.0/0), INFINITY.to_f)
200
- assert_equal(1, INFINITY<=>5)
201
- assert_equal(1, INFINITY<=>"a")
202
- assert_equal("PosInf", INFINITY.to_s)
203
- end
204
-
205
- def test_neg
206
- assert_equal((-1.0/0), -INFINITY.to_f)
207
- assert_equal(-1, -INFINITY<=>5)
208
- assert_equal(-1, -INFINITY<=>"a")
209
- assert_equal("NegInf", (-INFINITY).to_s)
210
- end
211
-
212
- def test_ord
213
- assert_equal((-1.0/0), -INFINITY.to_f)
214
- assert_equal(-1, 5<=>INFINITY)
215
- assert_equal(1, 5<=>-INFINITY)
216
- end
217
-
218
- def test_eq
219
- assert_equal(Inf, Inf)
220
- assert_equal(-Inf, -Inf)
221
- assert_equal(PosInf, PosInf)
222
- assert_equal(NegInf, NegInf)
223
- assert_not_equal(NaN, NaN)
224
- end
225
-
226
- end
227
-
228
- =end
229
-
File without changes
File without changes
@@ -212,45 +212,3 @@ class LinkedList
212
212
 
213
213
  end
214
214
 
215
-
216
-
217
- =begin test
218
-
219
- require 'test/unit'
220
-
221
- class TC_LinkedList < Test::Unit::TestCase
222
-
223
- @cache
224
-
225
- def test_all
226
- ll = nil
227
- assert_nothing_raised('Failed while creating an LinkedList object.') { ll = LinkedList.new }
228
- assert_kind_of(LinkedList,ll,'Strangely, the created object does not appear to be an LinkedList.')
229
-
230
- assert_nothing_raised('Failed while pushing a value onto the linked list.') { ll.push 'a' }
231
- ll.push 'b'
232
- assert_nothing_raised('Failed while assigning a key/value to the linked list.') { ll['c'] = 3 }
233
- assert_equal(3,ll.first, 'First element in the linked list appears to be the wrong one.')
234
- assert_equal('b',ll.last, 'Last element in the linked list appears to be the wrong one.')
235
- assert_nothing_raised('Failed while unshifting a value onto the linked list.') { ll.unshift 'd' }
236
- assert_equal('d',ll.first, 'The prior unshift apparently failed.')
237
- assert_equal('a',ll['a'], 'Accessing an element by key failed.')
238
- assert_equal(4,ll.length, 'The length of the linked list appears to be incorrect.')
239
- d = nil
240
- assert_nothing_raised('Failed while deleting an element from the middle of the list.') { d = ll.delete('a') }
241
- assert_equal('a',d, 'The prior delete returned the wrong value for the deleted object.')
242
- assert_equal(3,ll.length, 'The length of the linked list appears to be incorrect following the prior deletion.')
243
- assert_nothing_raised('Failed while popping an element from the end of the list.') { d = ll.pop }
244
- assert_equal('b',d, 'The prior pop returned the wrong value.')
245
- assert_equal(2,ll.length, 'The length of the linked list appears to be incorrect following the prior pop.')
246
- assert_equal(['d','c'],ll.queue, 'The queue of keys for the list is incorrect.')
247
- assert_equal(['d',3],ll.to_a, 'Converting the list to an array (of values) seems to have failed.')
248
- expected = [['c',3],['d','d']]
249
- ll.each do |k,v|
250
- e = expected.pop
251
- assert_equal(e,[k,v], 'While iterates over the list via each(), the value from this iteration is not what was expected.')
252
- end
253
- end
254
- end
255
-
256
- =end
@@ -154,26 +154,3 @@ class LRUCache < Hash
154
154
 
155
155
  end
156
156
 
157
-
158
-
159
- # _____ _
160
- # |_ _|__ ___| |_
161
- # | |/ _ \/ __| __|
162
- # | | __/\__ \ |_
163
- # |_|\___||___/\__|
164
- #
165
-
166
- # TODO
167
-
168
- =begin testing
169
-
170
- require 'test/unit'
171
-
172
- class TC_LRUCache < Test::Unit::TestCase
173
-
174
- def test_01
175
- end
176
-
177
- end
178
-
179
- =end
File without changes
File without changes
File without changes
@@ -90,73 +90,3 @@ class OpenCascade < OpenObject
90
90
 
91
91
  end
92
92
 
93
-
94
- # _____ _
95
- # |_ _|__ ___| |_
96
- # | |/ _ \/ __| __|
97
- # | | __/\__ \ |_
98
- # |_|\___||___/\__|
99
- #
100
-
101
- =begin testing
102
-
103
- require 'test/unit'
104
-
105
- class TestOpenCascade1 < Test::Unit::TestCase
106
-
107
- def test_1_01
108
- o = OpenCascade[:a=>1,:b=>2]
109
- assert_equal( 1, o.a )
110
- assert_equal( 2, o.b )
111
- end
112
-
113
- def test_1_02
114
- o = OpenCascade[:a=>1,:b=>2,:c=>{:x=>9}]
115
- assert_equal( 9, o.c.x )
116
- end
117
-
118
- def test_1_03
119
- f0 = OpenCascade.new
120
- f0[:a] = 1
121
- assert_equal( [[:a,1]], f0.to_a )
122
- assert_equal( {:a=>1}, f0.to_h )
123
- end
124
-
125
- def test_1_04
126
- f0 = OpenCascade[:a=>1]
127
- f0[:b] = 2
128
- assert_equal( {:a=>1,:b=>2}, f0.to_h )
129
- end
130
- end
131
-
132
- class TestOpenCascade2 < Test::Unit::TestCase
133
-
134
- def test_02_001
135
- f0 = OpenCascade[:f0=>"f0"]
136
- h0 = { :h0=>"h0" }
137
- assert_equal( OpenCascade[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
138
- assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
139
- end
140
-
141
- def test_02_002
142
- f1 = OpenCascade[:f1=>"f1"]
143
- h1 = { :h1=>"h1" }
144
- f1.send(:update, h1)
145
- h1.update( f1 )
146
- assert_equal( OpenCascade[:f1=>"f1", :h1=>"h1"], f1 )
147
- assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
148
- end
149
- end
150
-
151
- class TestOpenCascade3 < Test::Unit::TestCase
152
-
153
- def test_01_001
154
- fo = OpenCascade.new
155
- 99.times{ |i| fo.__send__( "n#{i}=", 1 ) }
156
- 99.times{ |i|
157
- assert_equal( 1, fo.__send__( "n#{i}" ) )
158
- }
159
- end
160
- end
161
-
162
- =end
@@ -0,0 +1,41 @@
1
+ # TITLE:
2
+ #
3
+ # OpenHash
4
+ #
5
+ # SYNOPSIS:
6
+ #
7
+ # OpenHash is akin to an OpenStruct or an OpenObject,
8
+ # but it is much simplier in nature. It is a hash with
9
+ # an method_missing definition that routes to [] and []=.
10
+ #
11
+ # AUTHOR:
12
+ # - Trans
13
+
14
+ # = OpenHash
15
+ #
16
+ # OpenHash is akin to an OpenStruct or an OpenObject,
17
+ # but it is much simplier in nature. It is a hash with
18
+ # an method_missing definition that routes to [] and []=.
19
+
20
+ class OpenHash < Hash
21
+
22
+ # New OpenHash.
23
+
24
+ def initialize(data)
25
+ super()
26
+ update(data)
27
+ end
28
+
29
+ # Route get and set calls.
30
+
31
+ def method_missing(s, *a)
32
+ if s =~ /=$/
33
+ self[s] = a[0]
34
+ elsif a.empty?
35
+ self[s]
36
+ else
37
+ super
38
+ end
39
+ end
40
+
41
+ end
@@ -239,124 +239,3 @@ class Proc
239
239
  end
240
240
  end
241
241
 
242
-
243
- # _____ _
244
- # |_ _|__ ___| |_
245
- # | |/ _ \/ __| __|
246
- # | | __/\__ \ |_
247
- # |_|\___||___/\__|
248
- #
249
-
250
- =begin testing
251
-
252
- require 'test/unit'
253
-
254
- class TestOpenObject1 < Test::Unit::TestCase
255
-
256
- def test_1_01
257
- o = OpenObject.new
258
- assert( o.respond_to?(:key?) )
259
- end
260
-
261
- def test_1_02
262
- assert_instance_of( OpenObject, OpenObject[{}] )
263
- end
264
-
265
- def test_1_03
266
- f0 = OpenObject.new
267
- f0[:a] = 1
268
- #assert_equal( [1], f0.to_a )
269
- assert_equal( {:a=>1}, f0.to_h )
270
- end
271
-
272
- def test_1_04
273
- f0 = OpenObject[:a=>1]
274
- f0[:b] = 2
275
- assert_equal( {:a=>1,:b=>2}, f0.to_h )
276
- end
277
-
278
- def test_1_05
279
- f0 = OpenObject[:class=>1]
280
- assert_equal( 1, f0.class )
281
- end
282
- end
283
-
284
- class TestOpenObject2 < Test::Unit::TestCase
285
-
286
- def test_2_01
287
- f0 = OpenObject[:f0=>"f0"]
288
- h0 = { :h0=>"h0" }
289
- assert_equal( OpenObject[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
290
- assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
291
- end
292
-
293
- def test_2_02
294
- f1 = OpenObject[:f1=>"f1"]
295
- h1 = { :h1=>"h1" }
296
- f1.send(:update,h1)
297
- h1.update( f1 )
298
- assert_equal( OpenObject[:f1=>"f1", :h1=>"h1"], f1 )
299
- assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
300
- end
301
-
302
- def test_2_03
303
- o = OpenObject[:a=>1,:b=>{:x=>9}]
304
- assert_equal( 9, o[:b][:x] )
305
- assert_equal( 9, o.b[:x] )
306
- end
307
-
308
- def test_2_04
309
- o = OpenObject["a"=>1,"b"=>{:x=>9}]
310
- assert_equal( 1, o["a"] )
311
- assert_equal( 1, o[:a] )
312
- assert_equal( {:x=>9}, o["b"] )
313
- assert_equal( {:x=>9}, o[:b] )
314
- assert_equal( 9, o["b"][:x] )
315
- assert_equal( nil, o[:b]["x"] )
316
- end
317
-
318
- end
319
-
320
- class TestOpenObject3 < Test::Unit::TestCase
321
- def test_3_01
322
- fo = OpenObject.new
323
- 9.times{ |i| fo.send( "n#{i}=", 1 ) }
324
- 9.times{ |i|
325
- assert_equal( 1, fo.send( "n#{i}" ) )
326
- }
327
- end
328
- end
329
-
330
- class TestOpenObject4 < Test::Unit::TestCase
331
-
332
- def test_4_01
333
- ho = {}
334
- fo = OpenObject.new
335
- 5.times{ |i| ho["n#{i}".to_sym]=1 }
336
- 5.times{ |i| fo.send( "n#{i}=", 1 ) }
337
- assert_equal(ho, fo.to_h)
338
- end
339
-
340
- end
341
-
342
- class TestOpenObject5 < Test::Unit::TestCase
343
-
344
- def test_5_01
345
- p = lambda { |x|
346
- x.word = "Hello"
347
- }
348
- o = p.to_openobject
349
- assert_equal( "Hello", o.word )
350
- end
351
-
352
- def test_5_02
353
- p = lambda { |x|
354
- x.word = "Hello"
355
- }
356
- o = OpenObject[:a=>1,:b=>2]
357
- assert_instance_of( Proc, o.to_proc )
358
- end
359
-
360
- end
361
-
362
- =end