carats 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +2 -0
- data/LICENSE +5 -0
- data/README +67 -0
- data/Reapfile +72 -0
- data/ToDo +24 -0
- data/bench/b_harray.rb +49 -0
- data/bench/b_range.rb +64 -0
- data/demo/ansicolor/cdiff.rb +20 -0
- data/demo/ansicolor/example.rb +82 -0
- data/demo/io-reactor/chatserver.rb +347 -0
- data/doc/classes/Array.html +172 -0
- data/doc/classes/BBCode.html +638 -0
- data/doc/classes/BinaryReader.html +675 -0
- data/doc/classes/Binding.html +223 -0
- data/doc/classes/ByteOrder.html +284 -0
- data/doc/classes/Class.html +189 -0
- data/doc/classes/Constant.html +785 -0
- data/doc/classes/Constant/CGS.html +609 -0
- data/doc/classes/Continuation.html +113 -0
- data/doc/classes/Coroutine.html +387 -0
- data/doc/classes/CountingSemaphore.html +337 -0
- data/doc/classes/CrossCase.html +561 -0
- data/doc/classes/DynamicMixin.html +185 -0
- data/doc/classes/EnumerableWithArgs.html +550 -0
- data/doc/classes/Expect.html +428 -0
- data/doc/classes/Expect/DefaultChain.html +113 -0
- data/doc/classes/Expect/SeparatedPattern.html +223 -0
- data/doc/classes/Expect/Timeout.html +167 -0
- data/doc/classes/Expect/UnmatchedMessage.html +160 -0
- data/doc/classes/FileList.html +833 -0
- data/doc/classes/FloatString.html +534 -0
- data/doc/classes/Functor.html +211 -0
- data/doc/classes/HArray.html +1872 -0
- data/doc/classes/HTML.html +328 -0
- data/doc/classes/Heap.html +683 -0
- data/doc/classes/Heap/EmptyHeapException.html +111 -0
- data/doc/classes/Heap/Max.html +176 -0
- data/doc/classes/Heap/Min.html +176 -0
- data/doc/classes/IO.html +108 -0
- data/doc/classes/IO/Reactor.html +790 -0
- data/doc/classes/IO/Redirect.html +289 -0
- data/doc/classes/Infinity.html +320 -0
- data/doc/classes/Interval.html +1014 -0
- data/doc/classes/InvalidNackError.html +161 -0
- data/doc/classes/Kernel.html +204 -0
- data/doc/classes/Lisp.html +1132 -0
- data/doc/classes/Lisp/DottedPair.html +379 -0
- data/doc/classes/Lisp/Format.html +178 -0
- data/doc/classes/Lisp/Format/ArgumentError.html +126 -0
- data/doc/classes/Lisp/Format/Directives.html +155 -0
- data/doc/classes/Lisp/Format/Directives/ArgJump.html +178 -0
- data/doc/classes/Lisp/Format/Directives/Ascii.html +119 -0
- data/doc/classes/Lisp/Format/Directives/BeginCaseConversion.html +185 -0
- data/doc/classes/Lisp/Format/Directives/BeginConditional.html +307 -0
- data/doc/classes/Lisp/Format/Directives/BeginIteration.html +338 -0
- data/doc/classes/Lisp/Format/Directives/Binary.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Character.html +228 -0
- data/doc/classes/Lisp/Format/Directives/CharacterDirective.html +203 -0
- data/doc/classes/Lisp/Format/Directives/ClauseSeparator.html +166 -0
- data/doc/classes/Lisp/Format/Directives/Decimal.html +119 -0
- data/doc/classes/Lisp/Format/Directives/Directive.html +397 -0
- data/doc/classes/Lisp/Format/Directives/DollarFP.html +205 -0
- data/doc/classes/Lisp/Format/Directives/EndCaseConversion.html +174 -0
- data/doc/classes/Lisp/Format/Directives/EndConditional.html +159 -0
- data/doc/classes/Lisp/Format/Directives/EndIteration.html +163 -0
- data/doc/classes/Lisp/Format/Directives/ExpFP.html +252 -0
- data/doc/classes/Lisp/Format/Directives/FFFP.html +224 -0
- data/doc/classes/Lisp/Format/Directives/Factory.html +180 -0
- data/doc/classes/Lisp/Format/Directives/FreshLine.html +175 -0
- data/doc/classes/Lisp/Format/Directives/GeneralFP.html +265 -0
- data/doc/classes/Lisp/Format/Directives/Hexadecimal.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Indirection.html +183 -0
- data/doc/classes/Lisp/Format/Directives/Literal.html +187 -0
- data/doc/classes/Lisp/Format/Directives/NewLine.html +158 -0
- data/doc/classes/Lisp/Format/Directives/NewPage.html +158 -0
- data/doc/classes/Lisp/Format/Directives/Number.html +243 -0
- data/doc/classes/Lisp/Format/Directives/Octal.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Plural.html +177 -0
- data/doc/classes/Lisp/Format/Directives/Print.html +237 -0
- data/doc/classes/Lisp/Format/Directives/Radix.html +432 -0
- data/doc/classes/Lisp/Format/Directives/SExpression.html +157 -0
- data/doc/classes/Lisp/Format/Directives/SkipWhitespace.html +165 -0
- data/doc/classes/Lisp/Format/Directives/Tabulate.html +198 -0
- data/doc/classes/Lisp/Format/Directives/Tilde.html +158 -0
- data/doc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
- data/doc/classes/Lisp/Format/Formatter.html +193 -0
- data/doc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
- data/doc/classes/Lisp/Format/IndexError.html +126 -0
- data/doc/classes/Lisp/Format/Lexer.html +479 -0
- data/doc/classes/Lisp/Format/MalformedError.html +119 -0
- data/doc/classes/Lisp/Format/MissingParameterError.html +119 -0
- data/doc/classes/Lisp/Format/ModifierError.html +119 -0
- data/doc/classes/Lisp/Format/Output.html +239 -0
- data/doc/classes/Lisp/Format/ParameterError.html +126 -0
- data/doc/classes/Lisp/Format/Parameters.html +123 -0
- data/doc/classes/Lisp/Format/Parameters/Argument.html +172 -0
- data/doc/classes/Lisp/Format/Parameters/ArgumentCount.html +159 -0
- data/doc/classes/Lisp/Format/Parameters/Character.html +119 -0
- data/doc/classes/Lisp/Format/Parameters/Default.html +120 -0
- data/doc/classes/Lisp/Format/Parameters/Integer.html +119 -0
- data/doc/classes/Lisp/Format/Parameters/Parameter.html +206 -0
- data/doc/classes/Lisp/Format/Parser.html +212 -0
- data/doc/classes/Lisp/Format/Positioned.html +166 -0
- data/doc/classes/Lisp/Format/State.html +455 -0
- data/doc/classes/Lisp/Format/SyntaxError.html +126 -0
- data/doc/classes/Method.html +274 -0
- data/doc/classes/Method/DuckHunter.html +281 -0
- data/doc/classes/Module.html +709 -0
- data/doc/classes/Multiton.html +284 -0
- data/doc/classes/Multiton/New.html +164 -0
- data/doc/classes/Multiton/Semi.html +155 -0
- data/doc/classes/NackClass.html +322 -0
- data/doc/classes/NilClass.html +231 -0
- data/doc/classes/NilComparable.html +179 -0
- data/doc/classes/NotCopyable.html +273 -0
- data/doc/classes/Object.html +261 -0
- data/doc/classes/OpenStructable.html +346 -0
- data/doc/classes/OrderedHash.html +939 -0
- data/doc/classes/Parser.html +515 -0
- data/doc/classes/Parser/Main.html +178 -0
- data/doc/classes/Parser/Marker.html +475 -0
- data/doc/classes/Parser/Registry.html +354 -0
- data/doc/classes/Parser/Token.html +399 -0
- data/doc/classes/Parser/UnitToken.html +222 -0
- data/doc/classes/Ref.html +230 -0
- data/doc/classes/SimpleStringIO.html +183 -0
- data/doc/classes/StaticHash.html +202 -0
- data/doc/classes/String.html +172 -0
- data/doc/classes/Struct.html +181 -0
- data/doc/classes/SuperStruct.html +382 -0
- data/doc/classes/Term.html +156 -0
- data/doc/classes/Term/ANSIColor.html +185 -0
- data/doc/classes/Text.html +138 -0
- data/doc/classes/Text/Soundex.html +222 -0
- data/doc/classes/TextTagIterator.html +911 -0
- data/doc/classes/Time.html +119 -0
- data/doc/classes/Time/Limit.html +303 -0
- data/doc/classes/Time/Limit/Dummy.html +181 -0
- data/doc/classes/Timer.html +351 -0
- data/doc/classes/TracePoint.html +532 -0
- data/doc/classes/Tuple.html +178 -0
- data/doc/classes/Uninheritable.html +213 -0
- data/doc/classes/Version.html +783 -0
- data/doc/created.rid +1 -0
- data/doc/files/LICENSE.html +113 -0
- data/doc/files/README.html +201 -0
- data/doc/files/lib/carat/1st_rb.html +107 -0
- data/doc/files/lib/carat/ansicolor_rb.html +146 -0
- data/doc/files/lib/carat/attr_rb.html +101 -0
- data/doc/files/lib/carat/bbcode_rb.html +152 -0
- data/doc/files/lib/carat/binaryreader_rb.html +114 -0
- data/doc/files/lib/carat/binding-of-caller_rb.html +108 -0
- data/doc/files/lib/carat/byteorder_rb.html +107 -0
- data/doc/files/lib/carat/constant_rb.html +167 -0
- data/doc/files/lib/carat/coroutine_rb.html +156 -0
- data/doc/files/lib/carat/crosscase_rb.html +224 -0
- data/doc/files/lib/carat/duckhunter_rb.html +165 -0
- data/doc/files/lib/carat/dynamic-mixin_rb.html +101 -0
- data/doc/files/lib/carat/enumerable-args_rb.html +140 -0
- data/doc/files/lib/carat/expect_rb.html +137 -0
- data/doc/files/lib/carat/filelist_rb.html +130 -0
- data/doc/files/lib/carat/floatstring_rb.html +126 -0
- data/doc/files/lib/carat/functor_rb.html +140 -0
- data/doc/files/lib/carat/harray_rb.html +128 -0
- data/doc/files/lib/carat/heap_rb.html +154 -0
- data/doc/files/lib/carat/html-helpers_rb.html +116 -0
- data/doc/files/lib/carat/infinity_rb.html +142 -0
- data/doc/files/lib/carat/init_rb.html +127 -0
- data/doc/files/lib/carat/interval_rb.html +162 -0
- data/doc/files/lib/carat/io-reactor_rb.html +211 -0
- data/doc/files/lib/carat/io-redirect_rb.html +132 -0
- data/doc/files/lib/carat/lisp-format_rb.html +187 -0
- data/doc/files/lib/carat/lisp_rb.html +152 -0
- data/doc/files/lib/carat/macro_rb.html +129 -0
- data/doc/files/lib/carat/multiton_rb.html +178 -0
- data/doc/files/lib/carat/nack_rb.html +193 -0
- data/doc/files/lib/carat/nil-comparable_rb.html +126 -0
- data/doc/files/lib/carat/nil-missing_rb.html +101 -0
- data/doc/files/lib/carat/notcopyable_rb.html +166 -0
- data/doc/files/lib/carat/orderedhash_rb.html +107 -0
- data/doc/files/lib/carat/ostructable_rb.html +157 -0
- data/doc/files/lib/carat/parser-old_rb.html +239 -0
- data/doc/files/lib/carat/parser_rb.html +244 -0
- data/doc/files/lib/carat/ref_rb.html +107 -0
- data/doc/files/lib/carat/semaphore_rb.html +132 -0
- data/doc/files/lib/carat/snapshot_rb.html +152 -0
- data/doc/files/lib/carat/soundex_rb.html +128 -0
- data/doc/files/lib/carat/sstruct_rb.html +142 -0
- data/doc/files/lib/carat/statichash_rb.html +150 -0
- data/doc/files/lib/carat/tagiter_rb.html +236 -0
- data/doc/files/lib/carat/timelimit_rb.html +136 -0
- data/doc/files/lib/carat/timer_rb.html +153 -0
- data/doc/files/lib/carat/tracepoint_rb.html +160 -0
- data/doc/files/lib/carat/tuple_rb.html +123 -0
- data/doc/files/lib/carat/uninheritable_rb.html +101 -0
- data/doc/files/lib/carat/version_rb.html +141 -0
- data/doc/fr_class_index.html +159 -0
- data/doc/fr_file_index.html +78 -0
- data/doc/fr_method_index.html +663 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/carat-dev/README +11 -0
- data/lib/carat-dev/access-blocks/access_blocks.rb +42 -0
- data/lib/carat-dev/association/association.rb +70 -0
- data/lib/carat-dev/blankslate/blankslate.rb +51 -0
- data/lib/carat-dev/breakpoint.rb +518 -0
- data/lib/carat-dev/class-constructor/constructor_methods.rb +78 -0
- data/lib/carat-dev/class-constructor/tc_constructor.rb +35 -0
- data/lib/carat-dev/closecall/closecall-test.rb +39 -0
- data/lib/carat-dev/closecall/closecall.rb +101 -0
- data/lib/carat-dev/commandrunner/commandrunner.rb +100 -0
- data/lib/carat-dev/conditional/conditionals.rb +106 -0
- data/lib/carat-dev/daemon/daemon.rb +70 -0
- data/lib/carat-dev/detach/detach.rb +363 -0
- data/lib/carat-dev/detach/tc_detach.rb +57 -0
- data/lib/carat-dev/import-module/import-module-0.81.tar.gz +0 -0
- data/lib/carat-dev/import-module/import-module-0.81/LICENSE +1 -0
- data/lib/carat-dev/import-module/import-module-0.81/Makefile +11 -0
- data/lib/carat-dev/import-module/import-module-0.81/README +4 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-hash.rb +49 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-pip.rb +71 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-unbound-method.rb +36 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.html +293 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.rd +306 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README.html +290 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README.rd +303 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/style.css +85 -0
- data/lib/carat-dev/import-module/import-module-0.81/install.rb +99 -0
- data/lib/carat-dev/import-module/import-module-0.81/lib/import-module-single-thread.rb +84 -0
- data/lib/carat-dev/import-module/import-module-0.81/lib/import-module.rb +493 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/Makefile +2 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test +91 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-import-module.rb +936 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-import_scope.rb +33 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-scope_import.rb +33 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-time.rb +184 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test.sh +91 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/time.rb +135 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/times-do.sh +10 -0
- data/lib/carat-dev/interface_work/SCRAP/i-contracts.rb +37 -0
- data/lib/carat-dev/interface_work/SCRAP/interface.rb +105 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0.zip +0 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/CHANGES +3 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/MANIFEST +15 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/README +32 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.rd +73 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.txt +94 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/install.rb +16 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/lib/interface.rb +50 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb +51 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test.rb +29 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_instance.rb +24 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_sub.rb +29 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_unrequire.rb +28 -0
- data/lib/carat-dev/interface_work/contracts/contract.zip +0 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.html +376 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000001.html +23 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000002.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000003.html +19 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000004.html +29 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000005.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000006.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractError.html +142 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractException.html +153 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractMismatch.html +125 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.html +157 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.src/M000007.html +112 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/created.rid +1 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/assertions_rb.html +109 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/exception_rb.html +108 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/integration_rb.html +108 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/overrides_rb.html +109 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract_rb.html +114 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_class_index.html +31 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_file_index.html +31 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_method_index.html +33 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/index.html +24 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/rdoc-style.css +208 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract.rb +88 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/assertions.rb +37 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/exception.rb +92 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/integration.rb +132 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/overrides.rb +32 -0
- data/lib/carat-dev/interface_work/must.rb +37 -0
- data/lib/carat-dev/interface_work/type.rb +232 -0
- data/lib/carat-dev/main/tc_toplevel.rb +23 -0
- data/lib/carat-dev/main/toplevel.rb +33 -0
- data/lib/carat-dev/main/toplevel_test.rb +24 -0
- data/lib/carat-dev/misc/1.rb +40 -0
- data/lib/carat-dev/misc/misc.rb +44 -0
- data/lib/carat-dev/misc/sys.rb +186 -0
- data/lib/carat-dev/misc/temp.rb +1 -0
- data/lib/carat-dev/misc/utils.rb +518 -0
- data/lib/carat-dev/predicate/predicate.rb +109 -0
- data/lib/carat-dev/predicate/predicate_test.rb +67 -0
- data/lib/carat-dev/premshree.rb +40 -0
- data/lib/carat-dev/priority-queue/pqueue.rb +183 -0
- data/lib/carat-dev/priority-queue/priorityqueue.rb +84 -0
- data/lib/carat-dev/quaternion/quaternion.rb +529 -0
- data/lib/carat-dev/range.rb +259 -0
- data/lib/carat-dev/system/rubyinfo.rb +75 -0
- data/lib/carat-dev/system/system.rb +105 -0
- data/lib/carat-dev/tc_range.rb +118 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.html +291 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000001.html +26 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000002.html +19 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000003.html +18 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000004.html +18 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000005.html +21 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000006.html +23 -0
- data/lib/carat-dev/timer/timer-doc/created.rid +1 -0
- data/lib/carat-dev/timer/timer-doc/files/timer_rb.html +144 -0
- data/lib/carat-dev/timer/timer-doc/fr_class_index.html +27 -0
- data/lib/carat-dev/timer/timer-doc/fr_file_index.html +27 -0
- data/lib/carat-dev/timer/timer-doc/fr_method_index.html +32 -0
- data/lib/carat-dev/timer/timer-doc/index.html +24 -0
- data/lib/carat-dev/timer/timer-doc/rdoc-style.css +208 -0
- data/lib/carat-dev/timer/timer.rb +160 -0
- data/lib/carat-dev/vars/vars.rb +62 -0
- data/lib/carat/1st.rb +58 -0
- data/lib/carat/ansicolor.rb +122 -0
- data/lib/carat/attr.rb +342 -0
- data/lib/carat/bbcode.rb +352 -0
- data/lib/carat/binaryreader.rb +170 -0
- data/lib/carat/binding-of-caller.rb +83 -0
- data/lib/carat/byteorder.rb +34 -0
- data/lib/carat/constant.rb +287 -0
- data/lib/carat/coroutine.rb +102 -0
- data/lib/carat/crosscase.rb +309 -0
- data/lib/carat/duckhunter.rb +158 -0
- data/lib/carat/dynamic-mixin.rb +71 -0
- data/lib/carat/enumerable-args.rb +125 -0
- data/lib/carat/expect.rb +192 -0
- data/lib/carat/filelist.rb +277 -0
- data/lib/carat/floatstring.rb +153 -0
- data/lib/carat/functor.rb +41 -0
- data/lib/carat/harray.rb +507 -0
- data/lib/carat/heap.rb +193 -0
- data/lib/carat/html-helpers.rb +82 -0
- data/lib/carat/infinity.rb +61 -0
- data/lib/carat/init.rb +33 -0
- data/lib/carat/interval.rb +248 -0
- data/lib/carat/io-reactor.rb +657 -0
- data/lib/carat/io-redirect.rb +99 -0
- data/lib/carat/lisp-format.rb +1832 -0
- data/lib/carat/lisp.rb +336 -0
- data/lib/carat/macro.rb +68 -0
- data/lib/carat/multiton.rb +153 -0
- data/lib/carat/nack.rb +115 -0
- data/lib/carat/nil-comparable.rb +67 -0
- data/lib/carat/nil-missing.rb +12 -0
- data/lib/carat/notcopyable.rb +68 -0
- data/lib/carat/orderedhash.rb +249 -0
- data/lib/carat/ostructable.rb +138 -0
- data/lib/carat/parser-old.rb +350 -0
- data/lib/carat/parser.rb +393 -0
- data/lib/carat/ref.rb +31 -0
- data/lib/carat/semaphore.rb +69 -0
- data/lib/carat/snapshot.rb +94 -0
- data/lib/carat/soundex.rb +104 -0
- data/lib/carat/sstruct.rb +223 -0
- data/lib/carat/statichash.rb +49 -0
- data/lib/carat/tagiter.rb +345 -0
- data/lib/carat/timelimit.rb +114 -0
- data/lib/carat/timer.rb +99 -0
- data/lib/carat/tracepoint.rb +154 -0
- data/lib/carat/tuple.rb +31 -0
- data/lib/carat/uninheritable.rb +68 -0
- data/lib/carat/version.rb +147 -0
- data/pub/doc/sstruct.txt +204 -0
- data/pub/doc/tagiter.html +145 -0
- data/setup.rb +1361 -0
- data/test/fixtures/filelist/testfile.txt +1 -0
- data/test/fixtures/filelist/testfile2.txt +1 -0
- data/test/tc_1st.rb +16 -0
- data/test/tc_ansicolor.rb +23 -0
- data/test/tc_attr.rb +46 -0
- data/test/tc_bbcode.rb +20 -0
- data/test/tc_binaryreader.rb +14 -0
- data/test/tc_binding_of_caller.rb +2 -0
- data/test/tc_byteorder.rb +41 -0
- data/test/tc_constant.rb +12 -0
- data/test/tc_coroutine.rb +50 -0
- data/test/tc_crosscase.rb +33 -0
- data/test/tc_duckhunter.rb +37 -0
- data/test/tc_dynamic-mixin.rb +66 -0
- data/test/tc_enumerable-args.rb +66 -0
- data/test/tc_expect.rb +83 -0
- data/test/tc_filelist.rb +17 -0
- data/test/tc_floatstring.rb +22 -0
- data/test/tc_functor.rb +18 -0
- data/test/tc_harray.rb +280 -0
- data/test/tc_heap.rb +6 -0
- data/test/tc_infinity.rb +23 -0
- data/test/tc_init.rb +29 -0
- data/test/tc_interval.rb +153 -0
- data/test/tc_io-reactor.rb +5 -0
- data/test/tc_io-redirect.rb +5 -0
- data/test/tc_lisp-format.rb +24 -0
- data/test/tc_lisp.rb +32 -0
- data/test/tc_macro.rb +48 -0
- data/test/tc_multiton.rb +188 -0
- data/test/tc_nack.rb +31 -0
- data/test/tc_nil-as-emptiness.rb +19 -0
- data/test/tc_nil-comparable.rb +29 -0
- data/test/tc_nil-missing.rb +0 -0
- data/test/tc_notcopyable.rb +64 -0
- data/test/tc_orderedhash.rb +36 -0
- data/test/tc_ostructable.rb +31 -0
- data/test/tc_semaphore.rb +5 -0
- data/test/tc_snapshot.rb +20 -0
- data/test/tc_soundex.rb +19 -0
- data/test/tc_sstruct.rb +313 -0
- data/test/tc_statichash.rb +24 -0
- data/test/tc_tagiter.rb +80 -0
- data/test/tc_timelimit.rb +47 -0
- data/test/tc_timer.rb +35 -0
- data/test/tc_tracepoint.rb +10 -0
- data/test/tc_tuple.rb +25 -0
- data/test/tc_uninheritable.rb +33 -0
- data/test/tc_version.rb +90 -0
- metadata +531 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Lisp::Format::SyntaxError</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Lisp::Format::SyntaxError</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../../files/lib/carat/lisp-format_rb.html">
|
|
59
|
+
lib/carat/lisp-format.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
<a href="SyntaxError.html">
|
|
69
|
+
SyntaxError
|
|
70
|
+
</a>
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- banner header -->
|
|
76
|
+
|
|
77
|
+
<div id="bodyContent">
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<div id="contextContent">
|
|
82
|
+
|
|
83
|
+
<div id="description">
|
|
84
|
+
<p>
|
|
85
|
+
The format string contained a syntax error.
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
<!-- if includes -->
|
|
98
|
+
<div id="includes">
|
|
99
|
+
<h3 class="section-bar">Included Modules</h3>
|
|
100
|
+
|
|
101
|
+
<div id="includes-list">
|
|
102
|
+
<span class="include-name"><a href="Positioned.html">Positioned</a></span>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<div id="section">
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
<!-- if method_list -->
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
<div id="validator-badges">
|
|
122
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
</body>
|
|
126
|
+
</html>
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Method</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Method</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../files/lib/carat/duckhunter_rb.html">
|
|
59
|
+
lib/carat/duckhunter.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
<a href="Object.html">
|
|
69
|
+
Object
|
|
70
|
+
</a>
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- banner header -->
|
|
76
|
+
|
|
77
|
+
<div id="bodyContent">
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<div id="contextContent">
|
|
82
|
+
|
|
83
|
+
<div id="description">
|
|
84
|
+
<h1><a href="Method/DuckHunter.html">DuckHunter</a></h1>
|
|
85
|
+
<p>
|
|
86
|
+
<a href="Method/DuckHunter.html">Method::DuckHunter</a> is a method probe.
|
|
87
|
+
It drop decoys into methods which records the calls that are made against
|
|
88
|
+
them. Of course it is not perfect —as a matter of course for any
|
|
89
|
+
internal probe. There are a couple of issues related to conditionals. Since
|
|
90
|
+
the method test for a certain condition against the decoy, how is the decoy
|
|
91
|
+
to respond? Thus ceratin paths in the code may never get exceuted and so go
|
|
92
|
+
unmapped. If Ruby had better conditional reflection (i.e. if
|
|
93
|
+
‘if’, ‘case’, ‘unless’,
|
|
94
|
+
‘when’, etc. were true methods) then this could be fixed by
|
|
95
|
+
making the <a href="Method/DuckHunter.html">DuckHunter</a> reentrant,
|
|
96
|
+
mapping out variant true/false/nil replies. Of course the final problem is
|
|
97
|
+
the Halting problem. It should be rare enough, but it can happen and little
|
|
98
|
+
can be done about it (I think).
|
|
99
|
+
</p>
|
|
100
|
+
<p>
|
|
101
|
+
Note, the alternative to this is a program that examines, rather then
|
|
102
|
+
executes, source code. This would circumvent the above problems, but run
|
|
103
|
+
into difficulties with dynamic evals.
|
|
104
|
+
</p>
|
|
105
|
+
<p>
|
|
106
|
+
This script is provided for experimetnal purposes. On occasion it may find
|
|
107
|
+
an intersteing use. Please inform the author if you find ways to improve.
|
|
108
|
+
</p>
|
|
109
|
+
<h2>Synopsis</h2>
|
|
110
|
+
<pre>
|
|
111
|
+
require 'carat/duckhunter'
|
|
112
|
+
|
|
113
|
+
def amethod(x)
|
|
114
|
+
x + 1
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
p method(:amethod).signiture
|
|
118
|
+
p method(:amethod).signiture(:class)
|
|
119
|
+
p method(:amethod).signiture(:pretty)
|
|
120
|
+
</pre>
|
|
121
|
+
<p>
|
|
122
|
+
produces
|
|
123
|
+
</p>
|
|
124
|
+
<pre>
|
|
125
|
+
[["+"]]
|
|
126
|
+
[{"+"=>[["Fixnum"]]}]
|
|
127
|
+
[["+( Fixnum )"]]
|
|
128
|
+
</pre>
|
|
129
|
+
<h2>Authors(s)</h2>
|
|
130
|
+
<ul>
|
|
131
|
+
<li>Thomas Sawyer
|
|
132
|
+
|
|
133
|
+
</li>
|
|
134
|
+
</ul>
|
|
135
|
+
<h2>Legal</h2>
|
|
136
|
+
<p>
|
|
137
|
+
Ruby License Copyright ©2005 Thomas Sawyer
|
|
138
|
+
</p>
|
|
139
|
+
<h2>History</h2>
|
|
140
|
+
<ul>
|
|
141
|
+
<li>2005.04.12 Passed basic tests.
|
|
142
|
+
|
|
143
|
+
</li>
|
|
144
|
+
</ul>
|
|
145
|
+
|
|
146
|
+
</div>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div id="method-list">
|
|
152
|
+
<h3 class="section-bar">Methods</h3>
|
|
153
|
+
|
|
154
|
+
<div class="name-list">
|
|
155
|
+
<a href="#M000156">migration</a>
|
|
156
|
+
<a href="#M000157">signature</a>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
<!-- if includes -->
|
|
164
|
+
|
|
165
|
+
<div id="section">
|
|
166
|
+
|
|
167
|
+
<div id="class-list">
|
|
168
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
|
169
|
+
|
|
170
|
+
Class <a href="Method/DuckHunter.html" class="link">Method::DuckHunter</a><br />
|
|
171
|
+
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<!-- if method_list -->
|
|
181
|
+
<div id="methods">
|
|
182
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
183
|
+
|
|
184
|
+
<div id="method-M000157" class="method-detail">
|
|
185
|
+
<a name="M000157"></a>
|
|
186
|
+
|
|
187
|
+
<div class="method-heading">
|
|
188
|
+
<a href="#M000157" class="method-signature">
|
|
189
|
+
<span class="method-name">signature</span><span class="method-args">(detail=nil)</span>
|
|
190
|
+
</a>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
<div class="method-description">
|
|
194
|
+
<p>
|
|
195
|
+
Outputs signiture information.
|
|
196
|
+
</p>
|
|
197
|
+
<p><a class="source-toggle" href="#"
|
|
198
|
+
onclick="toggleCode('M000157-source');return false;">[Source]</a></p>
|
|
199
|
+
<div class="method-source-code" id="M000157-source">
|
|
200
|
+
<pre>
|
|
201
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 136</span>
|
|
202
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">signature</span>(<span class="ruby-identifier">detail</span>=<span class="ruby-keyword kw">nil</span>)
|
|
203
|
+
<span class="ruby-identifier">ds</span> = []
|
|
204
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">detail</span>
|
|
205
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:complete</span>, <span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:full</span>
|
|
206
|
+
<span class="ruby-identifier">ds</span> = <span class="ruby-identifier">migration</span>
|
|
207
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:class</span>, <span class="ruby-identifier">:with_class</span>
|
|
208
|
+
<span class="ruby-identifier">migration</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">dh</span><span class="ruby-operator">|</span> <span class="ruby-identifier">ds</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">dh</span>.<span class="ruby-identifier">ducks</span> }
|
|
209
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:pp</span>, <span class="ruby-identifier">:pretty</span>, <span class="ruby-identifier">:prettyprint</span>, <span class="ruby-identifier">:pretty_print</span>
|
|
210
|
+
<span class="ruby-identifier">migration</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dh</span><span class="ruby-operator">|</span>
|
|
211
|
+
<span class="ruby-identifier">responders</span> = []
|
|
212
|
+
<span class="ruby-identifier">dh</span>.<span class="ruby-identifier">ducks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">responder</span>, <span class="ruby-identifier">argss</span><span class="ruby-operator">|</span>
|
|
213
|
+
<span class="ruby-identifier">argss</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span> <span class="ruby-identifier">responders</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{responder}( #{args.join(',')} )"</span> }
|
|
214
|
+
<span class="ruby-keyword kw">end</span>
|
|
215
|
+
<span class="ruby-identifier">ds</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">responders</span>
|
|
216
|
+
<span class="ruby-keyword kw">end</span>
|
|
217
|
+
<span class="ruby-keyword kw">else</span>
|
|
218
|
+
<span class="ruby-identifier">migration</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">dh</span><span class="ruby-operator">|</span> <span class="ruby-identifier">ds</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">dh</span>.<span class="ruby-identifier">ducks</span>.<span class="ruby-identifier">keys</span> }
|
|
219
|
+
<span class="ruby-keyword kw">end</span>
|
|
220
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ds</span>
|
|
221
|
+
<span class="ruby-keyword kw">end</span>
|
|
222
|
+
</pre>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<h3 class="section-bar">Private Instance methods</h3>
|
|
228
|
+
|
|
229
|
+
<div id="method-M000156" class="method-detail">
|
|
230
|
+
<a name="M000156"></a>
|
|
231
|
+
|
|
232
|
+
<div class="method-heading">
|
|
233
|
+
<a href="#M000156" class="method-signature">
|
|
234
|
+
<span class="method-name">migration</span><span class="method-args">()</span>
|
|
235
|
+
</a>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<div class="method-description">
|
|
239
|
+
<p>
|
|
240
|
+
Outputs migration information.
|
|
241
|
+
</p>
|
|
242
|
+
<p><a class="source-toggle" href="#"
|
|
243
|
+
onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
|
|
244
|
+
<div class="method-source-code" id="M000156-source">
|
|
245
|
+
<pre>
|
|
246
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 122</span>
|
|
247
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">migration</span>
|
|
248
|
+
<span class="ruby-identifier">parameters</span> = []; <span class="ruby-identifier">argc</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">arity</span>
|
|
249
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argc</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
250
|
+
<span class="ruby-identifier">argc</span>.<span class="ruby-identifier">times</span> { <span class="ruby-identifier">parameters</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">DuckHunter</span>.<span class="ruby-identifier">new</span> }
|
|
251
|
+
<span class="ruby-constant">DuckHunter</span>.<span class="ruby-identifier">duckcall</span> { <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">parameters</span>) }
|
|
252
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">argc</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
|
253
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"(NYI) method takes unlimited arguments"</span>
|
|
254
|
+
<span class="ruby-keyword kw">end</span>
|
|
255
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parameters</span>
|
|
256
|
+
<span class="ruby-keyword kw">end</span>
|
|
257
|
+
</pre>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
<div id="validator-badges">
|
|
270
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
271
|
+
</div>
|
|
272
|
+
|
|
273
|
+
</body>
|
|
274
|
+
</html>
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Class: Method::DuckHunter</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Class</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Method::DuckHunter</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../files/lib/carat/duckhunter_rb.html">
|
|
59
|
+
lib/carat/duckhunter.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
<tr class="top-aligned-row">
|
|
66
|
+
<td><strong>Parent:</strong></td>
|
|
67
|
+
<td>
|
|
68
|
+
<a href="../Object.html">
|
|
69
|
+
Object
|
|
70
|
+
</a>
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- banner header -->
|
|
76
|
+
|
|
77
|
+
<div id="bodyContent">
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<div id="contextContent">
|
|
82
|
+
|
|
83
|
+
<div id="description">
|
|
84
|
+
<p>
|
|
85
|
+
<a href="DuckHunter.html">DuckHunter</a> class
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<div id="method-list">
|
|
94
|
+
<h3 class="section-bar">Methods</h3>
|
|
95
|
+
|
|
96
|
+
<div class="name-list">
|
|
97
|
+
<a href="#M000158">duckcall</a>
|
|
98
|
+
<a href="#M000160">initialize_copy</a>
|
|
99
|
+
<a href="#M000161">method_missing</a>
|
|
100
|
+
<a href="#M000159">new</a>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
<!-- if includes -->
|
|
108
|
+
|
|
109
|
+
<div id="section">
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
<div id="attribute-list">
|
|
116
|
+
<h3 class="section-bar">Attributes</h3>
|
|
117
|
+
|
|
118
|
+
<div class="name-list">
|
|
119
|
+
<table>
|
|
120
|
+
<tr class="top-aligned-row context-row">
|
|
121
|
+
<td class="context-item-name">decoys</td>
|
|
122
|
+
<td class="context-item-value"> [R] </td>
|
|
123
|
+
<td class="context-item-desc"></td>
|
|
124
|
+
</tr>
|
|
125
|
+
<tr class="top-aligned-row context-row">
|
|
126
|
+
<td class="context-item-name">ducks</td>
|
|
127
|
+
<td class="context-item-value"> [R] </td>
|
|
128
|
+
<td class="context-item-desc"></td>
|
|
129
|
+
</tr>
|
|
130
|
+
</table>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
<!-- if method_list -->
|
|
137
|
+
<div id="methods">
|
|
138
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
139
|
+
|
|
140
|
+
<div id="method-M000158" class="method-detail">
|
|
141
|
+
<a name="M000158"></a>
|
|
142
|
+
|
|
143
|
+
<div class="method-heading">
|
|
144
|
+
<a href="#M000158" class="method-signature">
|
|
145
|
+
<span class="method-name">duckcall</span><span class="method-args">() {|| ...}</span>
|
|
146
|
+
</a>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<div class="method-description">
|
|
150
|
+
<p><a class="source-toggle" href="#"
|
|
151
|
+
onclick="toggleCode('M000158-source');return false;">[Source]</a></p>
|
|
152
|
+
<div class="method-source-code" id="M000158-source">
|
|
153
|
+
<pre>
|
|
154
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 65</span>
|
|
155
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">DuckHunter</span>.<span class="ruby-identifier">duckcall</span>
|
|
156
|
+
<span class="ruby-keyword kw">begin</span>
|
|
157
|
+
<span class="ruby-keyword kw">yield</span>
|
|
158
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TypeError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
|
159
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>)
|
|
160
|
+
<span class="ruby-keyword kw">retry</span>
|
|
161
|
+
<span class="ruby-keyword kw">end</span>
|
|
162
|
+
<span class="ruby-keyword kw">end</span>
|
|
163
|
+
</pre>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div id="method-M000159" class="method-detail">
|
|
169
|
+
<a name="M000159"></a>
|
|
170
|
+
|
|
171
|
+
<div class="method-heading">
|
|
172
|
+
<a href="#M000159" class="method-signature">
|
|
173
|
+
<span class="method-name">new</span><span class="method-args">()</span>
|
|
174
|
+
</a>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
<div class="method-description">
|
|
178
|
+
<p><a class="source-toggle" href="#"
|
|
179
|
+
onclick="toggleCode('M000159-source');return false;">[Source]</a></p>
|
|
180
|
+
<div class="method-source-code" id="M000159-source">
|
|
181
|
+
<pre>
|
|
182
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 76</span>
|
|
183
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
184
|
+
<span class="ruby-ivar">@ducks</span>, <span class="ruby-ivar">@decoys</span> = {}, {}
|
|
185
|
+
<span class="ruby-keyword kw">end</span>
|
|
186
|
+
</pre>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
192
|
+
|
|
193
|
+
<div id="method-M000160" class="method-detail">
|
|
194
|
+
<a name="M000160"></a>
|
|
195
|
+
|
|
196
|
+
<div class="method-heading">
|
|
197
|
+
<a href="#M000160" class="method-signature">
|
|
198
|
+
<span class="method-name">initialize_copy</span><span class="method-args">(from)</span>
|
|
199
|
+
</a>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
<div class="method-description">
|
|
203
|
+
<p><a class="source-toggle" href="#"
|
|
204
|
+
onclick="toggleCode('M000160-source');return false;">[Source]</a></p>
|
|
205
|
+
<div class="method-source-code" id="M000160-source">
|
|
206
|
+
<pre>
|
|
207
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 80</span>
|
|
208
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize_copy</span>(<span class="ruby-identifier">from</span>)
|
|
209
|
+
<span class="ruby-identifier">initialize</span>
|
|
210
|
+
<span class="ruby-keyword kw">end</span>
|
|
211
|
+
</pre>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
<div id="method-M000161" class="method-detail">
|
|
217
|
+
<a name="M000161"></a>
|
|
218
|
+
|
|
219
|
+
<div class="method-heading">
|
|
220
|
+
<a href="#M000161" class="method-signature">
|
|
221
|
+
<span class="method-name">method_missing</span><span class="method-args">(aSym, *args)</span>
|
|
222
|
+
</a>
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
<div class="method-description">
|
|
226
|
+
<p><a class="source-toggle" href="#"
|
|
227
|
+
onclick="toggleCode('M000161-source');return false;">[Source]</a></p>
|
|
228
|
+
<div class="method-source-code" id="M000161-source">
|
|
229
|
+
<pre>
|
|
230
|
+
<span class="ruby-comment cmt"># File lib/carat/duckhunter.rb, line 84</span>
|
|
231
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">aSym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
232
|
+
<span class="ruby-identifier">aSymStr</span> = <span class="ruby-identifier">aSym</span>.<span class="ruby-identifier">to_s</span>
|
|
233
|
+
|
|
234
|
+
<span class="ruby-comment cmt"># This will happen the first time</span>
|
|
235
|
+
<span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @ducks[aSymStr]</span>
|
|
236
|
+
<span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-node">"#{a.class}"</span> }
|
|
237
|
+
|
|
238
|
+
<span class="ruby-identifier">decoy</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
|
|
239
|
+
|
|
240
|
+
<span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @decoys[aSymStr]</span>
|
|
241
|
+
<span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">decoy</span>
|
|
242
|
+
|
|
243
|
+
<span class="ruby-comment cmt"># build proxy?</span>
|
|
244
|
+
<span class="ruby-comment cmt">#begin</span>
|
|
245
|
+
<span class="ruby-comment cmt"># d = <<-HERE</span>
|
|
246
|
+
<span class="ruby-comment cmt"># def self.#{aSymStr}(*args)</span>
|
|
247
|
+
<span class="ruby-comment cmt"># # This will happen the subsequent times</span>
|
|
248
|
+
<span class="ruby-comment cmt"># @ducks["#{aSymStr}"] << args.collect { |a| #{'"#{a.class}"'} }</span>
|
|
249
|
+
<span class="ruby-comment cmt"># @ducks["#{aSymStr}"].uniq!</span>
|
|
250
|
+
<span class="ruby-comment cmt"># decoy = self.dup</span>
|
|
251
|
+
<span class="ruby-comment cmt"># @decoys["#{aSymStr}"] = [] unless @decoys["#{aSymStr}"]</span>
|
|
252
|
+
<span class="ruby-comment cmt"># @decoys["#{aSymStr}"] << decoy</span>
|
|
253
|
+
<span class="ruby-comment cmt"># decoy</span>
|
|
254
|
+
<span class="ruby-comment cmt"># end</span>
|
|
255
|
+
<span class="ruby-comment cmt"># HERE</span>
|
|
256
|
+
<span class="ruby-comment cmt"># instance_eval d</span>
|
|
257
|
+
<span class="ruby-comment cmt">#rescue SyntaxError</span>
|
|
258
|
+
<span class="ruby-comment cmt"># puts "This error may be avoidable by returning the failing duck type as the error message."</span>
|
|
259
|
+
<span class="ruby-comment cmt"># raise</span>
|
|
260
|
+
<span class="ruby-comment cmt">#end</span>
|
|
261
|
+
|
|
262
|
+
<span class="ruby-identifier">decoy</span>
|
|
263
|
+
<span class="ruby-keyword kw">end</span>
|
|
264
|
+
</pre>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
<div id="validator-badges">
|
|
277
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
</body>
|
|
281
|
+
</html>
|