facets 2.2.1 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +6 -0
- data/NOTES +14 -1
- data/Rakefile +26 -0
- data/demo/bench/general/bench_calls.rb +74 -0
- data/demo/bench/general/bench_includes.rb +25 -0
- data/demo/bench/general/bench_methods.rb +17 -0
- data/demo/bench/general/bench_pathname.rb +24 -0
- data/demo/bench/general/bench_range.rb +64 -0
- data/demo/bench/general/bench_return.rb +56 -0
- data/demo/bench/general/bench_yeild.rb +75 -0
- data/lib/{more → class}/facets/association.rb +0 -0
- data/lib/{more → class}/facets/autoarray.rb +0 -0
- data/lib/{more → class}/facets/basicobject.rb +0 -0
- data/lib/{more → class}/facets/buildingblock.rb +0 -44
- data/lib/{more → class}/facets/cachedelegator.rb +3 -0
- data/lib/{more → class}/facets/coroutine.rb +0 -56
- data/lib/{more → class}/facets/dictionary.rb +0 -0
- data/lib/{more → class}/facets/downloader.rb +0 -0
- data/lib/{more → class}/facets/filelist.rb +0 -0
- data/lib/{more → class}/facets/fileshell.rb +0 -0
- data/lib/{more → class}/facets/hashbuilder.rb +0 -0
- data/lib/{more → class}/facets/heap.rb +0 -0
- data/lib/{more → class}/facets/infinity.rb +0 -46
- data/lib/{more → class}/facets/interval.rb +0 -0
- data/lib/{more → class}/facets/ioredirect.rb +0 -0
- data/lib/{more → class}/facets/linkedlist.rb +0 -42
- data/lib/{more → class}/facets/lrucache.rb +0 -23
- data/lib/{more → class}/facets/minitar.rb +0 -0
- data/lib/{more → class}/facets/nackclass.rb +0 -0
- data/lib/{more → class}/facets/nullclass.rb +0 -0
- data/lib/{more → class}/facets/opencascade.rb +0 -70
- data/lib/{more → class}/facets/opencollection.rb +0 -0
- data/lib/class/facets/openhash.rb +41 -0
- data/lib/{more → class}/facets/openobject.rb +0 -121
- data/lib/{more → class}/facets/orderedhash.rb +0 -0
- data/lib/{more → class}/facets/pathlist.rb +0 -0
- data/lib/{more → class}/facets/pool.rb +0 -0
- data/lib/{more → class}/facets/pqueue.rb +0 -0
- data/lib/{more → class}/facets/progressbar.rb +0 -0
- data/lib/{more → class}/facets/recorder.rb +0 -40
- data/lib/{more → class}/facets/reference.rb +0 -0
- data/lib/{more → class}/facets/rwdelegator.rb +0 -0
- data/lib/{more → class}/facets/semaphore.rb +0 -0
- data/lib/{more → class}/facets/syncarray.rb +0 -24
- data/lib/{more → class}/facets/synchash.rb +1 -25
- data/lib/{more → class}/facets/timer.rb +0 -62
- data/lib/{more → class}/facets/tuple.rb +0 -60
- data/lib/{more → class}/facets/version.rb +0 -0
- data/lib/core/facets/dir/multiglob.rb +20 -5
- data/lib/core/facets/enumerable/cartesian.rb +2 -2
- data/lib/core/facets/enumerable/combination.rb +9 -1
- data/lib/core/facets/kernel/object.rb +1 -1
- data/lib/{more → mixin}/facets/binreadable.rb +0 -62
- data/lib/{more → mixin}/facets/buildable.rb +0 -48
- data/lib/mixin/facets/cloneable.rb +90 -0
- data/lib/{more → mixin}/facets/enumerablepass.rb +0 -81
- data/lib/{more → mixin}/facets/expirable.rb +0 -0
- data/lib/{more → mixin}/facets/fileable.rb +0 -0
- data/lib/{more → mixin}/facets/instantiable.rb +0 -30
- data/lib/{more → mixin}/facets/multiton.rb +0 -0
- data/lib/{more → mixin}/facets/registerable.rb +0 -0
- data/lib/mixin/facets/tasksystem.rb +350 -0
- data/lib/{more → mixin}/facets/uninheritable.rb +1 -39
- data/lib/{more → mixin}/facets/validation.rb +0 -0
- data/lib/more/facets/arguments.rb +0 -66
- data/lib/more/facets/attributes.rb +0 -35
- data/lib/more/facets/bbcode.rb +1 -31
- data/lib/more/facets/bytes.rb +0 -80
- data/lib/more/facets/class_extension.rb +0 -66
- data/lib/more/facets/classmethods.rb +0 -64
- data/lib/more/facets/compare_on.rb +0 -52
- data/lib/more/facets/curry.rb +0 -29
- data/lib/more/facets/cut.rb +0 -27
- data/lib/more/facets/date.rb +0 -54
- data/lib/more/facets/dependency.rb +0 -70
- data/lib/more/facets/elementor.rb +0 -67
- data/lib/more/facets/getoptlong.rb +0 -30
- data/lib/more/facets/{hash_keyize.rb → hash/keyize.rb} +0 -0
- data/lib/more/facets/inheritor.rb +0 -150
- data/lib/more/facets/instantise.rb +0 -41
- data/lib/more/facets/let.rb +0 -20
- data/lib/more/facets/memoize.rb +0 -45
- data/lib/more/facets/multipliers.rb +0 -110
- data/lib/more/facets/ostruct.rb +0 -124
- data/lib/more/facets/random.rb +0 -153
- data/lib/more/facets/rbconfig.rb +55 -0
- data/lib/more/facets/set.rb +27 -0
- data/lib/more/facets/snapshot.rb +0 -30
- data/lib/more/facets/stylize.rb +0 -147
- data/lib/more/facets/times.rb +0 -98
- data/lib/more/facets/tracepoint.rb +194 -0
- data/lib/more/facets/typecast.rb +0 -63
- data/lib/more/facets/ziputils.rb +7 -0
- data/log/Changelog-0.txt +239 -0
- data/log/Changelog-1.txt +450 -0
- data/log/Changelog.txt +841 -0
- data/log/Fixme.txt +18 -0
- data/log/Testlog.txt +188 -0
- data/log/Todo.txt +326 -0
- data/meta/MANIFEST +1 -1
- data/meta/VERSION +1 -0
- data/meta/authors +48 -0
- data/meta/description +8 -0
- data/meta/project.yaml +11 -5
- data/task/install +4 -2
- data/task/rdoc +5 -0
- data/task/test +40 -0
- data/test/{unit → class}/test_association.rb +0 -0
- data/test/{unit → class}/test_autoarray.rb +0 -0
- data/test/{unit → class}/test_basicobject.rb +0 -0
- data/test/{unit → class}/test_buildingblock.rb +1 -0
- data/test/{unit → class}/test_coroutine.rb +0 -0
- data/test/{unit → class}/test_dictionary.rb +0 -0
- data/test/{unit → class}/test_infinity.rb +0 -0
- data/test/{unit → class}/test_interval.rb +0 -0
- data/test/{unit → class}/test_linkedlist.rb +1 -1
- data/test/{unit → class}/test_lrucache.rb +3 -0
- data/test/{unit → class}/test_opencascade.rb +0 -0
- data/test/{unit → class}/test_openobject.rb +0 -0
- data/test/{unit → class}/test_recorder.rb +0 -1
- data/test/{unit → class}/test_syncarray.rb +2 -4
- data/test/{unit → class}/test_synchash.rb +2 -4
- data/test/{unit → class}/test_timer.rb +0 -1
- data/test/{unit → class}/test_tuple.rb +0 -0
- data/test/{unit → core}/array/test_delete.rb +0 -0
- data/test/{unit → core}/array/test_indexable.rb +0 -0
- data/test/{unit → core}/array/test_merge.rb +0 -0
- data/test/{unit → core}/array/test_only.rb +0 -0
- data/test/{unit → core}/array/test_pad.rb +0 -0
- data/test/{unit → core}/array/test_rotate.rb +0 -0
- data/test/{unit → core}/array/test_select.rb +0 -0
- data/test/{unit → core}/array/test_stackable.rb +0 -0
- data/test/{unit/binding/test_cflow.rb → core/binding/test_caller.rb} +2 -2
- data/test/{unit → core}/binding/test_defined.rb +0 -0
- data/test/{unit → core}/binding/test_eval.rb +0 -0
- data/test/{unit → core}/binding/test_here.rb +0 -0
- data/test/{unit → core}/binding/test_self.rb +0 -0
- data/test/{unit → core}/binding/test_vars.rb +0 -0
- data/test/{unit → core}/class/test_descendents.rb +0 -0
- data/test/{unit → core}/class/test_initializer.rb +0 -0
- data/test/{unit → core}/class/test_remove_descendents.rb +0 -0
- data/test/{unit → core}/comparable/test_bound.rb +0 -0
- data/test/{unit → core}/comparable/test_cmp.rb +0 -0
- data/test/{unit → core}/dir/test_parent.rb +0 -0
- data/test/{unit → core}/dir/test_recurse.rb +0 -0
- data/test/{unit → core}/dir/test_traverse.rb +0 -0
- data/test/{unit → core}/enumerable/test_cartesian.rb +0 -0
- data/test/{unit → core}/enumerable/test_collect.rb +0 -0
- data/test/{unit → core}/enumerable/test_combination.rb +0 -0
- data/test/{unit → core}/enumerable/test_count.rb +0 -0
- data/test/{unit → core}/enumerable/test_each.rb +0 -0
- data/test/{unit → core}/enumerable/test_mash.rb +0 -0
- data/test/{unit → core}/enumerable/test_permutation.rb +0 -0
- data/test/{unit → core}/enumerable/test_probability.rb +0 -0
- data/test/{unit → core}/enumerable/test_split.rb +0 -0
- data/test/{unit → core}/exception/test_detail.rb +0 -0
- data/test/{unit → core}/file/test_null.rb +0 -0
- data/test/{unit → core}/file/test_read.rb +0 -0
- data/test/{unit → core}/file/test_sanitize.rb +0 -0
- data/test/{unit → core}/file/test_split_all.rb +0 -0
- data/test/{unit → core}/file/test_write.rb +0 -0
- data/test/{unit → core}/filetest/test_root.rb +0 -0
- data/test/{unit → core}/hash/test_alias.rb +0 -0
- data/test/{unit → core}/hash/test_at.rb +0 -0
- data/test/{unit → core}/hash/test_autonew.rb +0 -0
- data/test/core/hash/test_collate.rb +33 -0
- data/test/{unit → core}/hash/test_delete.rb +0 -0
- data/test/{unit → core}/hash/test_each_with_key.rb +0 -0
- data/test/{unit → core}/hash/test_has_keys.rb +0 -0
- data/test/{unit → core}/hash/test_insert.rb +0 -0
- data/test/{unit → core}/hash/test_inverse.rb +0 -0
- data/test/{unit → core}/hash/test_op.rb +0 -0
- data/test/{unit → core}/hash/test_rekey.rb +0 -0
- data/test/{unit → core}/hash/test_reverse_merge.rb +0 -0
- data/test/{unit → core}/hash/test_select.rb +0 -0
- data/test/{unit → core}/hash/test_swap.rb +0 -0
- data/test/{unit → core}/hash/test_traverse.rb +0 -0
- data/test/{unit → core}/hash/test_update.rb +0 -0
- data/test/{unit → core}/hash/test_weave.rb +0 -0
- data/test/{unit → core}/hash/test_zipnew.rb +0 -0
- data/test/{unit → core}/integer/test_bitmask.rb +0 -0
- data/test/{unit → core}/integer/test_factorial.rb +0 -0
- data/test/{unit → core}/integer/test_multiple.rb +0 -0
- data/test/{unit → core}/integer/test_of.rb +0 -0
- data/test/{unit → core}/kernel/test_callstack.rb +0 -0
- data/test/{unit → core}/kernel/test_constant.rb +0 -0
- data/test/{unit → core}/kernel/test_deepcopy.rb +0 -0
- data/test/{unit → core}/kernel/test_instance.rb +0 -0
- data/test/{unit → core}/kernel/test_metaid.rb +0 -0
- data/test/{unit → core}/kernel/test_object.rb +1 -1
- data/test/{unit → core}/kernel/test_populate.rb +0 -0
- data/test/{unit → core}/kernel/test_report.rb +0 -0
- data/test/{unit → core}/kernel/test_returning.rb +0 -0
- data/test/{unit → core}/kernel/test_silence.rb +0 -0
- data/test/{unit → core}/kernel/test_super.rb +0 -0
- data/test/{unit → core}/kernel/test_tap.rb +0 -0
- data/test/{unit → core}/kernel/test_val.rb +0 -0
- data/test/{unit → core}/kernel/test_withattr.rb +0 -0
- data/test/{unit → core}/matchdata/test_match.rb +0 -0
- data/test/{unit → core}/matchdata/test_matchset.rb +0 -0
- data/test/{unit → core}/module/test_abstract.rb +0 -0
- data/test/{unit → core}/module/test_alias.rb +0 -0
- data/test/{unit → core}/module/test_cattr.rb +0 -0
- data/test/{unit → core}/module/test_clone.rb +0 -0
- data/test/{unit → core}/module/test_include.rb +0 -0
- data/test/{unit → core}/module/test_modify.rb +0 -0
- data/test/{unit → core}/module/test_name.rb +0 -0
- data/test/{unit → core}/module/test_traits.rb +0 -0
- data/test/{unit → core}/numeric/test_round.rb +0 -0
- data/test/{unit → core}/proc/test_bind.rb +0 -0
- data/test/{unit → core}/proc/test_compose.rb +0 -0
- data/test/{unit → core}/range/test_combine.rb +0 -0
- data/test/{unit → core}/range/test_overlap.rb +0 -0
- data/test/{unit → core}/regexp/test_arity.rb +0 -0
- data/test/{unit → core}/string/test_align.rb +0 -0
- data/test/{unit → core}/string/test_blank.rb +0 -0
- data/test/{unit → core}/string/test_bracket.rb +0 -0
- data/test/{unit → core}/string/test_case.rb +0 -0
- data/test/{unit → core}/string/test_crypt.rb +0 -0
- data/test/{unit → core}/string/test_filter.rb +0 -0
- data/test/{unit → core}/string/test_indexable.rb +0 -0
- data/test/{unit → core}/string/test_interpolate.rb +0 -0
- data/test/{unit → core}/string/test_natcmp.rb +0 -0
- data/test/{unit → core}/string/test_nchar.rb +0 -0
- data/test/{unit → core}/string/test_op.rb +0 -0
- data/test/{unit → core}/string/test_partitions.rb +0 -0
- data/test/{unit → core}/string/test_range.rb +0 -0
- data/test/{unit → core}/string/test_regesc.rb +0 -0
- data/test/{unit → core}/string/test_scan.rb +0 -0
- data/test/{unit → core}/string/test_stackable.rb +0 -0
- data/test/{unit → core}/string/test_tabs.rb +0 -0
- data/test/{unit → core}/string/test_wrap.rb +0 -0
- data/test/{unit → core}/symbol/test_chomp.rb +0 -0
- data/test/{unit → core}/symbol/test_generate.rb +0 -0
- data/test/{unit → core}/symbol/test_not.rb +0 -0
- data/test/{unit → core}/symbol/test_shadow.rb +0 -0
- data/test/{unit → core}/symbol/test_succ.rb +0 -0
- data/test/{unit → core}/symbol/test_to_proc.rb +0 -0
- data/test/{unit → core}/test_1stclassmethod.rb +0 -0
- data/test/{unit → core}/test_boolean.rb +0 -0
- data/test/{unit → core}/test_conversion.rb +0 -0
- data/test/{unit → core}/test_functor.rb +0 -0
- data/test/{unit → core}/time/test_change.rb +0 -0
- data/test/{unit → core}/time/test_elapse.rb +0 -0
- data/test/{unit → core}/time/test_stamp.rb +0 -0
- data/test/{unit → mixin}/test_binreadable.rb +0 -0
- data/test/{unit → mixin}/test_buildable.rb +1 -0
- data/test/mixin/test_cloneable.rb +41 -0
- data/test/{unit → mixin}/test_enumerablepass.rb +0 -0
- data/test/{unit → mixin}/test_instantiable.rb +2 -1
- data/test/{unit → mixin}/test_multiton.rb +0 -0
- data/test/{unit → mixin}/test_uninheritable.rb +1 -2
- data/test/{unit → more/hash}/test_keyize.rb +1 -1
- data/test/{unit → more}/test_advice.rb +0 -0
- data/test/{unit → more}/test_annotations.rb +0 -0
- data/test/{unit → more}/test_ansicode.rb +0 -0
- data/test/{unit → more}/test_aop.rb +0 -0
- data/test/{unit → more}/test_arguments.rb +1 -0
- data/test/{unit → more}/test_attributes.rb +2 -2
- data/test/{unit → more}/test_bbcode.rb +1 -0
- data/test/{unit → more}/test_bytes.rb +1 -0
- data/test/{unit → more}/test_class_extension.rb +2 -1
- data/test/{unit → more}/test_classmethods.rb +2 -1
- data/test/{unit → more}/test_compare_on.rb +0 -1
- data/test/{unit → more}/test_continuation.rb +0 -0
- data/test/{unit → more}/test_crypt.rb +0 -0
- data/test/{unit → more}/test_curry.rb +1 -0
- data/test/{unit → more}/test_cut.rb +2 -1
- data/test/{unit → more}/test_date.rb +1 -1
- data/test/{unit → more}/test_dependency.rb +2 -2
- data/test/{unit → more}/test_elementor.rb +1 -1
- data/test/{unit → more}/test_getoptlong.rb +1 -0
- data/test/{unit → more}/test_inheritor.rb +1 -1
- data/test/{unit → more}/test_instantise.rb +2 -1
- data/test/{unit → more}/test_interface.rb +0 -0
- data/test/{unit → more}/test_let.rb +0 -1
- data/test/{unit → more}/test_memoize.rb +2 -3
- data/test/{unit → more}/test_multipliers.rb +1 -1
- data/test/{unit → more}/test_namespace.rb +0 -0
- data/test/{unit → more}/test_ostruct.rb +0 -0
- data/test/{unit → more}/test_overload.rb +0 -0
- data/test/{unit → more}/test_paramix.rb +0 -0
- data/test/{unit → more}/test_prototype.rb +0 -0
- data/test/more/test_random.rb +146 -0
- data/test/{unit → more}/test_snapshot.rb +0 -3
- data/test/{unit → more}/test_stylize.rb +1 -2
- data/test/{unit → more}/test_thread.rb +0 -0
- data/test/{unit → more}/test_times.rb +2 -2
- data/test/{unit → more}/test_typecast.rb +0 -3
- metadata +1117 -1098
- data/lib/more/facets/cloneable.rb +0 -75
- data/log/changelog.txt +0 -0
- data/meta/facets.roll +0 -4
- data/meta/google_ad.html +0 -15
- data/meta/icli.yaml +0 -17
- data/task/changes +0 -29
- data/task/clean +0 -17
- data/task/clobber/package +0 -10
- data/task/log +0 -17
- data/task/prepare +0 -7
- data/task/publish +0 -43
- data/task/release +0 -10
- data/task/stamp +0 -33
- data/task/stats +0 -138
- data/task/test/cross +0 -309
- data/task/test/each +0 -42
- data/task/test/load +0 -30
- data/task/test/pairs +0 -50
- data/task/test/solo +0 -294
- data/task/test/syntax +0 -31
- data/task/test/whole +0 -34
- data/test/unit/hash/test_collate.rb +0 -31
- data/test/unit/test_random.rb +0 -149
@@ -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
|
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
|
File without changes
|
@@ -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
|