facets 1.7.46 → 1.8.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.
- data/PROJECT +41 -23
- data/Rakefile +164 -0
- data/VERSION +1 -1
- data/demo/cuts/benchmark.rb +71 -0
- data/demo/cuts/override.rb +33 -0
- data/doc/AUTHORS +1 -0
- data/doc/{CHANGELOG.1 → HISTORY.1} +0 -0
- data/doc/HISTORY.txt +798 -0
- data/doc/LATEST +240 -0
- data/lib/facet/ann.rb +1 -0
- data/lib/facet/ann_attr.rb +1 -0
- data/lib/facet/arguments.rb +1 -0
- data/lib/facet/array/index.rb +1 -0
- data/lib/facet/array/to_path.rb +1 -0
- data/lib/facet/autoscript.rb +1 -0
- data/lib/facet/autovivify.rb +1 -0
- data/lib/facet/behvior.rb +1 -0
- data/lib/facet/buildingblock.rb +1 -0
- data/lib/facet/class/class_load.rb +1 -0
- data/lib/facet/class/class_require.rb +1 -0
- data/lib/facet/config/inspect.rb +1 -0
- data/lib/facet/consoleutils.rb +1 -0
- data/lib/facet/dependency.rb +1 -0
- data/lib/facet/dir/self/multiglob.rb +1 -0
- data/lib/facet/dir/self/multiglob_recurse.rb +1 -0
- data/lib/facet/dir/self/multiglob_sum.rb +1 -0
- data/lib/facet/enumerable/injecting.rb +1 -0
- data/lib/facet/file/self/yaml.rb +1 -0
- data/lib/facet/fileutils/compress.rb +1 -0
- data/lib/facet/fileutils/stage.rb +1 -0
- data/lib/facet/fileutils/staged.rb +1 -0
- data/lib/facet/hash/insert.rb +1 -0
- data/lib/facet/hash/op_add.rb +1 -0
- data/lib/facet/hash/op_and.rb +1 -0
- data/lib/facet/hash/op_mul.rb +1 -0
- data/lib/facet/hash/op_or.rb +1 -0
- data/lib/facet/hash/op_sub.rb +1 -0
- data/lib/facet/hash/pairs_at.rb +1 -0
- data/lib/facet/hash/rekey.rb +1 -0
- data/lib/facet/htmlfilter.rb +1 -0
- data/lib/facet/integer/to_roman.rb +1 -0
- data/lib/facet/kernel/ask.rb +1 -0
- data/lib/facet/kernel/class_def.rb +1 -0
- data/lib/facet/kernel/daemonize.rb +1 -0
- data/lib/facet/kernel/enable_warnings.rb +1 -0
- data/lib/facet/kernel/instance_class.rb +1 -0
- data/lib/facet/kernel/instance_values.rb +1 -0
- data/lib/facet/kernel/meta_alias.rb +1 -0
- data/lib/facet/kernel/meta_class.rb +1 -0
- data/lib/facet/kernel/meta_def.rb +1 -0
- data/lib/facet/kernel/meta_eval.rb +1 -0
- data/lib/facet/kernel/object_send.rb +1 -0
- data/lib/facet/kernel/populate.rb +1 -0
- data/lib/facet/kernel/qua_class.rb +1 -0
- data/lib/facet/kernel/silence_stream.rb +1 -0
- data/lib/facet/kernel/super_at.rb +1 -0
- data/lib/facet/kernel/supress.rb +1 -0
- data/lib/facet/kernel/with.rb +1 -0
- data/lib/facet/kernel/yaml.rb +1 -0
- data/lib/facet/minitar.rb +1 -0
- data/lib/facet/module/alias_accessor.rb +1 -0
- data/lib/facet/module/include_and_extend.rb +1 -0
- data/lib/facet/module/include_function_module.rb +1 -0
- data/lib/facet/module/module_load.rb +1 -0
- data/lib/facet/module/module_method.rb +1 -0
- data/lib/facet/module/module_require.rb +1 -0
- data/lib/facet/module/new.rb +1 -0
- data/lib/facet/module/prepend.rb +1 -0
- data/lib/facet/openhash.rb +1 -0
- data/lib/facet/ostruct/instance_delegate.rb +1 -0
- data/lib/facet/populate.rb +1 -0
- data/lib/facet/proc/bind.rb +1 -0
- data/lib/facet/proc/to_h.rb +1 -0
- data/lib/facet/proc/update.rb +1 -0
- data/lib/facet/script.rb +1 -0
- data/lib/facet/string/rewrite.rb +1 -0
- data/lib/facet/symbol/chomp.rb +1 -0
- data/lib/facet/uploadutils.rb +1 -0
- data/lib/facet/version_number.rb +1 -0
- data/lib/facets.rb +3 -207
- data/lib/facets/automatic.rb +29 -0
- data/lib/facets/core/all.rb +1 -1
- data/lib/facets/core/array/index.rb +15 -0
- data/lib/facets/core/array/to_path.rb +11 -0
- data/lib/facets/core/class/class_load.rb +3 -0
- data/lib/facets/core/class/class_require.rb +3 -0
- data/lib/facets/core/config/inspect.rb +9 -0
- data/lib/facets/core/dir/self/multiglob.rb +32 -0
- data/lib/facets/core/dir/self/multiglob_recurse.rb +5 -0
- data/lib/facets/core/dir/self/multiglob_sum.rb +40 -0
- data/lib/facets/core/enumerable/each_slice.rb +1 -0
- data/lib/facets/core/enumerable/every.rb +2 -2
- data/lib/facets/core/enumerable/injecting.rb +22 -0
- data/lib/facets/core/enumerable/partition_by.rb +10 -8
- data/lib/facets/core/file/self/yaml.rb +16 -0
- data/lib/facets/core/fileutils/compress.rb +154 -0
- data/lib/facets/core/fileutils/stage.rb +230 -0
- data/lib/facets/core/fileutils/staged.rb +3 -0
- data/lib/facets/core/hash/insert.rb +20 -0
- data/lib/facets/core/hash/op_add.rb +29 -0
- data/lib/facets/core/hash/op_and.rb +37 -0
- data/lib/facets/core/hash/op_mul.rb +17 -0
- data/lib/facets/core/hash/op_or.rb +2 -0
- data/lib/facets/core/hash/op_sub.rb +2 -0
- data/lib/facets/core/hash/pairs_at.rb +17 -0
- data/lib/facets/core/hash/rekey.rb +89 -0
- data/lib/facets/core/hash/reverse_merge.rb +6 -3
- data/lib/facets/core/inflect.rb +5 -14
- data/lib/facets/core/integer/to_roman.rb +20 -0
- data/lib/facets/core/kernel/as.rb +46 -29
- data/lib/facets/core/kernel/ask.rb +14 -0
- data/lib/facets/core/kernel/class_def.rb +10 -0
- data/lib/facets/core/kernel/daemonize.rb +21 -0
- data/lib/facets/core/kernel/enable_warnings.rb +14 -0
- data/lib/facets/core/kernel/{quaclass.rb → instance_class.rb} +7 -6
- data/lib/facets/core/kernel/instance_exec.rb +12 -10
- data/lib/facets/core/kernel/instance_values.rb +12 -0
- data/lib/facets/core/kernel/meta_alias.rb +14 -0
- data/lib/facets/core/kernel/meta_class.rb +38 -0
- data/lib/facets/core/kernel/meta_def.rb +14 -0
- data/lib/facets/core/kernel/meta_eval.rb +16 -0
- data/lib/facets/core/kernel/metaclass.rb +8 -12
- data/lib/facets/core/kernel/object_send.rb +21 -0
- data/lib/facets/core/kernel/populate.rb +39 -0
- data/lib/facets/core/kernel/qua_class.rb +41 -0
- data/lib/facets/core/kernel/returning.rb +7 -47
- data/lib/facets/core/kernel/send_as.rb +10 -4
- data/lib/facets/core/kernel/set_with.rb +25 -7
- data/lib/facets/core/kernel/silence_stream.rb +22 -0
- data/lib/facets/core/kernel/singleton.rb +1 -2
- data/lib/facets/core/kernel/{superior.rb → super_at.rb} +4 -1
- data/lib/facets/core/kernel/supermethod.rb +1 -1
- data/lib/facets/core/kernel/supress.rb +15 -0
- data/lib/facets/core/kernel/with.rb +57 -0
- data/lib/facets/core/kernel/yaml.rb +7 -0
- data/lib/facets/core/module/alias_accessor.rb +19 -0
- data/lib/facets/core/module/alias_method_chain.rb +33 -0
- data/lib/facets/core/module/class_extension.rb +1 -1
- data/lib/facets/core/module/include_and_extend.rb +10 -0
- data/lib/facets/core/module/include_as.rb +17 -16
- data/lib/facets/core/module/include_function_module.rb +13 -0
- data/lib/facets/core/module/inject.rb +1 -0
- data/lib/facets/core/module/memoize.rb +4 -3
- data/lib/facets/core/module/module_load.rb +51 -0
- data/lib/facets/core/module/module_method.rb +13 -0
- data/lib/facets/core/module/module_require.rb +3 -0
- data/lib/facets/core/module/namespace.rb +96 -36
- data/lib/facets/core/module/new.rb +37 -0
- data/lib/facets/core/module/prepend.rb +63 -0
- data/lib/facets/core/module/self/op_add.rb +16 -0
- data/lib/facets/core/ostruct.rb +6 -4
- data/lib/facets/core/ostruct/__merge__.rb +3 -50
- data/lib/facets/core/ostruct/__table__.rb +3 -10
- data/lib/facets/core/ostruct/__update__.rb +29 -0
- data/lib/facets/core/ostruct/instance_delegate.rb +58 -0
- data/lib/facets/core/ostruct/op_fetch.rb +18 -0
- data/lib/facets/core/ostruct/op_store.rb +3 -40
- data/lib/facets/core/proc/bind.rb +35 -0
- data/lib/facets/core/proc/to_h.rb +27 -0
- data/lib/facets/core/proc/to_method.rb +15 -29
- data/lib/facets/core/proc/update.rb +11 -0
- data/lib/facets/core/string/dresner.rb +1 -1
- data/lib/facets/core/string/rewrite.rb +34 -0
- data/lib/facets/core/symbol/chomp.rb +9 -0
- data/lib/facets/core/time/stamp.rb +32 -16
- data/lib/facets/more/ann.rb +249 -0
- data/lib/facets/more/ann_attr.rb +164 -0
- data/lib/facets/more/arguments.rb +479 -0
- data/lib/facets/more/autoscript.rb +34 -0
- data/lib/facets/more/autovivify.rb +16 -0
- data/lib/facets/more/basicobject.rb +67 -54
- data/lib/facets/more/behvior.rb +59 -0
- data/lib/facets/more/buildingblock.rb +192 -0
- data/lib/facets/more/command.rb +332 -146
- data/lib/facets/more/consoleutils.rb +45 -0
- data/lib/facets/more/cookie.rb +5 -2
- data/lib/facets/more/dependency.rb +199 -0
- data/lib/facets/more/dictionary.rb +49 -11
- data/lib/facets/more/functor.rb +33 -27
- data/lib/facets/more/htmlbuilder.rb +8 -18
- data/lib/facets/more/htmlfilter.rb +566 -0
- data/lib/facets/more/htmlhelper.rb +3 -8
- data/lib/facets/more/http.rb +0 -1
- data/lib/facets/more/httpaccess.rb +1 -1
- data/lib/facets/more/instance_intercept.rb +1 -1
- data/lib/facets/more/main_as_module.rb +2 -0
- data/lib/facets/more/methodfilter.rb +4 -0
- data/lib/facets/more/minitar.rb +979 -0
- data/lib/facets/more/multiton.rb +43 -24
- data/lib/facets/more/opencascade.rb +3 -3
- data/lib/facets/more/openhash.rb +350 -0
- data/lib/facets/more/openobject.rb +9 -306
- data/lib/facets/more/populate.rb +37 -0
- data/lib/facets/more/script.rb +157 -0
- data/lib/facets/more/uploadutils.rb +207 -0
- data/lib/facets/more/version_number.rb +98 -0
- data/lib/facets/more/xmlbuilder.rb +26 -21
- data/lib/facets/more/xmlhelper.rb +1 -1
- data/lib/facets/sys.rb +212 -0
- data/lib/facets/{more → yore}/annattr.rb +1 -1
- data/lib/facets/{more → yore}/annotation.rb +38 -32
- data/lib/facets/yore/builderobject.rb +222 -0
- data/lib/facets/{core → yore}/kernel/own.rb +0 -0
- data/lib/facets/{core → yore}/kernel/require_facet.rb +0 -0
- data/lib/facets/yore/module/inject.rb +9 -0
- data/lib/facets/yore/module/namespace.rb +62 -0
- data/setup.rb +2 -2
- data/test/special/main_as_module.rb +14 -0
- data/work/README +42 -0
- data/work/TODO +73 -0
- data/work/bin/minitar +3 -0
- data/work/bin/minitar.rb +814 -0
- data/work/core/array/at_rand.rb +95 -0
- data/work/core/array/each_slice.rb +23 -0
- data/work/core/array/pick_values.rb +32 -0
- data/work/core/array/rand_indexes.rb +33 -0
- data/work/core/binding/class.rb +11 -0
- data/work/core/binding/delegate-binding.rb +19 -0
- data/work/core/binding/delegate.rb +15 -0
- data/work/core/binding/proc.rb +6 -0
- data/work/core/class/to_module.rb +3 -0
- data/work/core/enumerable/op_fetch.rb +30 -0
- data/work/core/fileutils/cptouch.rb +20 -0
- data/work/core/fileutils/nl_convert.rb +133 -0
- data/work/core/io/expect.rb +127 -0
- data/work/core/join_with.rb +13 -0
- data/work/core/kernel/call_line.rb +15 -0
- data/work/core/kernel/does.rb +7 -0
- data/work/core/kernel/message.rb +6 -0
- data/work/core/kernel/query.rb +15 -0
- data/work/core/kernel/taint.rb +10 -0
- data/work/core/logger/clean_logger.rb +10 -0
- data/work/core/module/attr-old.rb +308 -0
- data/work/core/module/attr.rb +98 -0
- data/work/core/module/attr_xxx.rb +22 -0
- data/work/core/module/by_regexp.rb +21 -0
- data/work/core/module/cast.rb +64 -0
- data/work/core/module/class_attribute_accessors.rb +57 -0
- data/work/core/module/inherit.rb +99 -0
- data/work/core/module/inherit0.rb +59 -0
- data/work/core/module/let.rb +51 -0
- data/work/core/module/meta_attr.rb +60 -0
- data/work/core/module/module_attribute_accessors.rb +57 -0
- data/work/core/module/permissions.rb +32 -0
- data/work/core/module/preserved.rb +108 -0
- data/work/core/module/sattr_accessor.rb +1 -0
- data/work/core/module/sattr_reader.rb +1 -0
- data/work/core/module/sattr_setter.rb +1 -0
- data/work/core/module/sattr_tester.rb +1 -0
- data/work/core/module/sattr_writer.rb +1 -0
- data/work/core/module/tc_attr.rb +107 -0
- data/work/core/module/to_module.rb +37 -0
- data/work/core/module/version.rb +23 -0
- data/work/core/string/frequency.rb +40 -0
- data/work/core/string/op_add.rb +24 -0
- data/work/core/string/op_div.rb +15 -0
- data/work/core/string/pred.rb +217 -0
- data/work/core/string/probability.rb +35 -0
- data/work/core/string/succ_distance.rb +112 -0
- data/work/core/string/to_arr.rb +57 -0
- data/work/core/string/to_ary.rb +12 -0
- data/work/core/string/word_wrap.rb +62 -0
- data/work/misc/calibre/ProjectInfo.annotation +46 -0
- data/work/misc/calibre/ProjectInfo.ansicode +33 -0
- data/work/misc/calibre/ProjectInfo.association +34 -0
- data/work/misc/calibre/ProjectInfo.basicobject +36 -0
- data/work/misc/calibre/ProjectInfo.bbcode +34 -0
- data/work/misc/calibre/ProjectInfo.binaryreader +35 -0
- data/work/misc/calibre/ProjectInfo.bitmask +33 -0
- data/work/misc/calibre/ProjectInfo.classinherit +36 -0
- data/work/misc/calibre/ProjectInfo.classmethods +36 -0
- data/work/misc/calibre/ProjectInfo.cloneable +33 -0
- data/work/misc/calibre/ProjectInfo.consoleapp +35 -0
- data/work/misc/calibre/ProjectInfo.coroutine +37 -0
- data/work/misc/calibre/ProjectInfo.crypt +33 -0
- data/work/misc/calibre/ProjectInfo.dictionary +40 -0
- data/work/misc/calibre/ProjectInfo.downloader +39 -0
- data/work/misc/calibre/ProjectInfo.enumerablepass +35 -0
- data/work/misc/calibre/ProjectInfo.expirable +37 -0
- data/work/misc/calibre/ProjectInfo.floatstring +35 -0
- data/work/misc/calibre/ProjectInfo.functor +40 -0
- data/work/misc/calibre/ProjectInfo.heap +33 -0
- data/work/misc/calibre/ProjectInfo.inheritor +36 -0
- data/work/misc/calibre/ProjectInfo.interval +36 -0
- data/work/misc/calibre/ProjectInfo.lisp +38 -0
- data/work/misc/calibre/ProjectInfo.lrucache +34 -0
- data/work/misc/calibre/ProjectInfo.mathconstants +41 -0
- data/work/misc/calibre/ProjectInfo.methodprobe +38 -0
- data/work/misc/calibre/ProjectInfo.mock +34 -0
- data/work/misc/calibre/ProjectInfo.multiton +36 -0
- data/work/misc/calibre/ProjectInfo.nackclass +33 -0
- data/work/misc/calibre/ProjectInfo.nilcomparable +35 -0
- data/work/misc/calibre/ProjectInfo.nullclass +35 -0
- data/work/misc/calibre/ProjectInfo.one +37 -0
- data/work/misc/calibre/ProjectInfo.openobject +39 -0
- data/work/misc/calibre/ProjectInfo.paramix +38 -0
- data/work/misc/calibre/ProjectInfo.pool +33 -0
- data/work/misc/calibre/ProjectInfo.progressbar +37 -0
- data/work/misc/calibre/ProjectInfo.reference +36 -0
- data/work/misc/calibre/ProjectInfo.semaphore +36 -0
- data/work/misc/calibre/ProjectInfo.stateparser +39 -0
- data/work/misc/calibre/ProjectInfo.statichash +33 -0
- data/work/misc/calibre/ProjectInfo.system +34 -0
- data/work/misc/calibre/ProjectInfo.tagiterator +36 -0
- data/work/misc/calibre/ProjectInfo.timer +35 -0
- data/work/misc/calibre/ProjectInfo.tracepoint +37 -0
- data/work/misc/calibre/ProjectInfo.tuple +36 -0
- data/work/misc/calibre/ProjectInfo.uniheritable +34 -0
- data/work/misc/calibre/ProjectInfo.units +34 -0
- data/work/misc/calibre/ProjectInfo.yamlstruct +34 -0
- data/work/more/annotation-rw.rb +217 -0
- data/work/more/aobject.rb +132 -0
- data/work/more/autohash.rb +67 -0
- data/work/more/cache.rb +189 -0
- data/work/more/class_inheritable_attributes.rb +120 -0
- data/work/more/commandrunner.rb +101 -0
- data/work/more/daemon.rb +70 -0
- data/work/more/debugger.rb +167 -0
- data/work/more/detach.rb +423 -0
- data/work/more/enumtype.rb +115 -0
- data/work/more/ioreactor.rb +671 -0
- data/work/more/logger_sing.rb +207 -0
- data/work/more/must.rb +37 -0
- data/work/more/old-tkxml.rb +189 -0
- data/work/more/pairhash.rb +55 -0
- data/work/more/password.rb +80 -0
- data/work/more/print_exception.rb +35 -0
- data/work/more/rand.rb +412 -0
- data/work/more/range.rb +383 -0
- data/work/more/sanitize.rb +48 -0
- data/work/more/superstruct.rb +735 -0
- data/work/more/tag.rb +31 -0
- data/work/more/timer.rb +164 -0
- data/work/op_rshift.rb +87 -0
- data/work/pore/autorequire.rb +83 -0
- data/work/pore/basefactory.rb +40 -0
- data/work/pore/hash/each.rb +76 -0
- data/work/pore/merge3.rb +765 -0
- data/work/pore/superann.rb +134 -0
- data/work/pore/sys.rb +186 -0
- data/work/pore/utils.rb +518 -0
- data/work/yore/HashAquisition.rb +36 -0
- data/work/yore/Rakefile.old +181 -0
- data/work/yore/Reapfile +63 -0
- data/work/yore/annotation.rb +489 -0
- data/{test/lib/facets/more/test_annotation.rb → work/yore/annotation2.rb} +166 -18
- data/work/yore/commandutils.rb +379 -0
- data/work/yore/openobject.rb +298 -0
- data/work/yore/reap.rb +184 -0
- data/work/yore/reap.yml +47 -0
- data/work/yore/taskable-old.rb +519 -0
- data/{lib/facets/more → work/yore}/taskable.rb +176 -17
- metadata +1164 -1427
- data/doc/CHANGELOG +0 -146
- data/lib/facet/annattr.rb +0 -1
- data/lib/facet/annotation.rb +0 -1
- data/lib/facet/builderobject.rb +0 -1
- data/lib/facet/kernel/own.rb +0 -1
- data/lib/facet/kernel/quaclass.rb +0 -1
- data/lib/facet/kernel/require_facet.rb +0 -1
- data/lib/facet/kernel/superior.rb +0 -1
- data/lib/facet/one.rb +0 -1
- data/lib/facet/ostruct/instance.rb +0 -1
- data/lib/facet/predicate.rb +0 -1
- data/lib/facet/taskable.rb +0 -1
- data/lib/facets/core/ostruct/instance.rb +0 -37
- data/lib/facets/more/builderobject.rb +0 -97
- data/lib/facets/more/one.rb +0 -153
- data/lib/facets/more/predicate.rb +0 -184
- data/test/lib/facets/core/array/test_at_rand.rb +0 -34
- data/test/lib/facets/core/array/test_delete_unless.rb +0 -28
- data/test/lib/facets/core/array/test_delete_values.rb +0 -28
- data/test/lib/facets/core/array/test_delete_values_at.rb +0 -31
- data/test/lib/facets/core/array/test_first.rb +0 -46
- data/test/lib/facets/core/array/test_head.rb +0 -42
- data/test/lib/facets/core/array/test_last_index.rb +0 -26
- data/test/lib/facets/core/array/test_merge.rb +0 -35
- data/test/lib/facets/core/array/test_mid.rb +0 -33
- data/test/lib/facets/core/array/test_middle.rb +0 -29
- data/test/lib/facets/core/array/test_op_fetch.rb +0 -35
- data/test/lib/facets/core/array/test_pick.rb +0 -40
- data/test/lib/facets/core/array/test_pos.rb +0 -28
- data/test/lib/facets/core/array/test_pot.rb +0 -28
- data/test/lib/facets/core/array/test_pull.rb +0 -28
- data/test/lib/facets/core/array/test_rand_index.rb +0 -29
- data/test/lib/facets/core/array/test_rand_subset.rb +0 -29
- data/test/lib/facets/core/array/test_range.rb +0 -32
- data/test/lib/facets/core/array/test_rotate.rb +0 -36
- data/test/lib/facets/core/array/test_select.rb +0 -28
- data/test/lib/facets/core/array/test_shuffle.rb +0 -35
- data/test/lib/facets/core/array/test_thru.rb +0 -27
- data/test/lib/facets/core/array/test_to_b.rb +0 -27
- data/test/lib/facets/core/array/test_to_h.rb +0 -33
- data/test/lib/facets/core/array/test_to_hash.rb +0 -27
- data/test/lib/facets/core/binding/self/test_of_caller.rb +0 -35
- data/test/lib/facets/core/binding/test___LINE__.rb +0 -43
- data/test/lib/facets/core/binding/test_call_stack.rb +0 -34
- data/test/lib/facets/core/binding/test_called.rb +0 -30
- data/test/lib/facets/core/binding/test_caller.rb +0 -35
- data/test/lib/facets/core/binding/test_defined.rb +0 -34
- data/test/lib/facets/core/binding/test_eval.rb +0 -34
- data/test/lib/facets/core/binding/test_local_variables.rb +0 -34
- data/test/lib/facets/core/binding/test_method_name.rb +0 -34
- data/test/lib/facets/core/binding/test_op_fetch.rb +0 -34
- data/test/lib/facets/core/binding/test_op_store.rb +0 -35
- data/test/lib/facets/core/binding/test_self.rb +0 -34
- data/test/lib/facets/core/class/test_cattr.rb +0 -63
- data/test/lib/facets/core/class/test_descendents.rb +0 -30
- data/test/lib/facets/core/class/test_method_name.rb +0 -26
- data/test/lib/facets/core/class/test_remove_descendents.rb +0 -32
- data/test/lib/facets/core/class/test_unix_path.rb +0 -26
- data/test/lib/facets/core/comparable/test_at_least.rb +0 -34
- data/test/lib/facets/core/comparable/test_clip.rb +0 -44
- data/test/lib/facets/core/comparable/test_cmp.rb +0 -28
- data/test/lib/facets/core/continuation/self/test_create.rb +0 -26
- data/test/lib/facets/core/date/test_days_in_month.rb +0 -30
- data/test/lib/facets/core/date/test_days_of_month.rb +0 -30
- data/test/lib/facets/core/date/test_stamp.rb +0 -38
- data/test/lib/facets/core/date/test_to_date.rb +0 -30
- data/test/lib/facets/core/date/test_to_s.rb +0 -30
- data/test/lib/facets/core/date/test_to_time.rb +0 -30
- data/test/lib/facets/core/dir/self/test_ancestor.rb +0 -26
- data/test/lib/facets/core/dir/self/test_ascend.rb +0 -41
- data/test/lib/facets/core/enumerable/self/test_combinations.rb +0 -46
- data/test/lib/facets/core/enumerable/self/test_cross.rb +0 -31
- data/test/lib/facets/core/enumerable/test_collect_with_index.rb +0 -27
- data/test/lib/facets/core/enumerable/test_commonality.rb +0 -31
- data/test/lib/facets/core/enumerable/test_compact_collect.rb +0 -27
- data/test/lib/facets/core/enumerable/test_count.rb +0 -38
- data/test/lib/facets/core/enumerable/test_cross.rb +0 -30
- data/test/lib/facets/core/enumerable/test_each_by.rb +0 -71
- data/test/lib/facets/core/enumerable/test_each_combination.rb +0 -29
- data/test/lib/facets/core/enumerable/test_each_pair.rb +0 -29
- data/test/lib/facets/core/enumerable/test_each_slice.rb +0 -57
- data/test/lib/facets/core/enumerable/test_each_unique_pair.rb +0 -29
- data/test/lib/facets/core/enumerable/test_eachn.rb +0 -34
- data/test/lib/facets/core/enumerable/test_entropy.rb +0 -26
- data/test/lib/facets/core/enumerable/test_every.rb +0 -35
- data/test/lib/facets/core/enumerable/test_ew.rb +0 -31
- data/test/lib/facets/core/enumerable/test_filter_collect.rb +0 -31
- data/test/lib/facets/core/enumerable/test_find_collisions.rb +0 -30
- data/test/lib/facets/core/enumerable/test_frequency.rb +0 -27
- data/test/lib/facets/core/enumerable/test_graph.rb +0 -30
- data/test/lib/facets/core/enumerable/test_ideal_entropy.rb +0 -27
- data/test/lib/facets/core/enumerable/test_none.rb +0 -33
- data/test/lib/facets/core/enumerable/test_occur.rb +0 -30
- data/test/lib/facets/core/enumerable/test_one.rb +0 -35
- data/test/lib/facets/core/enumerable/test_op_pow.rb +0 -27
- data/test/lib/facets/core/enumerable/test_partition_by.rb +0 -31
- data/test/lib/facets/core/enumerable/test_permutation.rb +0 -29
- data/test/lib/facets/core/enumerable/test_permute.rb +0 -29
- data/test/lib/facets/core/enumerable/test_probability.rb +0 -27
- data/test/lib/facets/core/enumerable/test_to_h.rb +0 -27
- data/test/lib/facets/core/enumerable/test_uniq_by.rb +0 -28
- data/test/lib/facets/core/file/self/test_create.rb +0 -44
- data/test/lib/facets/core/file/self/test_open_as_string.rb +0 -50
- data/test/lib/facets/core/file/self/test_read_list.rb +0 -40
- data/test/lib/facets/core/file/self/test_sanitize.rb +0 -46
- data/test/lib/facets/core/file/self/test_split_all.rb +0 -27
- data/test/lib/facets/core/float/test_round_at.rb +0 -46
- data/test/lib/facets/core/float/test_round_to.rb +0 -46
- data/test/lib/facets/core/hash/self/test_zipnew.rb +0 -28
- data/test/lib/facets/core/hash/test_alias.rb +0 -31
- data/test/lib/facets/core/hash/test_assert_has_keys.rb +0 -27
- data/test/lib/facets/core/hash/test_assert_has_only_keys.rb +0 -27
- data/test/lib/facets/core/hash/test_at.rb +0 -28
- data/test/lib/facets/core/hash/test_collate.rb +0 -35
- data/test/lib/facets/core/hash/test_each_with_index.rb +0 -29
- data/test/lib/facets/core/hash/test_each_with_key.rb +0 -29
- data/test/lib/facets/core/hash/test_graph.rb +0 -28
- data/test/lib/facets/core/hash/test_has_keys.rb +0 -27
- data/test/lib/facets/core/hash/test_has_only_keys.rb +0 -27
- data/test/lib/facets/core/hash/test_inverse.rb +0 -30
- data/test/lib/facets/core/hash/test_normalize_keys.rb +0 -34
- data/test/lib/facets/core/hash/test_op_fetch.rb +0 -111
- data/test/lib/facets/core/hash/test_op_lshift.rb +0 -29
- data/test/lib/facets/core/hash/test_rand_key.rb +0 -27
- data/test/lib/facets/core/hash/test_rand_pair.rb +0 -27
- data/test/lib/facets/core/hash/test_rand_value.rb +0 -27
- data/test/lib/facets/core/hash/test_replace_each.rb +0 -29
- data/test/lib/facets/core/hash/test_shuffle.rb +0 -32
- data/test/lib/facets/core/hash/test_slice.rb +0 -27
- data/test/lib/facets/core/hash/test_stringify_keys.rb +0 -34
- data/test/lib/facets/core/hash/test_swap.rb +0 -27
- data/test/lib/facets/core/hash/test_swapkey.rb +0 -29
- data/test/lib/facets/core/hash/test_symbolize_keys.rb +0 -34
- data/test/lib/facets/core/hash/test_to_h.rb +0 -27
- data/test/lib/facets/core/hash/test_to_ostruct.rb +0 -30
- data/test/lib/facets/core/hash/test_to_ostruct_recurse.rb +0 -44
- data/test/lib/facets/core/hash/test_traverse.rb +0 -37
- data/test/lib/facets/core/hash/test_update_each.rb +0 -29
- data/test/lib/facets/core/hash/test_update_keys.rb +0 -28
- data/test/lib/facets/core/hash/test_update_values.rb +0 -28
- data/test/lib/facets/core/hash/test_weave.rb +0 -29
- data/test/lib/facets/core/integer/test_factorial.rb +0 -30
- data/test/lib/facets/core/integer/test_multiple.rb +0 -43
- data/test/lib/facets/core/integer/test_of.rb +0 -28
- data/test/lib/facets/core/integer/test_ordinal.rb +0 -29
- data/test/lib/facets/core/integer/test_times_collect.rb +0 -28
- data/test/lib/facets/core/kernel/test___class__.rb +0 -26
- data/test/lib/facets/core/kernel/test_as.rb +0 -42
- data/test/lib/facets/core/kernel/test_assign_from.rb +0 -31
- data/test/lib/facets/core/kernel/test_assign_with.rb +0 -31
- data/test/lib/facets/core/kernel/test_bool.rb +0 -41
- data/test/lib/facets/core/kernel/test_bug.rb +0 -26
- data/test/lib/facets/core/kernel/test_call_stack.rb +0 -26
- data/test/lib/facets/core/kernel/test_called.rb +0 -26
- data/test/lib/facets/core/kernel/test_callee.rb +0 -26
- data/test/lib/facets/core/kernel/test_constant.rb +0 -33
- data/test/lib/facets/core/kernel/test_copy.rb +0 -40
- data/test/lib/facets/core/kernel/test_deep_copy.rb +0 -40
- data/test/lib/facets/core/kernel/test_demo.rb +0 -28
- data/test/lib/facets/core/kernel/test_fn.rb +0 -26
- data/test/lib/facets/core/kernel/test_get_by_id.rb +0 -28
- data/test/lib/facets/core/kernel/test_here.rb +0 -26
- data/test/lib/facets/core/kernel/test_in.rb +0 -27
- data/test/lib/facets/core/kernel/test_instance_exec.rb +0 -52
- data/test/lib/facets/core/kernel/test_maybe.rb +0 -26
- data/test/lib/facets/core/kernel/test_metaclass.rb +0 -34
- data/test/lib/facets/core/kernel/test_method.rb +0 -32
- data/test/lib/facets/core/kernel/test_methods.rb +0 -50
- data/test/lib/facets/core/kernel/test_new.rb +0 -30
- data/test/lib/facets/core/kernel/test_object_class.rb +0 -26
- data/test/lib/facets/core/kernel/test_object_hexid.rb +0 -27
- data/test/lib/facets/core/kernel/test_quaclass.rb +0 -27
- data/test/lib/facets/core/kernel/test_require_all.rb +0 -26
- data/test/lib/facets/core/kernel/test_require_esc.rb +0 -27
- data/test/lib/facets/core/kernel/test_require_facet.rb +0 -27
- data/test/lib/facets/core/kernel/test_resc.rb +0 -27
- data/test/lib/facets/core/kernel/test_returning.rb +0 -30
- data/test/lib/facets/core/kernel/test_send_as.rb +0 -26
- data/test/lib/facets/core/kernel/test_set_from.rb +0 -33
- data/test/lib/facets/core/kernel/test_set_with.rb +0 -33
- data/test/lib/facets/core/kernel/test_silently.rb +0 -28
- data/test/lib/facets/core/kernel/test_singleton.rb +0 -40
- data/test/lib/facets/core/kernel/test_singleton_class.rb +0 -27
- data/test/lib/facets/core/kernel/test_superior.rb +0 -30
- data/test/lib/facets/core/kernel/test_supermethod.rb +0 -33
- data/test/lib/facets/core/kernel/test_this.rb +0 -26
- data/test/lib/facets/core/kernel/test_to_b.rb +0 -28
- data/test/lib/facets/core/kernel/test_to_bool.rb +0 -28
- data/test/lib/facets/core/kernel/test_to_data.rb +0 -59
- data/test/lib/facets/core/kernel/test_uri.rb +0 -30
- data/test/lib/facets/core/kernel/test_val.rb +0 -43
- data/test/lib/facets/core/kernel/test_with_accessor.rb +0 -51
- data/test/lib/facets/core/matchdata/test_match.rb +0 -29
- data/test/lib/facets/core/matchdata/test_matchtree.rb +0 -37
- data/test/lib/facets/core/module/self/test_op_add.rb +0 -48
- data/test/lib/facets/core/module/test_abstract.rb +0 -36
- data/test/lib/facets/core/module/test_alias_module_function.rb +0 -34
- data/test/lib/facets/core/module/test_ancestor.rb +0 -26
- data/test/lib/facets/core/module/test_basename.rb +0 -26
- data/test/lib/facets/core/module/test_by_name.rb +0 -29
- data/test/lib/facets/core/module/test_class_extension.rb +0 -70
- data/test/lib/facets/core/module/test_clone_using.rb +0 -55
- data/test/lib/facets/core/module/test_dirname.rb +0 -26
- data/test/lib/facets/core/module/test_equate_on.rb +0 -37
- data/test/lib/facets/core/module/test_include_as.rb +0 -35
- data/test/lib/facets/core/module/test_initializer.rb +0 -32
- data/test/lib/facets/core/module/test_instance_methods.rb +0 -59
- data/test/lib/facets/core/module/test_integrate.rb +0 -35
- data/test/lib/facets/core/module/test_memoize.rb +0 -50
- data/test/lib/facets/core/module/test_modspace.rb +0 -27
- data/test/lib/facets/core/module/test_namespace.rb +0 -33
- data/test/lib/facets/core/module/test_nesting.rb +0 -36
- data/test/lib/facets/core/module/test_nodef.rb +0 -30
- data/test/lib/facets/core/module/test_on_included.rb +0 -36
- data/test/lib/facets/core/module/test_redef.rb +0 -30
- data/test/lib/facets/core/module/test_redefine_method.rb +0 -30
- data/test/lib/facets/core/module/test_redirect.rb +0 -30
- data/test/lib/facets/core/module/test_redirect_method.rb +0 -30
- data/test/lib/facets/core/module/test_remove.rb +0 -30
- data/test/lib/facets/core/module/test_rename.rb +0 -31
- data/test/lib/facets/core/module/test_rename_method.rb +0 -31
- data/test/lib/facets/core/module/test_revisal.rb +0 -35
- data/test/lib/facets/core/module/test_shadow_method.rb +0 -30
- data/test/lib/facets/core/module/test_sort_on.rb +0 -42
- data/test/lib/facets/core/module/test_this.rb +0 -31
- data/test/lib/facets/core/module/test_wrap.rb +0 -30
- data/test/lib/facets/core/module/test_wrap_method.rb +0 -30
- data/test/lib/facets/core/nilclass/test_blank.rb +0 -26
- data/test/lib/facets/core/nilclass/test_empty.rb +0 -26
- data/test/lib/facets/core/nilclass/test_include.rb +0 -26
- data/test/lib/facets/core/nilclass/test_op_fetch.rb +0 -28
- data/test/lib/facets/core/nilclass/test_size.rb +0 -30
- data/test/lib/facets/core/nilclass/test_to_h.rb +0 -26
- data/test/lib/facets/core/numeric/test_approx.rb +0 -29
- data/test/lib/facets/core/numeric/test_ceil_multiple.rb +0 -31
- data/test/lib/facets/core/numeric/test_distance.rb +0 -28
- data/test/lib/facets/core/numeric/test_succ.rb +0 -40
- data/test/lib/facets/core/numeric/test_to_b.rb +0 -27
- data/test/lib/facets/core/ostruct/test___merge__.rb +0 -38
- data/test/lib/facets/core/ostruct/test___update__.rb +0 -29
- data/test/lib/facets/core/ostruct/test_op_fetch.rb +0 -27
- data/test/lib/facets/core/ostruct/test_op_store.rb +0 -28
- data/test/lib/facets/core/proc/test_compose.rb +0 -29
- data/test/lib/facets/core/proc/test_op_mul.rb +0 -34
- data/test/lib/facets/core/proc/test_to_method.rb +0 -44
- data/test/lib/facets/core/range/test_to_r.rb +0 -27
- data/test/lib/facets/core/range/test_to_range.rb +0 -27
- data/test/lib/facets/core/range/test_umbrella.rb +0 -34
- data/test/lib/facets/core/range/test_within.rb +0 -29
- data/test/lib/facets/core/regexp/test_arity.rb +0 -33
- data/test/lib/facets/core/regexp/test_to_re.rb +0 -27
- data/test/lib/facets/core/regexp/test_to_regexp.rb +0 -27
- data/test/lib/facets/core/string/self/test_interpolate.rb +0 -27
- data/test/lib/facets/core/string/self/test_patterns.rb +0 -28
- data/test/lib/facets/core/string/self/test_rand_letter.rb +0 -26
- data/test/lib/facets/core/string/test_align_center.rb +0 -34
- data/test/lib/facets/core/string/test_at_rand.rb +0 -35
- data/test/lib/facets/core/string/test_basename.rb +0 -41
- data/test/lib/facets/core/string/test_blank.rb +0 -27
- data/test/lib/facets/core/string/test_bracket.rb +0 -49
- data/test/lib/facets/core/string/test_camelcase.rb +0 -39
- data/test/lib/facets/core/string/test_camelize.rb +0 -26
- data/test/lib/facets/core/string/test_capitalized.rb +0 -26
- data/test/lib/facets/core/string/test_chars.rb +0 -27
- data/test/lib/facets/core/string/test_cmp.rb +0 -30
- data/test/lib/facets/core/string/test_demodulize.rb +0 -38
- data/test/lib/facets/core/string/test_divide.rb +0 -29
- data/test/lib/facets/core/string/test_downcase.rb +0 -26
- data/test/lib/facets/core/string/test_dresner.rb +0 -32
- data/test/lib/facets/core/string/test_each_char.rb +0 -29
- data/test/lib/facets/core/string/test_each_word.rb +0 -29
- data/test/lib/facets/core/string/test_first.rb +0 -43
- data/test/lib/facets/core/string/test_fold.rb +0 -34
- data/test/lib/facets/core/string/test_humanize.rb +0 -26
- data/test/lib/facets/core/string/test_indent.rb +0 -40
- data/test/lib/facets/core/string/test_index_all.rb +0 -26
- data/test/lib/facets/core/string/test_last.rb +0 -46
- data/test/lib/facets/core/string/test_line_wrap.rb +0 -27
- data/test/lib/facets/core/string/test_lines.rb +0 -26
- data/test/lib/facets/core/string/test_lowercase.rb +0 -26
- data/test/lib/facets/core/string/test_margin.rb +0 -117
- data/test/lib/facets/core/string/test_methodize.rb +0 -27
- data/test/lib/facets/core/string/test_modulize.rb +0 -29
- data/test/lib/facets/core/string/test_mscan.rb +0 -30
- data/test/lib/facets/core/string/test_natcmp.rb +0 -30
- data/test/lib/facets/core/string/test_nchar.rb +0 -29
- data/test/lib/facets/core/string/test_pathize.rb +0 -29
- data/test/lib/facets/core/string/test_pop.rb +0 -47
- data/test/lib/facets/core/string/test_pot.rb +0 -39
- data/test/lib/facets/core/string/test_push.rb +0 -40
- data/test/lib/facets/core/string/test_quote.rb +0 -49
- data/test/lib/facets/core/string/test_rand_byte.rb +0 -35
- data/test/lib/facets/core/string/test_rand_index.rb +0 -26
- data/test/lib/facets/core/string/test_range.rb +0 -27
- data/test/lib/facets/core/string/test_range_all.rb +0 -27
- data/test/lib/facets/core/string/test_range_of_line.rb +0 -28
- data/test/lib/facets/core/string/test_regesc.rb +0 -28
- data/test/lib/facets/core/string/test_shatter.rb +0 -29
- data/test/lib/facets/core/string/test_shift.rb +0 -40
- data/test/lib/facets/core/string/test_shuffle.rb +0 -27
- data/test/lib/facets/core/string/test_similarity.rb +0 -26
- data/test/lib/facets/core/string/test_singular.rb +0 -86
- data/test/lib/facets/core/string/test_soundex.rb +0 -41
- data/test/lib/facets/core/string/test_succ.rb +0 -29
- data/test/lib/facets/core/string/test_to_a.rb +0 -27
- data/test/lib/facets/core/string/test_to_b.rb +0 -41
- data/test/lib/facets/core/string/test_to_const.rb +0 -28
- data/test/lib/facets/core/string/test_to_date.rb +0 -30
- data/test/lib/facets/core/string/test_to_proc.rb +0 -33
- data/test/lib/facets/core/string/test_to_re.rb +0 -28
- data/test/lib/facets/core/string/test_to_time.rb +0 -30
- data/test/lib/facets/core/string/test_unix_crypt.rb +0 -30
- data/test/lib/facets/core/string/test_unpack.rb +0 -34
- data/test/lib/facets/core/string/test_unshift.rb +0 -39
- data/test/lib/facets/core/string/test_upcase.rb +0 -30
- data/test/lib/facets/core/string/test_whitespace.rb +0 -27
- data/test/lib/facets/core/string/test_word_filter.rb +0 -34
- data/test/lib/facets/core/string/test_word_wrap.rb +0 -51
- data/test/lib/facets/core/string/test_words.rb +0 -37
- data/test/lib/facets/core/symbol/test_camelcase.rb +0 -26
- data/test/lib/facets/core/symbol/test_camelize.rb +0 -27
- data/test/lib/facets/core/symbol/test_capitalize.rb +0 -26
- data/test/lib/facets/core/symbol/test_capitalized.rb +0 -27
- data/test/lib/facets/core/symbol/test_downcase.rb +0 -27
- data/test/lib/facets/core/symbol/test_not.rb +0 -29
- data/test/lib/facets/core/symbol/test_pad.rb +0 -27
- data/test/lib/facets/core/symbol/test_succ.rb +0 -28
- data/test/lib/facets/core/symbol/test_to_const.rb +0 -28
- data/test/lib/facets/core/symbol/test_to_proc.rb +0 -33
- data/test/lib/facets/core/symbol/test_to_str.rb +0 -28
- data/test/lib/facets/core/symbol/test_underscore.rb +0 -26
- data/test/lib/facets/core/symbol/test_upcase.rb +0 -27
- data/test/lib/facets/core/time/test_change.rb +0 -33
- data/test/lib/facets/core/time/test_elapse.rb +0 -27
- data/test/lib/facets/core/time/test_stamp.rb +0 -31
- data/test/lib/facets/core/time/test_to_date.rb +0 -31
- data/test/lib/facets/core/time/test_to_s.rb +0 -31
- data/test/lib/facets/core/time/test_to_time.rb +0 -31
- data/test/lib/facets/more/test_annattr.rb +0 -39
- data/test/lib/facets/more/test_ansicode.rb +0 -36
- data/test/lib/facets/more/test_association.rb +0 -51
- data/test/lib/facets/more/test_autoarray.rb +0 -32
- data/test/lib/facets/more/test_basicobject.rb +0 -67
- data/test/lib/facets/more/test_bbcode.rb +0 -34
- data/test/lib/facets/more/test_binaryreader.rb +0 -64
- data/test/lib/facets/more/test_bitmask.rb +0 -47
- data/test/lib/facets/more/test_bytes.rb +0 -84
- data/test/lib/facets/more/test_classmethods.rb +0 -69
- data/test/lib/facets/more/test_command.rb +0 -38
- data/test/lib/facets/more/test_coroutine.rb +0 -60
- data/test/lib/facets/more/test_crypt.rb +0 -46
- data/test/lib/facets/more/test_cut.rb +0 -198
- data/test/lib/facets/more/test_dictionary.rb +0 -97
- data/test/lib/facets/more/test_elementor.rb +0 -52
- data/test/lib/facets/more/test_enumerablepass.rb +0 -86
- data/test/lib/facets/more/test_floatstring.rb +0 -36
- data/test/lib/facets/more/test_functor.rb +0 -39
- data/test/lib/facets/more/test_htmlbuilder.rb +0 -38
- data/test/lib/facets/more/test_infinity.rb +0 -50
- data/test/lib/facets/more/test_inheritor.rb +0 -155
- data/test/lib/facets/more/test_instance_intercept.rb +0 -50
- data/test/lib/facets/more/test_interval.rb +0 -119
- data/test/lib/facets/more/test_json.rb +0 -232
- data/test/lib/facets/more/test_linkedlist.rb +0 -53
- data/test/lib/facets/more/test_lisp.rb +0 -47
- data/test/lib/facets/more/test_lisp_format.rb +0 -37
- data/test/lib/facets/more/test_lrucache.rb +0 -25
- data/test/lib/facets/more/test_mathconstants.rb +0 -18
- data/test/lib/facets/more/test_methodfilter.rb +0 -45
- data/test/lib/facets/more/test_methodprobe.rb +0 -53
- data/test/lib/facets/more/test_multipliers.rb +0 -114
- data/test/lib/facets/more/test_multiton.rb +0 -199
- data/test/lib/facets/more/test_nackclass.rb +0 -45
- data/test/lib/facets/more/test_nilcomparable.rb +0 -47
- data/test/lib/facets/more/test_opencascade.rb +0 -75
- data/test/lib/facets/more/test_openobject.rb +0 -126
- data/test/lib/facets/more/test_overload.rb +0 -54
- data/test/lib/facets/more/test_paramix.rb +0 -100
- data/test/lib/facets/more/test_pqueue.rb +0 -39
- data/test/lib/facets/more/test_predicate.rb +0 -79
- data/test/lib/facets/more/test_preinitialize.rb +0 -49
- data/test/lib/facets/more/test_promoteself.rb +0 -45
- data/test/lib/facets/more/test_recorder.rb +0 -44
- data/test/lib/facets/more/test_snapshot.rb +0 -34
- data/test/lib/facets/more/test_statichash.rb +0 -31
- data/test/lib/facets/more/test_syncarray.rb +0 -28
- data/test/lib/facets/more/test_synchash.rb +0 -28
- data/test/lib/facets/more/test_tagiterator.rb +0 -93
- data/test/lib/facets/more/test_taskable.rb +0 -190
- data/test/lib/facets/more/test_timer.rb +0 -66
- data/test/lib/facets/more/test_times.rb +0 -73
- data/test/lib/facets/more/test_tuple.rb +0 -64
- data/test/lib/facets/more/test_typecast.rb +0 -68
- data/test/lib/facets/more/test_uninheritable.rb +0 -42
- data/test/lib/facets/more/test_units.rb +0 -111
- data/test/lib/facets/more/test_xmlbuilder.rb +0 -38
- data/test/lib/facets/more/test_xmlhelper.rb +0 -40
- data/test/lib/facets/more/test_xoxo.rb +0 -288
- data/test/lib/facets/more/test_yamlstruct.rb +0 -37
- data/util/announce +0 -20
- data/util/changelog +0 -8
- data/util/count +0 -8
- data/util/extest +0 -8
- data/util/list +0 -38
- data/util/package +0 -9
- data/util/prepare +0 -12
- data/util/redirect +0 -34
- data/util/release +0 -13
- data/util/setup +0 -7
- data/util/test +0 -7
- data/util/version +0 -8
|
@@ -1,188 +1,13 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# == Copyright (c) 2005,2006 Thomas Sawyer
|
|
4
|
-
#
|
|
5
|
-
# Ruby License
|
|
6
|
-
#
|
|
7
|
-
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
-
# software under the same terms as Ruby.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
-
# FOR A PARTICULAR PURPOSE.
|
|
13
|
-
#
|
|
14
|
-
# == Authors and Contributors
|
|
15
|
-
#
|
|
16
|
-
# * Thomas Sawyer
|
|
17
|
-
# * George Moschovitis
|
|
1
|
+
# TO BE DEPRECTATED!!!
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
# Copyright:: Copyright (c) 2005 Thomas Sawyer
|
|
21
|
-
# License:: Ruby License
|
|
3
|
+
require 'facets/more/openhash'
|
|
22
4
|
|
|
23
|
-
|
|
24
|
-
require 'facets/core/hash/to_proc'
|
|
25
|
-
require 'facets/core/hash/symbolize_keys'
|
|
26
|
-
require 'facets/core/kernel/object_class'
|
|
27
|
-
require 'facets/core/kernel/object_hexid'
|
|
28
|
-
|
|
29
|
-
#require 'facets/more/methodfilter'
|
|
30
|
-
|
|
31
|
-
# = OpenObject
|
|
32
|
-
#
|
|
33
|
-
# OpenObject is similar to OpenStruct, but differs in a couple ways.
|
|
34
|
-
#
|
|
35
|
-
# OpenObject is a subclass of Hash and can do just about everything
|
|
36
|
-
# a Hash can do, except that most public methods have been made
|
|
37
|
-
# protected and thus only available internally or via #send.
|
|
38
|
-
# A small number, like #each are stillexposed publically though
|
|
39
|
-
# b/c of their importance.
|
|
40
|
-
#
|
|
41
|
-
# OpenObject will also clobber any method for which a slot is defined.
|
|
42
|
-
# Even generally very important methods can be clobbered, like
|
|
43
|
-
# instance_eval. So be careful. OpenObject should be used in highly
|
|
44
|
-
# controlled scenarios. If you want to pass one off to a general
|
|
45
|
-
# rountine, it is best to convert it to a Hash first and convert it
|
|
46
|
-
# back to an OpenObject when finished. To facilitate this the method
|
|
47
|
-
# #as_hash! is provided.
|
|
48
|
-
#
|
|
49
|
-
# o = OpenObject.new(:a=>1,:b=>2)
|
|
50
|
-
# o.as_hash!{ |h| h.update(:a=>6) }
|
|
51
|
-
# o #=> #<OpenObject {:a=>6,:b=>2}>
|
|
52
|
-
#
|
|
53
|
-
# Finally, unlike a regular Hash, all OpenObject's keys are symbols and
|
|
54
|
-
# all keys are converted to such using #to_sym on the fly.
|
|
55
|
-
#
|
|
56
|
-
#--
|
|
57
|
-
# Also, when an entry is not found 'null' is returned rather then 'nil'.
|
|
58
|
-
# This allows for run-on entries withuot error. Eg.
|
|
59
|
-
#
|
|
60
|
-
# OpenObject.new.a.b.c #=> null
|
|
61
|
-
#++
|
|
62
|
-
|
|
63
|
-
class OpenObject < Hash
|
|
64
|
-
|
|
65
|
-
PUBLIC_METHODS = /(^__|^instance__|^object__|^\W|^send$|^class$|\?$)/
|
|
66
|
-
|
|
67
|
-
protected *public_instance_methods.select{ |m| m !~ PUBLIC_METHODS }
|
|
68
|
-
|
|
69
|
-
def self.[](hash=nil)
|
|
70
|
-
new(hash)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# Inititalizer for OpenObject is slightly differnt than taht of Hash.
|
|
74
|
-
# It does not take a default parameter, but an initial priming Hash
|
|
75
|
-
# as with OpenStruct. The initializer can still take a default block
|
|
76
|
-
# however. To set the degault value use ++#default!(value)++.
|
|
77
|
-
#
|
|
78
|
-
# OpenObject(:a=>1).default!(0)
|
|
79
|
-
|
|
80
|
-
def initialize( hash=nil, &yld )
|
|
81
|
-
super( &yld )
|
|
82
|
-
hash.each { |k,v| define_slot(k,v) } if hash
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def initialize_copy( orig )
|
|
86
|
-
orig.each { |k,v| define_slot(k,v) }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Object inspection. (Careful, this can be clobbered!)
|
|
90
|
-
|
|
91
|
-
def inspect
|
|
92
|
-
"#<#{object_class}:#{object_hexid} #{super}>"
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Conversion methods. (Careful, these can be clobbered!)
|
|
96
|
-
|
|
97
|
-
def to_a() super end
|
|
98
|
-
def to_h() super end
|
|
99
|
-
|
|
100
|
-
def to_hash() super end
|
|
101
|
-
def to_proc() super end
|
|
102
|
-
|
|
103
|
-
def to_openobject() self end
|
|
104
|
-
|
|
105
|
-
# Iterate over each key-value pair. (Careful, this can be clobbered!)
|
|
106
|
-
|
|
107
|
-
def each(&yld) super(&yld) end
|
|
108
|
-
|
|
109
|
-
# Set the default value.
|
|
110
|
-
|
|
111
|
-
def default!(default)
|
|
112
|
-
self.default = default
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
# Preform action on OpenObject as if it were a regular Hash.
|
|
116
|
-
|
|
117
|
-
def as_hash!
|
|
118
|
-
replace(yld.call(to_hash))
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# Check equality. (Should equal be true for Hash too?)
|
|
122
|
-
|
|
123
|
-
def ==( other )
|
|
124
|
-
return false unless OpenObject === other
|
|
125
|
-
super(other) #(other.send(:table))
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def []=(k,v)
|
|
129
|
-
super(k.to_sym,v)
|
|
130
|
-
define_slot(k)
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def [](k)
|
|
134
|
-
super(k.to_sym)
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
protected
|
|
138
|
-
|
|
139
|
-
def store(k,v)
|
|
140
|
-
super(k.to_sym,v)
|
|
141
|
-
define_slot(k)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def fetch(k,*d,&b)
|
|
145
|
-
super(k.to_sym,*d,&b)
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def define_slot( key, value=nil )
|
|
149
|
-
(class << self; self; end).class_eval {
|
|
150
|
-
protected key rescue nil
|
|
151
|
-
#def #{key}() self[:#{key}] end
|
|
152
|
-
#def #{key}=(o) self[:#{key}]=o end
|
|
153
|
-
}
|
|
154
|
-
self[key.to_sym] = value if value
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def merge( other )
|
|
158
|
-
d = dup
|
|
159
|
-
d.send(:update, other)
|
|
160
|
-
d
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def update( other )
|
|
164
|
-
other.each { |k,v| define_slot(k,v) }
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
def method_missing( sym, arg=nil, &blk)
|
|
168
|
-
type = sym.to_s[-1,1]
|
|
169
|
-
key = sym.to_s.sub(/[=?!]$/,'').to_sym
|
|
170
|
-
if type == '='
|
|
171
|
-
define_slot(key,arg)
|
|
172
|
-
elsif type == '!'
|
|
173
|
-
define_slot(key,arg)
|
|
174
|
-
self
|
|
175
|
-
else
|
|
176
|
-
self[key]
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
end
|
|
5
|
+
OpenObject = OpenHash
|
|
181
6
|
|
|
182
7
|
# Core Extensions
|
|
183
8
|
|
|
184
9
|
class NilClass
|
|
185
|
-
# Nil converts to an empty
|
|
10
|
+
# Nil converts to an empty OpenHash.
|
|
186
11
|
|
|
187
12
|
def to_openobject
|
|
188
13
|
OpenObject.new
|
|
@@ -190,7 +15,7 @@ class NilClass
|
|
|
190
15
|
end
|
|
191
16
|
|
|
192
17
|
class Hash
|
|
193
|
-
# Convert a Hash into an
|
|
18
|
+
# Convert a Hash into an OpenHash.
|
|
194
19
|
|
|
195
20
|
def to_openobject
|
|
196
21
|
OpenObject[self]
|
|
@@ -198,145 +23,23 @@ class Hash
|
|
|
198
23
|
end
|
|
199
24
|
|
|
200
25
|
class Proc
|
|
201
|
-
# Translates a Proc into an
|
|
26
|
+
# Translates a Proc into an OpenHash. By droping an OpenHash into
|
|
202
27
|
# the Proc, the resulting assignments incured as the procedure is
|
|
203
|
-
# evaluated produce the
|
|
28
|
+
# evaluated produce the OpenHash. This technique is simlar to that
|
|
204
29
|
# of MethodProbe.
|
|
205
30
|
#
|
|
206
31
|
# p = lambda { |x|
|
|
207
32
|
# x.word = "Hello"
|
|
208
33
|
# }
|
|
209
|
-
# o = p.
|
|
34
|
+
# o = p.to_openhash
|
|
210
35
|
# o.word #=> "Hello"
|
|
211
36
|
#
|
|
212
37
|
# NOTE The Proc must have an arity of one --no more and no less.
|
|
213
38
|
|
|
214
39
|
def to_openobject
|
|
215
|
-
raise ArgumentError, 'bad arity for converting Proc to
|
|
40
|
+
raise ArgumentError, 'bad arity for converting Proc to openhash' if arity != 1
|
|
216
41
|
o = OpenObject.new
|
|
217
42
|
self.call( o )
|
|
218
43
|
o
|
|
219
44
|
end
|
|
220
45
|
end
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
# _____ _
|
|
224
|
-
# |_ _|__ ___| |_
|
|
225
|
-
# | |/ _ \/ __| __|
|
|
226
|
-
# | | __/\__ \ |_
|
|
227
|
-
# |_|\___||___/\__|
|
|
228
|
-
#
|
|
229
|
-
|
|
230
|
-
=begin testing
|
|
231
|
-
|
|
232
|
-
require 'test/unit'
|
|
233
|
-
|
|
234
|
-
class TestOpenObject1 < Test::Unit::TestCase
|
|
235
|
-
|
|
236
|
-
def test_1_01
|
|
237
|
-
o = OpenObject.new
|
|
238
|
-
assert( o.respond_to?(:key?) )
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
def test_1_02
|
|
242
|
-
assert_instance_of( OpenObject, OpenObject[{}] )
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
def test_1_03
|
|
246
|
-
f0 = OpenObject.new
|
|
247
|
-
f0[:a] = 1
|
|
248
|
-
#assert_equal( [1], f0.to_a )
|
|
249
|
-
assert_equal( {:a=>1}, f0.to_h )
|
|
250
|
-
end
|
|
251
|
-
|
|
252
|
-
def test_1_04
|
|
253
|
-
f0 = OpenObject[:a=>1]
|
|
254
|
-
f0[:b] = 2
|
|
255
|
-
assert_equal( {:a=>1,:b=>2}, f0.to_h )
|
|
256
|
-
end
|
|
257
|
-
|
|
258
|
-
def test_1_05
|
|
259
|
-
f0 = OpenObject[:class=>1]
|
|
260
|
-
assert_equal( 1, f0.class )
|
|
261
|
-
end
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
class TestOpenObject2 < Test::Unit::TestCase
|
|
265
|
-
|
|
266
|
-
def test_2_01
|
|
267
|
-
f0 = OpenObject[:f0=>"f0"]
|
|
268
|
-
h0 = { :h0=>"h0" }
|
|
269
|
-
assert_equal( OpenObject[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
|
|
270
|
-
assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
|
|
271
|
-
end
|
|
272
|
-
|
|
273
|
-
def test_2_02
|
|
274
|
-
f1 = OpenObject[:f1=>"f1"]
|
|
275
|
-
h1 = { :h1=>"h1" }
|
|
276
|
-
f1.send(:update,h1)
|
|
277
|
-
h1.update( f1 )
|
|
278
|
-
assert_equal( OpenObject[:f1=>"f1", :h1=>"h1"], f1 )
|
|
279
|
-
assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
|
|
280
|
-
end
|
|
281
|
-
|
|
282
|
-
def test_2_03
|
|
283
|
-
o = OpenObject[:a=>1,:b=>{:x=>9}]
|
|
284
|
-
assert_equal( 9, o[:b][:x] )
|
|
285
|
-
assert_equal( 9, o.b[:x] )
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
def test_2_04
|
|
289
|
-
o = OpenObject["a"=>1,"b"=>{:x=>9}]
|
|
290
|
-
assert_equal( 1, o["a"] )
|
|
291
|
-
assert_equal( 1, o[:a] )
|
|
292
|
-
assert_equal( {:x=>9}, o["b"] )
|
|
293
|
-
assert_equal( {:x=>9}, o[:b] )
|
|
294
|
-
assert_equal( 9, o["b"][:x] )
|
|
295
|
-
assert_equal( nil, o[:b]["x"] )
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
end
|
|
299
|
-
|
|
300
|
-
class TestOpenObject3 < Test::Unit::TestCase
|
|
301
|
-
def test_3_01
|
|
302
|
-
fo = OpenObject.new
|
|
303
|
-
9.times{ |i| fo.send( "n#{i}=", 1 ) }
|
|
304
|
-
9.times{ |i|
|
|
305
|
-
assert_equal( 1, fo.send( "n#{i}" ) )
|
|
306
|
-
}
|
|
307
|
-
end
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
class TestOpenObject4 < Test::Unit::TestCase
|
|
311
|
-
|
|
312
|
-
def test_4_01
|
|
313
|
-
ho = {}
|
|
314
|
-
fo = OpenObject.new
|
|
315
|
-
5.times{ |i| ho["n#{i}".to_sym]=1 }
|
|
316
|
-
5.times{ |i| fo.send( "n#{i}=", 1 ) }
|
|
317
|
-
assert_equal(ho, fo.to_h)
|
|
318
|
-
end
|
|
319
|
-
|
|
320
|
-
end
|
|
321
|
-
|
|
322
|
-
class TestOpenObject5 < Test::Unit::TestCase
|
|
323
|
-
|
|
324
|
-
def test_5_01
|
|
325
|
-
p = lambda { |x|
|
|
326
|
-
x.word = "Hello"
|
|
327
|
-
}
|
|
328
|
-
o = p.to_openobject
|
|
329
|
-
assert_equal( "Hello", o.word )
|
|
330
|
-
end
|
|
331
|
-
|
|
332
|
-
def test_5_02
|
|
333
|
-
p = lambda { |x|
|
|
334
|
-
x.word = "Hello"
|
|
335
|
-
}
|
|
336
|
-
o = OpenObject[:a=>1,:b=>2]
|
|
337
|
-
assert_instance_of( Proc, o.to_proc )
|
|
338
|
-
end
|
|
339
|
-
|
|
340
|
-
end
|
|
341
|
-
|
|
342
|
-
=end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# = populate.rb
|
|
2
|
+
|
|
3
|
+
require 'facet/kernel/populate'
|
|
4
|
+
|
|
5
|
+
# A class mixin for objects which initialize using a hash or block
|
|
6
|
+
# to simply populate attr_writers/accessors.
|
|
7
|
+
#
|
|
8
|
+
# class MyClass
|
|
9
|
+
# include Populate
|
|
10
|
+
# attr :a
|
|
11
|
+
# end
|
|
12
|
+
#
|
|
13
|
+
# m = MyClass.new(:a=>1)
|
|
14
|
+
# m.a #=> 1
|
|
15
|
+
#
|
|
16
|
+
# m = MyClass.new{ |s| s.a = 1 }
|
|
17
|
+
# m.a #=> 1
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
module Populate
|
|
21
|
+
|
|
22
|
+
# Populating initializer.
|
|
23
|
+
|
|
24
|
+
def initialize( data=nil, &block ) #:yield:
|
|
25
|
+
before_initialize_populate
|
|
26
|
+
populate(data, &block)
|
|
27
|
+
after_initialize_populate
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# When using, a class should generally leave the initializer
|
|
31
|
+
# alone and just fillout these two callbacks as needed.
|
|
32
|
+
|
|
33
|
+
def before_initialize_populate ; end
|
|
34
|
+
def after_initialize_populate ; end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# A module which is an instance of the Script class encapsulates in its scope
|
|
2
|
+
# the top-level methods, top-level constants, and instance variables defined in
|
|
3
|
+
# a ruby script file (and its subfiles) loaded by a ruby program. This allows
|
|
4
|
+
# use of script files to define objects that can be loaded into a program in
|
|
5
|
+
# much the same way that objects can be loaded from YAML or Marshal files.
|
|
6
|
+
#
|
|
7
|
+
# See intro.txt[link:files/intro_txt.html] for an overview.
|
|
8
|
+
|
|
9
|
+
class Script < Module
|
|
10
|
+
# The file with which the Script was instantiated.
|
|
11
|
+
attr_reader :main_file
|
|
12
|
+
|
|
13
|
+
# The directory in which main_file is located, and relative to which
|
|
14
|
+
# #load searches for files before falling back to Kernel#load.
|
|
15
|
+
#attr_reader :dir
|
|
16
|
+
|
|
17
|
+
# An array of paths to search for scripts. This has the same
|
|
18
|
+
# semantics as <tt>$:</tt>, alias <tt>$LOAD_PATH</tt>, excpet
|
|
19
|
+
# that it is local to this script. The path of the current
|
|
20
|
+
# script is added automatically (equivalent to '.')
|
|
21
|
+
attr_reader :load_path
|
|
22
|
+
|
|
23
|
+
# A hash that maps <tt>filename=>true</tt> for each file that has been
|
|
24
|
+
# required locally by the script. This has the same semantics as <tt>$"</tt>,
|
|
25
|
+
# alias <tt>$LOADED_FEATURES</tt>, except that it is local to this script.
|
|
26
|
+
attr_reader :loaded_features
|
|
27
|
+
|
|
28
|
+
class << self
|
|
29
|
+
alias load new
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Creates new Script, and loads _main_file_ in the scope of the Script. If a
|
|
33
|
+
# block is given, the script is passed to it before loading from the file, and
|
|
34
|
+
# constants can be defined as inputs to the script.
|
|
35
|
+
|
|
36
|
+
def initialize(main_file, options=nil, &block)
|
|
37
|
+
extend self
|
|
38
|
+
|
|
39
|
+
options ||= {}
|
|
40
|
+
|
|
41
|
+
@main_file = File.expand_path(main_file)
|
|
42
|
+
@load_path = options[:load_path] || []
|
|
43
|
+
#@load_path |= [File.dirname(@main_file)] # before or after?
|
|
44
|
+
@loaded_features = options[:loaded_features] || {}
|
|
45
|
+
|
|
46
|
+
# TODO In order to load/require at the instance level.
|
|
47
|
+
# This needs to be in a separate namespace however
|
|
48
|
+
# b/c it can interfere with what is expected.
|
|
49
|
+
#[ :require, :load ].each{ |meth|
|
|
50
|
+
# m = method(meth)
|
|
51
|
+
# define_method(meth) do |*args| m.call(*args) end
|
|
52
|
+
#}
|
|
53
|
+
|
|
54
|
+
module_eval(&block) if block
|
|
55
|
+
extend self
|
|
56
|
+
|
|
57
|
+
load_in_module(main_file)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Lookup feature in load path.
|
|
61
|
+
|
|
62
|
+
def load_path_lookup(feature)
|
|
63
|
+
paths = File.join('{' + @load_path.join(',') + '}', feature + '{,.rb,.rbs}')
|
|
64
|
+
files = Dir.glob(paths)
|
|
65
|
+
match = files.find{ |f| ! @loaded_features.include?(f) }
|
|
66
|
+
return match
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Loads _file_ into this Script. Searches relative to the local dir, that is,
|
|
70
|
+
# the dir of the file given in the original call to
|
|
71
|
+
# <tt>Script.load(file)</tt>, loads the file, if found, into this Script's
|
|
72
|
+
# scope, and returns true. If the file is not found, falls back to
|
|
73
|
+
# <tt>Kernel.load</tt>, which searches on <tt>$LOAD_PATH</tt>, loads the file,
|
|
74
|
+
# if found, into global scope, and returns true. Otherwise, raises
|
|
75
|
+
# <tt>LoadError</tt>.
|
|
76
|
+
#
|
|
77
|
+
# The _wrap_ argument is passed to <tt>Kernel.load</tt> in the fallback case,
|
|
78
|
+
# when the file is not found locally.
|
|
79
|
+
#
|
|
80
|
+
# Typically called from within the main file to load additional sub files, or
|
|
81
|
+
# from those sub files.
|
|
82
|
+
#
|
|
83
|
+
#--
|
|
84
|
+
# TODO Need to add load_path lookup.
|
|
85
|
+
#++
|
|
86
|
+
|
|
87
|
+
def load(file, wrap = false)
|
|
88
|
+
load_in_module(File.join(@dir, file))
|
|
89
|
+
true
|
|
90
|
+
rescue MissingFile
|
|
91
|
+
super
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Analogous to <tt>Kernel#require</tt>. First tries the local dir, then falls
|
|
95
|
+
# back to <tt>Kernel#require</tt>. Will load a given _feature_ only once.
|
|
96
|
+
#
|
|
97
|
+
# Note that extensions (*.so, *.dll) can be required in the global scope, as
|
|
98
|
+
# usual, but not in the local scope. (This is not much of a limitation in
|
|
99
|
+
# practice--you wouldn't want to load an extension more than once.) This
|
|
100
|
+
# implementation falls back to <tt>Kernel#require</tt> when the argument is an
|
|
101
|
+
# extension or is not found locally.
|
|
102
|
+
#
|
|
103
|
+
#--
|
|
104
|
+
# This was using load_in_module rather than include_script. Maybe is still should
|
|
105
|
+
# and one should have to call include_script instead? Think about this.
|
|
106
|
+
#++
|
|
107
|
+
|
|
108
|
+
def require(feature)
|
|
109
|
+
file = load_path_lookup(feature)
|
|
110
|
+
return super unless file
|
|
111
|
+
begin
|
|
112
|
+
@loaded_features[file] = true
|
|
113
|
+
load_in_module(file)
|
|
114
|
+
rescue MissingFile
|
|
115
|
+
@loaded_features[file] = false
|
|
116
|
+
super
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Raised by #load_in_module, caught by #load and #require.
|
|
121
|
+
class MissingFile < LoadError; end
|
|
122
|
+
|
|
123
|
+
# Loads _file_ in this module's context. Note that <tt>\_\_FILE\_\_</tt> and
|
|
124
|
+
# <tt>\_\_LINE\_\_</tt> work correctly in _file_.
|
|
125
|
+
# Called by #load and #require; not normally called directly.
|
|
126
|
+
|
|
127
|
+
def load_in_module(file)
|
|
128
|
+
module_eval(IO.read(file), File.expand_path(file))
|
|
129
|
+
rescue Errno::ENOENT => e
|
|
130
|
+
if /#{file}$/ =~ e.message
|
|
131
|
+
raise MissingFile, e.message
|
|
132
|
+
else
|
|
133
|
+
raise
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def include_script(file)
|
|
138
|
+
include self.class.new(file, :load_path=>load_path, :loaded_features=>loaded_features)
|
|
139
|
+
rescue Errno::ENOENT => e
|
|
140
|
+
if /#{file}$/ =~ e.message
|
|
141
|
+
raise MissingFile, e.message
|
|
142
|
+
else
|
|
143
|
+
raise
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
#
|
|
148
|
+
def include(*mods)
|
|
149
|
+
super
|
|
150
|
+
extend self
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def to_s # :nodoc:
|
|
154
|
+
"#<#{self.class}:#{main_file}>"
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
end #class Script
|