carats 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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,657 @@
|
|
1
|
+
=begin rdoc
|
2
|
+
|
3
|
+
= IO-Reactor
|
4
|
+
|
5
|
+
An object-oriented multiplexing asynchronous IO mechanism for Ruby.
|
6
|
+
It is an implementation of the Reactor design pattern for multiplexed
|
7
|
+
asynchronous single-thread IO.
|
8
|
+
|
9
|
+
== Description
|
10
|
+
|
11
|
+
This module is a pure-Ruby implementation of an asynchronous multiplexed IO
|
12
|
+
Reactor which is based on the Reactor design pattern found in _Pattern-Oriented
|
13
|
+
Software Architecture, Volume 2: Patterns for Concurrent and Networked
|
14
|
+
Objects_. It allows a single thread to demultiplex and dispatch events from one
|
15
|
+
or more IO objects to the appropriate handler.
|
16
|
+
|
17
|
+
This module used to be called Ruby-Poll, and used to use the poll(2) system
|
18
|
+
call, but this strategy was not portable, and didn't work with Ruby's
|
19
|
+
threads. It now uses IO::select, which should work everywhere Ruby does.
|
20
|
+
|
21
|
+
I would greatly appreciate feedback on any aspect of this software. Suggestions,
|
22
|
+
feature requests, questions, design critiques, and bug reports are most
|
23
|
+
welcome. Relevant patches and minimal test cases are particularly helpful. I may
|
24
|
+
be reached by email at <ged@FaerieMUD.org>.
|
25
|
+
|
26
|
+
== Synopsis
|
27
|
+
|
28
|
+
require 'io/reactor'
|
29
|
+
require 'socket'
|
30
|
+
|
31
|
+
reactorobj = IO::Reactor::new
|
32
|
+
|
33
|
+
# Open a listening socket on port 1138 and register it with the
|
34
|
+
# reactor. When a :read event occurs on it, it means an incoming
|
35
|
+
# connection has been established
|
36
|
+
sock = TCPServer::new('localhost', 1138)
|
37
|
+
reactorobj.register( sock, :read ) {|sock,event|
|
38
|
+
case event
|
39
|
+
# Accept the incoming connection, registering it also with
|
40
|
+
# the reactor; events on client sockets are handled by the
|
41
|
+
# #clientHandler method.
|
42
|
+
when :read
|
43
|
+
clsock = sock.accept
|
44
|
+
reactorobj.register( clsock, :read, :write, &method(:clientHandler) )
|
45
|
+
# Errors on the main listening socket cause the whole
|
46
|
+
# reactor to be shut down
|
47
|
+
when :error
|
48
|
+
reactorobj.clear
|
49
|
+
$stderr.puts "Server error: Shutting down"
|
50
|
+
else
|
51
|
+
$stderr.puts "Unhandled event: #{event}"
|
52
|
+
end
|
53
|
+
}
|
54
|
+
# Drive the reactor until it's empty with a single thread
|
55
|
+
Thread::new { reactorobj.poll until reactorobj.empty? }
|
56
|
+
|
57
|
+
== Requirements
|
58
|
+
|
59
|
+
* Ruby >= 1.8.0
|
60
|
+
|
61
|
+
== More Information
|
62
|
+
|
63
|
+
You can find more information about IO-Reactor, including the latest version, at
|
64
|
+
its project page:
|
65
|
+
|
66
|
+
http://www.devEiate.org/code/IO-Reactor.shtml
|
67
|
+
|
68
|
+
== Author
|
69
|
+
|
70
|
+
Michael Granger <ged@FaerieMUD.org>
|
71
|
+
|
72
|
+
== License
|
73
|
+
|
74
|
+
Copyright (c) 2002, 2003 The FaerieMUD Consortium. All rights reserved.
|
75
|
+
|
76
|
+
IO-Reactor is Open Source Software which is Copyright (c) 2001-2003 by The
|
77
|
+
FaerieMUD Consortium.
|
78
|
+
|
79
|
+
You may use, modify, and/or redistribute this software under the same terms as
|
80
|
+
Ruby itself.
|
81
|
+
|
82
|
+
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
|
83
|
+
INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
|
84
|
+
FITNESS FOR A PARTICULAR PURPOSE.
|
85
|
+
|
86
|
+
== Version
|
87
|
+
|
88
|
+
$Id: reactor.rb,v 1.13 2003/08/04 23:56:14 deveiant Exp $
|
89
|
+
|
90
|
+
=end
|
91
|
+
|
92
|
+
|
93
|
+
require 'delegate'
|
94
|
+
require 'rbconfig'
|
95
|
+
|
96
|
+
### An object-oriented multiplexing asynchronous IO reactor class.
|
97
|
+
class IO::Reactor
|
98
|
+
|
99
|
+
### Class constants
|
100
|
+
Version = /([\d\.]+)/.match( %q{$Revision: 1.13 $} )[1]
|
101
|
+
Rcsid = %q$Id: reactor.rb,v 1.13 2003/08/04 23:56:14 deveiant Exp $
|
102
|
+
|
103
|
+
ValidEvents = [:read, :write, :error]
|
104
|
+
|
105
|
+
### Create and return a new IO reactor object.
|
106
|
+
def initialize
|
107
|
+
@handles = Hash::new {|hsh,key|
|
108
|
+
hsh[ key ] = {
|
109
|
+
:events => [],
|
110
|
+
:handler => nil,
|
111
|
+
:args => [],
|
112
|
+
}
|
113
|
+
}
|
114
|
+
@pendingEvents = Hash::new {|hsh,key| hsh[ key ] = []}
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
######
|
119
|
+
public
|
120
|
+
######
|
121
|
+
|
122
|
+
# The Hash of handles (instances of IO or its subclasses) associated with
|
123
|
+
# the reactor. The keys are the IO objects, and the values are a Hash of
|
124
|
+
# event/s => handler.
|
125
|
+
attr_reader :handles
|
126
|
+
|
127
|
+
# The Hash of unhandled events which occurred in the last call to #poll,
|
128
|
+
# keyed by handle.
|
129
|
+
attr_reader :pendingEvents
|
130
|
+
|
131
|
+
|
132
|
+
### Register the specified IO object with the reactor for events given as
|
133
|
+
### <tt>args</tt>. The reactor will test the given <tt>io</tt> for the
|
134
|
+
### events specified whenever #poll is called. See the #poll method for a
|
135
|
+
### list of valid events. If no events are specified, only <tt>:error</tt>
|
136
|
+
### events will be polled for.
|
137
|
+
###
|
138
|
+
### If a <tt>handler</tt> is specified, it will be called whenever the
|
139
|
+
### <tt>io</tt> has any of the specified <tt>events</tt> occur to it. It
|
140
|
+
### should take at least two parameters: the <tt>io</tt> and the event.
|
141
|
+
###
|
142
|
+
### If +args+ contains any objects except the Symbols '<tt>:read</tt>',
|
143
|
+
### '<tt>:write</tt>', or '<tt>:error</tt>', and a +handler+ is specified,
|
144
|
+
### they will be saved and passed to handler for each event.
|
145
|
+
###
|
146
|
+
### Registering a handle will unregister any previously registered
|
147
|
+
### event/handler+arguments pairs associated with the handle.
|
148
|
+
def register( io, *args, &handler )
|
149
|
+
events = [:read, :write, :error] & args
|
150
|
+
args -= events
|
151
|
+
|
152
|
+
self.unregister( io )
|
153
|
+
self.enableEvents( io, *events )
|
154
|
+
if handler
|
155
|
+
self.setHandler( io, *args, &handler )
|
156
|
+
else
|
157
|
+
self.setArgs( io, *args )
|
158
|
+
end
|
159
|
+
|
160
|
+
return self
|
161
|
+
end
|
162
|
+
alias_method :add, :register
|
163
|
+
|
164
|
+
|
165
|
+
### Add the specified +events+ to the list that will be polled for on the
|
166
|
+
### given +io+ handle.
|
167
|
+
def enableEvents( io, *events )
|
168
|
+
@handles[ io ][:events] |= events
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
### Remove the specified +events+ from the list that will be polled for on
|
173
|
+
### the given +io+ handle.
|
174
|
+
def disableEvents( io, *events )
|
175
|
+
raise RuntimeError, "Cannot disable the :error event" if
|
176
|
+
events.include?( :error )
|
177
|
+
@handles[ io ][:events] -= events
|
178
|
+
end
|
179
|
+
|
180
|
+
|
181
|
+
### Set the handler for events on the given +io+ handle to the specified
|
182
|
+
### +handler+. If any +args+ are present, they will be passed as an exploded
|
183
|
+
### array to the handler for each event. Returns the previously-registered
|
184
|
+
### handler, if any.
|
185
|
+
def setHandler( io, *args, &handler )
|
186
|
+
rval = @handles[ io ][:handler]
|
187
|
+
@handles[ io ][:handler] = handler
|
188
|
+
self.setArgs( io, *args )
|
189
|
+
return rval
|
190
|
+
end
|
191
|
+
|
192
|
+
|
193
|
+
### Remove and return the handler for events on the given +io+ handle.
|
194
|
+
def removeHandler( io )
|
195
|
+
rval = @handles[ io ][:handler]
|
196
|
+
@handles[ io ][:handler] = nil
|
197
|
+
self.removeArgs( io )
|
198
|
+
return rval
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
### Set the additional arguments to pass to the handler for the given +io+
|
203
|
+
### handle on each event to the given +args+.
|
204
|
+
def setArgs( io, *args )
|
205
|
+
rval = @handles[ io ][:args]
|
206
|
+
@handles[ io ][:args] = args
|
207
|
+
return rval
|
208
|
+
end
|
209
|
+
|
210
|
+
|
211
|
+
### Remove the arguments for the given handle to the given +args+.
|
212
|
+
def removeArgs( io )
|
213
|
+
return @handles[ io ][:args].clear
|
214
|
+
end
|
215
|
+
|
216
|
+
|
217
|
+
### Remove the specified <tt>io</tt> from the receiver's list of registered
|
218
|
+
### handles, if present. Returns the handle if it was registered, or
|
219
|
+
### <tt>nil</tt> if it was not.
|
220
|
+
def unregister( io )
|
221
|
+
@pendingEvents.delete( io )
|
222
|
+
@handles.delete( io )
|
223
|
+
end
|
224
|
+
alias_method :remove, :unregister
|
225
|
+
|
226
|
+
|
227
|
+
### Returns true if the specified <tt>io</tt> is registered with the poll
|
228
|
+
### object.
|
229
|
+
def registered?( io )
|
230
|
+
return @handles.has_key?( io )
|
231
|
+
end
|
232
|
+
|
233
|
+
|
234
|
+
### Clear all registered handles from the poll object. Returns the handles
|
235
|
+
### that were cleared.
|
236
|
+
def clear
|
237
|
+
rv = @handles.keys
|
238
|
+
|
239
|
+
@pendingEvents.clear
|
240
|
+
@handles.clear
|
241
|
+
|
242
|
+
return rv
|
243
|
+
end
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
### Poll the handles registered to the reactor for pending events. The
|
248
|
+
### following event types are defined:
|
249
|
+
###
|
250
|
+
### [<tt>:read</tt>]
|
251
|
+
### Data may be read from the handle without blocking.
|
252
|
+
### [<tt>:write</tt>]
|
253
|
+
### Data may be written to the handle without blocking.
|
254
|
+
### [<tt>:error</tt>]
|
255
|
+
### An error has occurred on the handle. This event type is always
|
256
|
+
### enabled, regardless of whether or not it is passed as one of the
|
257
|
+
### <tt>events</tt>.
|
258
|
+
###
|
259
|
+
### Any handlers specified when the handles were registered are run for
|
260
|
+
### those handles with events. If a block is given, it will be invoked once
|
261
|
+
### for each handle which doesn't have an explicit handler. If no block is
|
262
|
+
### given, events without explicit handlers are inserted into the reactor's
|
263
|
+
### <tt>pendingEvents</tt> attribute.
|
264
|
+
###
|
265
|
+
### The <tt>timeout</tt> argument is the number of floating-point seconds to
|
266
|
+
### wait for an event before returning (ie., fourth argument to the
|
267
|
+
### underlying <tt>select()</tt> call); negative timeout values will cause
|
268
|
+
### #poll to block until there is at least one event to report.
|
269
|
+
###
|
270
|
+
### This method returns the number of handles on which one or more events
|
271
|
+
### occurred.
|
272
|
+
def poll( timeout=-1 ) # :yields: io, eventMask
|
273
|
+
timeout = timeout.to_f
|
274
|
+
@pendingEvents.clear
|
275
|
+
count = 0
|
276
|
+
|
277
|
+
unless @handles.empty?
|
278
|
+
timeout = nil if timeout < 0
|
279
|
+
eventedHandles = self.getPendingEvents( timeout )
|
280
|
+
|
281
|
+
# For each event of each io that had an event happen, call any
|
282
|
+
# associated callback, or any provided block, or failing both of
|
283
|
+
# those, add the event to the hash of unhandled pending events.
|
284
|
+
eventedHandles.each {|io,events|
|
285
|
+
count += 1
|
286
|
+
events.each {|ev|
|
287
|
+
args = @handles[ io ][:args]
|
288
|
+
|
289
|
+
if @handles[ io ][:handler]
|
290
|
+
@handles[ io ][:handler].call( io, ev, *args )
|
291
|
+
elsif block_given?
|
292
|
+
yield( io, ev, *args )
|
293
|
+
else
|
294
|
+
@pendingEvents[io].push( ev )
|
295
|
+
end
|
296
|
+
}
|
297
|
+
}
|
298
|
+
end
|
299
|
+
|
300
|
+
return count
|
301
|
+
end
|
302
|
+
|
303
|
+
|
304
|
+
### Returns <tt>true</tt> if no handles are associated with the receiver.
|
305
|
+
def empty?
|
306
|
+
@handles.empty?
|
307
|
+
end
|
308
|
+
|
309
|
+
|
310
|
+
#########
|
311
|
+
protected
|
312
|
+
#########
|
313
|
+
|
314
|
+
### Select on the registered handles, returning a Hash of handles => events
|
315
|
+
### for handles which had events occur.
|
316
|
+
def getPendingEvents( timeout )
|
317
|
+
eventHandles = IO::select( self.getReadHandles, self.getWriteHandles,
|
318
|
+
@handles.keys, timeout ) or return {}
|
319
|
+
eventHash = Hash::new {|hsh,io| hsh[io] = []}
|
320
|
+
|
321
|
+
# Fill in the hash with pending events of each type
|
322
|
+
[:read, :write, :error].each_with_index {|event,i|
|
323
|
+
eventHandles[i].each {|io| eventHash[io].push( event )}
|
324
|
+
}
|
325
|
+
return eventHash
|
326
|
+
end
|
327
|
+
|
328
|
+
|
329
|
+
### Return an Array of handles which have handlers for the <tt>:read</tt>
|
330
|
+
### event.
|
331
|
+
def getReadHandles
|
332
|
+
@handles.
|
333
|
+
find_all {|io,hsh| hsh[:events].include?( :read )}.
|
334
|
+
collect {|io,hsh| io}
|
335
|
+
end
|
336
|
+
|
337
|
+
|
338
|
+
### Return an Array of handles which have handlers for the <tt>:write</tt>
|
339
|
+
### event.
|
340
|
+
def getWriteHandles
|
341
|
+
@handles.
|
342
|
+
find_all {|io,hsh| hsh[:events].include?( :write )}.
|
343
|
+
collect {|io,hsh| io}
|
344
|
+
end
|
345
|
+
|
346
|
+
|
347
|
+
end # class IO::Reactor
|
348
|
+
|
349
|
+
|
350
|
+
=begin
|
351
|
+
|
352
|
+
== ChangeLog
|
353
|
+
|
354
|
+
* 2003-07-21 09:04 Michael Granger <ged@FaerieMUD.org>
|
355
|
+
|
356
|
+
* README (1.5, RELEASE_0_04):
|
357
|
+
|
358
|
+
- Changed to IO::Reactor.
|
359
|
+
|
360
|
+
* 2003-07-21 08:21 Michael Granger <ged@FaerieMUD.org>
|
361
|
+
|
362
|
+
* install.rb (1.1, RELEASE_0_04):
|
363
|
+
|
364
|
+
Initial checkin.
|
365
|
+
|
366
|
+
* 2003-07-21 00:55 Michael Granger <ged@FaerieMUD.org>
|
367
|
+
|
368
|
+
* test.rb (1.7), utils.rb (1.4), examples/chatserver.rb (1.3),
|
369
|
+
lib/io/reactor.rb (1.11), CATALOG (1.2) (utags: RELEASE_0_04):
|
370
|
+
|
371
|
+
- Refactored into IO::Reactor from Ruby-Poll.
|
372
|
+
|
373
|
+
* 2003-07-21 00:54 Michael Granger <ged@FaerieMUD.org>
|
374
|
+
|
375
|
+
* extconf.rb (1.6), poll.c (1.6), lib/poll.rb (1.11):
|
376
|
+
|
377
|
+
- Removed for IO::Reactor, which no longer needs a C backend.
|
378
|
+
|
379
|
+
* 2003-05-08 16:49 Michael Granger <ged@FaerieMUD.org>
|
380
|
+
|
381
|
+
* makesitedocs.rb (1.3, RELEASE_0_04):
|
382
|
+
|
383
|
+
makesitedocs.rb
|
384
|
+
|
385
|
+
* 2003-04-20 22:37 Michael Granger <ged@FaerieMUD.org>
|
386
|
+
|
387
|
+
* test.rb (1.6):
|
388
|
+
|
389
|
+
Added workaround for recent versions of Test::Unit's API changes.
|
390
|
+
|
391
|
+
* 2003-04-20 22:34 Michael Granger <ged@FaerieMUD.org>
|
392
|
+
|
393
|
+
* poll.c (1.5):
|
394
|
+
|
395
|
+
Added code for simulating poll(2) with rb_thread_select() for machines without a native poll(). Based on code for Freehaven by
|
396
|
+
Nick Mathewson <nickm@freehaven.net>.
|
397
|
+
|
398
|
+
* 2003-04-20 22:32 Michael Granger <ged@FaerieMUD.org>
|
399
|
+
|
400
|
+
* extconf.rb (1.5):
|
401
|
+
|
402
|
+
Added fake poll code to allow machines without a poll(2) to use the library. This also might become the primary method of polling, sadly, as Ruby doesn't tolerate other async IO methods very well due to its use of select() for its threading.
|
403
|
+
|
404
|
+
* 2002-10-20 21:47 Michael Granger <ged@FaerieMUD.org>
|
405
|
+
|
406
|
+
* lib/: poll.rb (1.10), io/reactor.rb (1.10) (utags: RELEASE_0_03):
|
407
|
+
|
408
|
+
- Got rid of a type-checking statement, as it didn't account for using an IO
|
409
|
+
inside a wrappered or delegated object.
|
410
|
+
|
411
|
+
- Fixed use of deprecated 'type' method.
|
412
|
+
|
413
|
+
* 2002-09-18 06:33 Michael Granger <ged@FaerieMUD.org>
|
414
|
+
|
415
|
+
* makedocs.rb (1.3, RELEASE_0_04, RELEASE_0_03, RELEASE_0_02):
|
416
|
+
|
417
|
+
- Removed dependence on as-yet-undistributed xhtml RDoc template.
|
418
|
+
|
419
|
+
* 2002-09-06 10:52 Michael Granger <ged@FaerieMUD.org>
|
420
|
+
|
421
|
+
* poll.c (1.4, RELEASE_0_03, RELEASE_0_02):
|
422
|
+
|
423
|
+
- Added interrupt-handling to the _poll call.
|
424
|
+
|
425
|
+
- Added more-informative debugging.
|
426
|
+
|
427
|
+
* 2002-07-20 10:07 Michael Granger <ged@FaerieMUD.org>
|
428
|
+
|
429
|
+
* lib/: poll.rb (1.9), io/reactor.rb (1.9) (utags: RELEASE_0_02):
|
430
|
+
|
431
|
+
- New method: #setMask().
|
432
|
+
|
433
|
+
- New method: #callback().
|
434
|
+
|
435
|
+
- New method: #args().
|
436
|
+
|
437
|
+
- Implemented the #register() method in terms of the other setter methods to
|
438
|
+
consolidate the maintenance of internal data structures.
|
439
|
+
|
440
|
+
- Added missing callback *args to #setCallback().
|
441
|
+
|
442
|
+
- Cleared up documentation for #register.
|
443
|
+
|
444
|
+
* 2002-07-20 10:03 Michael Granger <ged@FaerieMUD.org>
|
445
|
+
|
446
|
+
* examples/chatserver.rb (1.2, RELEASE_0_03, RELEASE_0_02):
|
447
|
+
|
448
|
+
- Changed name of user class to 'User' to avoid confusion about its role in the
|
449
|
+
server.
|
450
|
+
|
451
|
+
* 2002-07-20 10:01 Michael Granger <ged@FaerieMUD.org>
|
452
|
+
|
453
|
+
* test.rb (1.5, RELEASE_0_03, RELEASE_0_02):
|
454
|
+
|
455
|
+
- Added test for the #callback method.
|
456
|
+
|
457
|
+
* 2002-07-20 10:01 Michael Granger <ged@FaerieMUD.org>
|
458
|
+
|
459
|
+
* makedocs.rb (1.2):
|
460
|
+
|
461
|
+
- Added template argument to make it use the xhtml template.
|
462
|
+
|
463
|
+
* 2002-07-19 10:29 Michael Granger <ged@FaerieMUD.org>
|
464
|
+
|
465
|
+
* lib/: poll.rb (1.8), io/reactor.rb (1.8):
|
466
|
+
|
467
|
+
- Fixed a funny typo.
|
468
|
+
|
469
|
+
* 2002-07-18 21:58 Michael Granger <ged@FaerieMUD.org>
|
470
|
+
|
471
|
+
* CATALOG (1.1, RELEASE_0_03, RELEASE_0_02):
|
472
|
+
|
473
|
+
Initial commit.
|
474
|
+
|
475
|
+
* 2002-07-18 21:58 Michael Granger <ged@FaerieMUD.org>
|
476
|
+
|
477
|
+
* utils.rb (1.3, RELEASE_0_03, RELEASE_0_02):
|
478
|
+
|
479
|
+
- Fixed typo in vetManifest()
|
480
|
+
|
481
|
+
- Added case to read the documentation CATALOG in the base directory if it's not
|
482
|
+
in the docs/ directory.
|
483
|
+
|
484
|
+
* 2002-07-18 21:55 Michael Granger <ged@FaerieMUD.org>
|
485
|
+
|
486
|
+
* makesitedocs.rb (1.2, RELEASE_0_03, RELEASE_0_02):
|
487
|
+
|
488
|
+
- Merged some of the features from the MUES doc-gen script.
|
489
|
+
|
490
|
+
* 2002-07-18 21:52 Michael Granger <ged@FaerieMUD.org>
|
491
|
+
|
492
|
+
* lib/: poll.rb (1.7), io/reactor.rb (1.7):
|
493
|
+
|
494
|
+
- Added callback arguments to the register() method.
|
495
|
+
|
496
|
+
* 2002-07-18 21:52 Michael Granger <ged@FaerieMUD.org>
|
497
|
+
|
498
|
+
* test.rb (1.4):
|
499
|
+
|
500
|
+
- Added test for new "with-args" register() method call.
|
501
|
+
|
502
|
+
* 2002-07-18 09:42 Michael Granger <ged@FaerieMUD.org>
|
503
|
+
|
504
|
+
* utils.rb (1.2):
|
505
|
+
|
506
|
+
- Added a debugMsg function.
|
507
|
+
|
508
|
+
- Qualified all functions as module_functions.
|
509
|
+
|
510
|
+
* 2002-07-18 09:40 Michael Granger <ged@FaerieMUD.org>
|
511
|
+
|
512
|
+
* lib/: poll.rb (1.6), io/reactor.rb (1.6):
|
513
|
+
|
514
|
+
- Fixed some typos
|
515
|
+
|
516
|
+
- Added clarification and additional documentation for some methods.
|
517
|
+
|
518
|
+
* 2002-07-18 09:35 Michael Granger <ged@FaerieMUD.org>
|
519
|
+
|
520
|
+
* README (1.4, RELEASE_0_03, RELEASE_0_02):
|
521
|
+
|
522
|
+
- Fixed a typo.
|
523
|
+
|
524
|
+
* 2002-04-18 16:53 Michael Granger <ged@FaerieMUD.org>
|
525
|
+
|
526
|
+
* extconf.rb (1.4, RELEASE_0_03, RELEASE_0_02):
|
527
|
+
|
528
|
+
- Corrected a bug in the header =:)
|
529
|
+
|
530
|
+
* 2002-04-18 12:01 Michael Granger <ged@FaerieMUD.org>
|
531
|
+
|
532
|
+
* makedist.rb (1.1, RELEASE_0_04, RELEASE_0_03, RELEASE_0_02),
|
533
|
+
makesitedocs.rb (1.1), utils.rb (1.1) (utags: RELEASE_0_01):
|
534
|
+
|
535
|
+
Initial commit
|
536
|
+
|
537
|
+
* 2002-04-18 11:24 Michael Granger <ged@FaerieMUD.org>
|
538
|
+
|
539
|
+
* extconf.rb (1.3, RELEASE_0_01):
|
540
|
+
|
541
|
+
- Corrected path to the docs-generation script.
|
542
|
+
|
543
|
+
* 2002-04-18 10:23 Michael Granger <ged@FaerieMUD.org>
|
544
|
+
|
545
|
+
* makedocs.rb (1.1, RELEASE_0_01):
|
546
|
+
|
547
|
+
Initial commit
|
548
|
+
|
549
|
+
* 2002-04-18 10:23 Michael Granger <ged@FaerieMUD.org>
|
550
|
+
|
551
|
+
* poll.c (1.3, RELEASE_0_01):
|
552
|
+
|
553
|
+
- Added some comments for RDoc, should it ever parse protected methods.
|
554
|
+
|
555
|
+
- Changed the name of the second arg to _poll() to handleArray, as it wasn't
|
556
|
+
really an array of file descriptors.
|
557
|
+
|
558
|
+
* 2002-04-18 08:44 Michael Granger <ged@FaerieMUD.org>
|
559
|
+
|
560
|
+
* test.rb (1.3, RELEASE_0_01):
|
561
|
+
|
562
|
+
- Removed the "ext" dir from the ones being added to the LOAD_PATH, as it's gone
|
563
|
+
away.
|
564
|
+
|
565
|
+
- Removed a require left over from the failed tempfile experiment.
|
566
|
+
|
567
|
+
* 2002-04-18 08:43 Michael Granger <ged@FaerieMUD.org>
|
568
|
+
|
569
|
+
* extconf.rb (1.2):
|
570
|
+
|
571
|
+
- Moved the ext/extconf.rb stuff into this one because the ext directory is
|
572
|
+
going away.
|
573
|
+
|
574
|
+
* 2002-04-18 08:42 Michael Granger <ged@FaerieMUD.org>
|
575
|
+
|
576
|
+
* README (1.3, RELEASE_0_01):
|
577
|
+
|
578
|
+
- Changed from alpha to beta
|
579
|
+
|
580
|
+
- Added requirements section
|
581
|
+
|
582
|
+
- Modified installation section to use 'site-install' instead of 'install', and
|
583
|
+
took stuff out that would have been redundant with the requires section.
|
584
|
+
|
585
|
+
* 2002-04-17 15:34 Michael Granger <ged@FaerieMUD.org>
|
586
|
+
|
587
|
+
* lib/: poll.rb (1.5), io/reactor.rb (1.5) (utags: RELEASE_0_01):
|
588
|
+
|
589
|
+
- Added :yeilds: RDoc construct to #poll.
|
590
|
+
|
591
|
+
* 2002-04-17 15:20 Michael Granger <ged@FaerieMUD.org>
|
592
|
+
|
593
|
+
* README (1.2):
|
594
|
+
|
595
|
+
- Separated abstract from header.
|
596
|
+
|
597
|
+
* 2002-04-17 15:18 Michael Granger <ged@FaerieMUD.org>
|
598
|
+
|
599
|
+
* lib/: poll.rb (1.4), io/reactor.rb (1.4):
|
600
|
+
|
601
|
+
- Clarified abstract.
|
602
|
+
|
603
|
+
* 2002-04-17 15:14 Michael Granger <ged@FaerieMUD.org>
|
604
|
+
|
605
|
+
* README (1.1):
|
606
|
+
|
607
|
+
Initial commit
|
608
|
+
|
609
|
+
* 2002-04-17 07:03 Michael Granger <ged@FaerieMUD.org>
|
610
|
+
|
611
|
+
* lib/: poll.rb (1.3), io/reactor.rb (1.3):
|
612
|
+
|
613
|
+
- Fixed documentation for the EventMask bitwise operators.
|
614
|
+
|
615
|
+
* 2002-04-17 06:48 Michael Granger <ged@FaerieMUD.org>
|
616
|
+
|
617
|
+
* lib/: poll.rb (1.2), io/reactor.rb (1.2):
|
618
|
+
|
619
|
+
- Re-implemented after the first one was wiped out by extconf.
|
620
|
+
|
621
|
+
* 2002-04-17 06:47 Michael Granger <ged@FaerieMUD.org>
|
622
|
+
|
623
|
+
* poll.c (1.2):
|
624
|
+
|
625
|
+
- Added shortcut constants
|
626
|
+
|
627
|
+
- Added _GNU_SOURCE define to catch the additional poll.h constants under Linux
|
628
|
+
|
629
|
+
- Changed _poll to a protected method.
|
630
|
+
|
631
|
+
* 2002-04-17 06:46 Michael Granger <ged@FaerieMUD.org>
|
632
|
+
|
633
|
+
* test.rb (1.2):
|
634
|
+
|
635
|
+
- Added lots of stuff, redesigned to match the new API
|
636
|
+
|
637
|
+
* 2002-04-17 06:45 Michael Granger <ged@FaerieMUD.org>
|
638
|
+
|
639
|
+
* examples/chatserver.rb (1.1, RELEASE_0_01):
|
640
|
+
|
641
|
+
Initial commit
|
642
|
+
|
643
|
+
* 2002-04-16 04:47 Michael Granger <ged@FaerieMUD.org>
|
644
|
+
|
645
|
+
* extconf.rb (1.1), poll.c (1.1), test.rb (1.1), lib/poll.rb (1.1),
|
646
|
+
lib/io/reactor.rb (1.1):
|
647
|
+
|
648
|
+
Initial revision
|
649
|
+
|
650
|
+
* 2002-04-16 04:47 Michael Granger <ged@FaerieMUD.org>
|
651
|
+
|
652
|
+
* extconf.rb (1.1.1.1), poll.c (1.1.1.1), test.rb (1.1.1.1),
|
653
|
+
lib/poll.rb (1.1.1.1), lib/io/reactor.rb (1.1.1.1) (utags: IMPORT):
|
654
|
+
|
655
|
+
Initial import
|
656
|
+
|
657
|
+
=end
|