facets 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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