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,259 @@
|
|
|
1
|
+
=begin rdoc
|
|
2
|
+
|
|
3
|
+
= Descrete Range Class
|
|
4
|
+
|
|
5
|
+
This is the Range class slightly modified to be truly desecrete in nature.
|
|
6
|
+
Use the Interval class (see interval.rb) for a truly continuious range class.
|
|
7
|
+
|
|
8
|
+
== Synopsis
|
|
9
|
+
|
|
10
|
+
The following code uses class +Xs+, which is defined in the
|
|
11
|
+
class-level documentation.
|
|
12
|
+
|
|
13
|
+
require 'trix/range'
|
|
14
|
+
|
|
15
|
+
range = Xs.new(1)..Xs.new(10)
|
|
16
|
+
range.step(2) {|x| puts x}
|
|
17
|
+
range.step(3) {|x| puts x}
|
|
18
|
+
|
|
19
|
+
_produces:_
|
|
20
|
+
|
|
21
|
+
1 x
|
|
22
|
+
3 xxx
|
|
23
|
+
5 xxxxx
|
|
24
|
+
7 xxxxxxx
|
|
25
|
+
9 xxxxxxxxx
|
|
26
|
+
1 x
|
|
27
|
+
4 xxxx
|
|
28
|
+
7 xxxxxxx
|
|
29
|
+
10 xxxxxxxxxx
|
|
30
|
+
|
|
31
|
+
== Notes
|
|
32
|
+
|
|
33
|
+
Range is not quite have descrete behavior becasue it also performs
|
|
34
|
+
double-duty as a continious interval class. Its just a bit too overloaded
|
|
35
|
+
and this limits its full potential. To remedy, a separate Interval class
|
|
36
|
+
has been created to handle true interval functionality. And here we
|
|
37
|
+
adjust Range to be truely discrete.
|
|
38
|
+
|
|
39
|
+
Range originally dependened on two methods: #succ and #<=>. If numeric
|
|
40
|
+
ranges were the only concern, those could just as well be #+ and #<=>,
|
|
41
|
+
but esoteric forms make that unfeasible --the obvious example being a
|
|
42
|
+
String range. To properly handle this, Range fully seperates and extends
|
|
43
|
+
the parallel methods: #succ for #+, #cmp for #<=> ( in the future we may
|
|
44
|
+
add #pred for #- ). It also adds the option of #distance to properly
|
|
45
|
+
calculate the difference between the sentinals. This is neccessary
|
|
46
|
+
to ensure congruent bahavior. For instance, presently String Range's
|
|
47
|
+
can give bad results because #<=> does not measure order in the same
|
|
48
|
+
manner that #succ generates order.
|
|
49
|
+
|
|
50
|
+
== Todo List
|
|
51
|
+
|
|
52
|
+
* Add skip parameter, to allow skip-ranges, i.e. skipping successive iterations.
|
|
53
|
+
|
|
54
|
+
== Author
|
|
55
|
+
|
|
56
|
+
* Thomas Sawyer
|
|
57
|
+
|
|
58
|
+
=end
|
|
59
|
+
|
|
60
|
+
require 'carat/infinity'
|
|
61
|
+
require 'carat/interval'
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class Range
|
|
65
|
+
|
|
66
|
+
alias_method :initialize_simple, :initialize
|
|
67
|
+
private :initialize_simple
|
|
68
|
+
|
|
69
|
+
def initialize( first, halt, exclude_last=false, &succ )
|
|
70
|
+
@first = first
|
|
71
|
+
@last = halt.kind_of?(Proc) ? nil : halt
|
|
72
|
+
@halt = @last ? nil : halt
|
|
73
|
+
#@exclude_first = exclude_first
|
|
74
|
+
@exclude_last = exclude_last
|
|
75
|
+
@direction = (@last <=> @first)
|
|
76
|
+
#@direction = 1 if @direction == 0
|
|
77
|
+
@succ = succ || nil #@first.method(:succ).to_proc
|
|
78
|
+
#@halt = nil #exclude_last? ? proc{ |x| x.cmp(@last) != -1 } : proc{ |x| x.cmp(@last) == 1 }
|
|
79
|
+
initialize_simple(@first, @last, @exclude_last)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def succ ; @succ ; end
|
|
83
|
+
|
|
84
|
+
def succ!(s)
|
|
85
|
+
if @succ
|
|
86
|
+
@succ.call(s)
|
|
87
|
+
else
|
|
88
|
+
s.succ
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def succ=(succ_proc)
|
|
93
|
+
raise ArgumentError unless Proc === succ_proc
|
|
94
|
+
@succ = succ_proc
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def halt ; @halt ; end
|
|
98
|
+
|
|
99
|
+
def halt?(s)
|
|
100
|
+
if @halt
|
|
101
|
+
@halt.call(s)
|
|
102
|
+
else
|
|
103
|
+
if @exclude_last
|
|
104
|
+
s.cmp(@last) != -1
|
|
105
|
+
else
|
|
106
|
+
s.cmp(@last) == 1
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def halt=(halt_proc)
|
|
112
|
+
raise ArgumentError unless Proc === halt_proc
|
|
113
|
+
@halt = halt_proc
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
#def first ; @first ; end
|
|
117
|
+
#def last ; @last ; end
|
|
118
|
+
#def exclude_first? ; @exclude_first ; end
|
|
119
|
+
#def exclude_last? ; @exclude_last ; end
|
|
120
|
+
alias exclude_last? exclude_end?
|
|
121
|
+
|
|
122
|
+
def direction
|
|
123
|
+
@direction ||= (@last <=> @first)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# poor names
|
|
127
|
+
#undef_method :begin
|
|
128
|
+
#undef_method :end
|
|
129
|
+
#undef_method :exclude_end?
|
|
130
|
+
|
|
131
|
+
def -@ ; Range.new( @first, @last, true, &@succ ) ; end
|
|
132
|
+
|
|
133
|
+
def distance
|
|
134
|
+
return @last.distance(@first) if @last and @last.respond_to?(:distance)
|
|
135
|
+
self.to_a.length # should it just be nil instead?
|
|
136
|
+
end
|
|
137
|
+
alias_method( :length, :distance )
|
|
138
|
+
alias_method( :size, :distance )
|
|
139
|
+
|
|
140
|
+
def min
|
|
141
|
+
(@first.cmp(@last) == -1) ? @first : @last
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def max
|
|
145
|
+
(@first.cmp(@last) == 1) ? @first : @last
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# +between?+ simply tests whether the given value falls
|
|
149
|
+
# between the sentinels by comparison. It does not
|
|
150
|
+
# verify that the value is acutally in the range's sequence.
|
|
151
|
+
def between?(x)
|
|
152
|
+
#tf = exclude_first? ? 1 : 0
|
|
153
|
+
tl = exclude_last? ? -1 : 0
|
|
154
|
+
# if other classes handled Infinity in their <=> method
|
|
155
|
+
# (which probably they should) this clause would not be required
|
|
156
|
+
if first.kind_of?(InfinityClass)
|
|
157
|
+
ft = ((first <=> x) <= tf)
|
|
158
|
+
else
|
|
159
|
+
ft = (x <=> first) >= tf
|
|
160
|
+
end
|
|
161
|
+
if last.kind_of?(InfinityClass)
|
|
162
|
+
fl = ((last <=> x) >= tl)
|
|
163
|
+
else
|
|
164
|
+
fl = (x <=> last) <= tl
|
|
165
|
+
end
|
|
166
|
+
ft && fl
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Is this proper alias of +===+?
|
|
170
|
+
alias_method( :===, :between? )
|
|
171
|
+
|
|
172
|
+
# +include?+ is an alias for +member?+. It is like between
|
|
173
|
+
# but makes sure that the value is in the range sequence.
|
|
174
|
+
alias_method( :include?, :member? )
|
|
175
|
+
|
|
176
|
+
# Compares two ranges to see if they are equal
|
|
177
|
+
def eql?(other)
|
|
178
|
+
return false unless @first == other.first
|
|
179
|
+
other_last = other.exclude_last? ? other.last : other.last
|
|
180
|
+
if self.exclude_last? and not other.exclude_last?
|
|
181
|
+
return false unless self.last == other.last.succ
|
|
182
|
+
elsif other.exclude_last? and not self.exclude_last?
|
|
183
|
+
return false unless self.last.succ == other.last
|
|
184
|
+
else
|
|
185
|
+
return false unless @last == other.last
|
|
186
|
+
end
|
|
187
|
+
true
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
alias each_succ each
|
|
191
|
+
def each( &blk )
|
|
192
|
+
return each_succ( &blk ) unless @succ or @halt
|
|
193
|
+
if @halt
|
|
194
|
+
halt_proc = @halt
|
|
195
|
+
else
|
|
196
|
+
halt_proc = exclude_last? ? proc{ |x| x.cmp(@last) != -1 } : proc{ |x| x.cmp(@last) == 1 }
|
|
197
|
+
end
|
|
198
|
+
#t = exclude_last? ? -1 : 0
|
|
199
|
+
s = @first
|
|
200
|
+
if @succ
|
|
201
|
+
#while (s <=> @last) == -1 or (s <=> @last) == t
|
|
202
|
+
until halt_proc.call(s)
|
|
203
|
+
yield(s)
|
|
204
|
+
@succ.call(s)
|
|
205
|
+
end
|
|
206
|
+
else
|
|
207
|
+
#while (s <=> @last) == -1 or (s <=> @last) == t
|
|
208
|
+
until halt_proc.call(s)
|
|
209
|
+
yield(s)
|
|
210
|
+
s.succ
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
# # each(n) where n is steps, if n is negative it is nth
|
|
216
|
+
# # I know, it's a neg num trick :( but I think it's
|
|
217
|
+
# # better then having another method like #each_nth,
|
|
218
|
+
# # cause then you'd need #to_a_nth, too, etc.
|
|
219
|
+
# def each(n=1) # :yield:
|
|
220
|
+
# n = (length / n.abs) if n < 0
|
|
221
|
+
# n = n * direction
|
|
222
|
+
# i = first; i.succ(n) if exclude_first?
|
|
223
|
+
# t = exclude_last? ? -1 : 0
|
|
224
|
+
# while (i <=> last) == -1 or (i <=> last) == t
|
|
225
|
+
# yield(i)
|
|
226
|
+
# i.succ(n)
|
|
227
|
+
# end
|
|
228
|
+
# end
|
|
229
|
+
|
|
230
|
+
# # each(n) where n is steps, if n is negative it is nth
|
|
231
|
+
# # I know, it's a neg num trick :( but I think it's
|
|
232
|
+
# # better then having another method like #each_nth,
|
|
233
|
+
# # cause then you'd need #to_a_nth, too, etc.
|
|
234
|
+
# def reverse_each(n=1) # :yield:
|
|
235
|
+
# n = (length / n.abs) if n < 0
|
|
236
|
+
# n = n * direction
|
|
237
|
+
# i = last; i -= n if exclude_first?
|
|
238
|
+
# t = exclude_first? ? 1 : 0
|
|
239
|
+
# while (i <=> first) == 1 or (i <=> first) == t
|
|
240
|
+
# yield(i)
|
|
241
|
+
# i += n
|
|
242
|
+
# end
|
|
243
|
+
# end
|
|
244
|
+
|
|
245
|
+
# def to_a(n=1)
|
|
246
|
+
# a=[]; each(n){|e| a << e}
|
|
247
|
+
# a
|
|
248
|
+
# end
|
|
249
|
+
|
|
250
|
+
# Is this even desirable at this point?
|
|
251
|
+
# Sequences depend on #succ rather then #+
|
|
252
|
+
# so don't expect the same results from each!
|
|
253
|
+
# def to_seq
|
|
254
|
+
# seed = exclude_first? ? first.succ : first
|
|
255
|
+
# halt = exclude_last? ? proc{|x| (x <=> last) >= 0} : proc{|x| (x <=> last) > 0}
|
|
256
|
+
# Sequence.new( seed, &halt )
|
|
257
|
+
# end
|
|
258
|
+
|
|
259
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
= RubyInfo
|
|
4
|
+
|
|
5
|
+
Constants pertaining to Ruby itself.
|
|
6
|
+
|
|
7
|
+
== Authors
|
|
8
|
+
|
|
9
|
+
* Minero Aoki
|
|
10
|
+
* T. Onoma
|
|
11
|
+
|
|
12
|
+
== Legal
|
|
13
|
+
|
|
14
|
+
Adapted from RubyParams module by Minero Aoki
|
|
15
|
+
Copyright (c) 1999-2002 Minero Aoki <aamine@loveruby.net>
|
|
16
|
+
|
|
17
|
+
This program is free software.
|
|
18
|
+
You can distribute/modify this program under the terms of
|
|
19
|
+
the GNU Lesser General Public License version 2 or later.
|
|
20
|
+
|
|
21
|
+
== Version
|
|
22
|
+
|
|
23
|
+
$Id: rubyloader.rb,v 1.3 2002/01/05 06:19:34 aamine Exp $
|
|
24
|
+
|
|
25
|
+
=end
|
|
26
|
+
|
|
27
|
+
require 'rbconfig'
|
|
28
|
+
|
|
29
|
+
module RubyInfo
|
|
30
|
+
|
|
31
|
+
CONFIG = Config::CONFIG
|
|
32
|
+
|
|
33
|
+
PLATFROM = RUBY_PLATFORM
|
|
34
|
+
|
|
35
|
+
RUBY = CONFIG['ruby_install_name']
|
|
36
|
+
VERSION = RUBY_VERSION
|
|
37
|
+
RELEASE_DATE = RUBY_RELEASE_DATE
|
|
38
|
+
|
|
39
|
+
MAJOR_VERSION = CONFIG['MAJOR'].to_i
|
|
40
|
+
MINOR_VERSION = CONFIG['MINOR'].to_i
|
|
41
|
+
TEENY_VERSION = CONFIG['TEENY'].to_i
|
|
42
|
+
#VERSION = CONFIG['MAJOR'] + '.' + CONFIG['MINOR']
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
BINDIR = File.join( CONFIG['bindir'] )
|
|
47
|
+
LIBDIR = File.join( CONFIG['libdir'], 'ruby' )
|
|
48
|
+
DATADIR = File.join( CONFIG['datadir'] )
|
|
49
|
+
|
|
50
|
+
ARCH = CONFIG['arch']
|
|
51
|
+
|
|
52
|
+
NEW_LIB_PATH = ((MAJOR_VERSION >= 2) or
|
|
53
|
+
((MAJOR_VERSION == 1) and
|
|
54
|
+
((MINOR_VERSION >= 5) or
|
|
55
|
+
((MINOR_VERSION == 4) and (TEENY_VERSION >= 4)))))
|
|
56
|
+
|
|
57
|
+
if NEW_LIB_PATH then
|
|
58
|
+
SITELIBDIR = File.join( LIBDIR, 'site_ruby', VERSION )
|
|
59
|
+
else
|
|
60
|
+
SITELIBDIR = File.join( LIBDIR, VERSION, 'site_ruby' )
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
STDLIBDIR = File.join( LIBDIR, VERSION )
|
|
64
|
+
RBDIR = File.join( STDLIBDIR )
|
|
65
|
+
SODIR = File.join( STDLIBDIR, ARCH )
|
|
66
|
+
|
|
67
|
+
SITE_RB = File.join( SITELIBDIR )
|
|
68
|
+
SITE_SO = File.join( SITELIBDIR, ARCH )
|
|
69
|
+
|
|
70
|
+
RUBY_PATH = File.join( BINDIR, RUBY )
|
|
71
|
+
|
|
72
|
+
DLEXT = CONFIG['DLEXT']
|
|
73
|
+
Extentions = [ 'rb', DLEXT ]
|
|
74
|
+
|
|
75
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
System module is inteded for system info. Mostly is is used
|
|
4
|
+
as a service module but it can be used as a mixin too module System.
|
|
5
|
+
|
|
6
|
+
=end
|
|
7
|
+
|
|
8
|
+
module System
|
|
9
|
+
|
|
10
|
+
# service or mixin
|
|
11
|
+
extend self
|
|
12
|
+
|
|
13
|
+
### Execution Environment
|
|
14
|
+
|
|
15
|
+
def program_name; $0 ; end
|
|
16
|
+
def program_name=(x); $0=x ; end
|
|
17
|
+
|
|
18
|
+
def argv; $* ; end
|
|
19
|
+
alias options argv
|
|
20
|
+
|
|
21
|
+
# these won't work here
|
|
22
|
+
#def file; __FILE__ ; end
|
|
23
|
+
#def filepath; File.expand_path(__FILE__) ; end
|
|
24
|
+
#def lineno; __LINE__ ; end
|
|
25
|
+
|
|
26
|
+
def process_id; $$ ; end
|
|
27
|
+
alias_method :pid, :process_id
|
|
28
|
+
|
|
29
|
+
def child_status; $? ; end
|
|
30
|
+
alias exit_status child_status
|
|
31
|
+
|
|
32
|
+
def error_info; $! ; end
|
|
33
|
+
def error_position; $@ ; end
|
|
34
|
+
|
|
35
|
+
def debug; $DEBUG; end
|
|
36
|
+
|
|
37
|
+
def safe; $SAFE; end
|
|
38
|
+
|
|
39
|
+
def load_path; $: ; end
|
|
40
|
+
|
|
41
|
+
def loaded_features; $" ; end
|
|
42
|
+
alias_method :required, :loaded_features
|
|
43
|
+
|
|
44
|
+
def verbose; $VERBOSE; end
|
|
45
|
+
def verbose=(x); $VERBOSE=x; end
|
|
46
|
+
|
|
47
|
+
def coding; $-K ; end
|
|
48
|
+
def coding=(x); $-K=x ; end
|
|
49
|
+
|
|
50
|
+
def line_end_processing; $-l ; end
|
|
51
|
+
|
|
52
|
+
def program_loop; $-p ; end
|
|
53
|
+
|
|
54
|
+
def env; ENV; end
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### Input/Ouput Variables
|
|
58
|
+
|
|
59
|
+
def stdin; $stdin ; end
|
|
60
|
+
def stdin=(x); $stdin=x ; end
|
|
61
|
+
|
|
62
|
+
def stdout; $stdout ; end
|
|
63
|
+
def stdout=(x); $stdout=x ; end
|
|
64
|
+
|
|
65
|
+
def stderr; $stderr ; end
|
|
66
|
+
def stderr=(x); $stderr=x ; end
|
|
67
|
+
|
|
68
|
+
def default_input; $< ; end
|
|
69
|
+
alias_method :defin, :default_input
|
|
70
|
+
alias_method :argf, :default_input
|
|
71
|
+
|
|
72
|
+
def default_output; $> ; end
|
|
73
|
+
def default_output=(x); $defout=x ; end
|
|
74
|
+
alias_method :defout, :default_output
|
|
75
|
+
alias_method :defout=, :default_output=
|
|
76
|
+
|
|
77
|
+
def output_record_separator; $\ ; end
|
|
78
|
+
def output_record_separator=(x); $\=x ; end
|
|
79
|
+
alias_method :ors, :output_record_separator
|
|
80
|
+
alias_method :ors=, :output_record_separator=
|
|
81
|
+
|
|
82
|
+
def output_field_separator; $-F ; end
|
|
83
|
+
def output_field_separator=(x); $-F=x ; end
|
|
84
|
+
alias_method :ofs, :output_field_separator
|
|
85
|
+
alias_method :ofs=, :output_field_separator=
|
|
86
|
+
|
|
87
|
+
def input_record_separator; $/ ; end
|
|
88
|
+
def input_record_separator=(x); $/=x ; end
|
|
89
|
+
alias_method :rs, :input_record_separator
|
|
90
|
+
alias_method :rs=, :input_record_separator=
|
|
91
|
+
|
|
92
|
+
def input_field_separator; $/ ; end
|
|
93
|
+
def input_field_separator=(x); $/=x ; end
|
|
94
|
+
alias_method :fs, :input_field_separator
|
|
95
|
+
alias_method :fs=, :input_field_separator=
|
|
96
|
+
|
|
97
|
+
def input_line_number; $. ; end
|
|
98
|
+
alias_method :input_lineno, :input_line_number
|
|
99
|
+
|
|
100
|
+
###
|
|
101
|
+
|
|
102
|
+
def data; DATA ; end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
require 'carat/range'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class GeneralTest < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_include_001
|
|
9
|
+
a = Range.new(1,10)
|
|
10
|
+
assert_equal(false, a.include?(0))
|
|
11
|
+
assert_equal(true, a.include?(1))
|
|
12
|
+
assert_equal(true, a.include?(2))
|
|
13
|
+
assert_equal(true, a.include?(9))
|
|
14
|
+
assert_equal(true, a.include?(10))
|
|
15
|
+
assert_equal(false, a.include?(11))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_include_002
|
|
19
|
+
a = Range.new(1,10,false,true)
|
|
20
|
+
assert_equal(false, a.include?(0))
|
|
21
|
+
assert_equal(true, a.include?(1))
|
|
22
|
+
assert_equal(true, a.include?(2))
|
|
23
|
+
assert_equal(true, a.include?(9))
|
|
24
|
+
assert_equal(false, a.include?(10))
|
|
25
|
+
assert_equal(false, a.include?(11))
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_include_003
|
|
29
|
+
a = Range.new(1,10,true,false)
|
|
30
|
+
assert_equal(false, a.include?(0))
|
|
31
|
+
assert_equal(false, a.include?(1))
|
|
32
|
+
assert_equal(true, a.include?(2))
|
|
33
|
+
assert_equal(true, a.include?(9))
|
|
34
|
+
assert_equal(true, a.include?(10))
|
|
35
|
+
assert_equal(false, a.include?(11))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_include_004
|
|
39
|
+
a = Range.new(1,10,true,true)
|
|
40
|
+
assert_equal(false, a.include?(0))
|
|
41
|
+
assert_equal(false, a.include?(1))
|
|
42
|
+
assert_equal(true, a.include?(2))
|
|
43
|
+
assert_equal(true, a.include?(9))
|
|
44
|
+
assert_equal(false, a.include?(10))
|
|
45
|
+
assert_equal(false, a.include?(11))
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class LrgNumericTest < Test::Unit::TestCase
|
|
51
|
+
def test_include
|
|
52
|
+
a = Range.new(0,100000000)
|
|
53
|
+
assert_equal(true, a.include?(0))
|
|
54
|
+
assert_equal(true, a.include?(1000))
|
|
55
|
+
assert_equal(true, a.include?(1000000))
|
|
56
|
+
assert_equal(true, a.include?(100000000))
|
|
57
|
+
assert_equal(false, a.include?(INFINITY))
|
|
58
|
+
end
|
|
59
|
+
def test_include_with_step
|
|
60
|
+
a = Range.new(0,100000000)
|
|
61
|
+
assert_equal(true, a.include?(0))
|
|
62
|
+
assert_equal(true, a.include?(5))
|
|
63
|
+
assert_equal(true, a.include?(70007))
|
|
64
|
+
assert_equal(true, a.include?(5000005))
|
|
65
|
+
assert_equal(false, a.include?(INFINITY))
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class InfTest < Test::Unit::TestCase
|
|
70
|
+
def test_include?
|
|
71
|
+
a = Range.new(-INFINITY,-3)
|
|
72
|
+
assert_equal(true, a.include?(-INFINITY))
|
|
73
|
+
assert_equal(true, a.include?(-4))
|
|
74
|
+
assert_equal(true, a.include?(-3))
|
|
75
|
+
assert_equal(false, a.include?(-2))
|
|
76
|
+
assert_equal(false, a.include?(INFINITY))
|
|
77
|
+
a = Range.new(-INFINITY,-3,false,true)
|
|
78
|
+
assert_equal(true, a.include?(-INFINITY))
|
|
79
|
+
assert_equal(true, a.include?(-4))
|
|
80
|
+
assert_equal(false, a.include?(-3))
|
|
81
|
+
assert_equal(false, a.include?(-2))
|
|
82
|
+
assert_equal(false, a.include?(INFINITY))
|
|
83
|
+
a = Range.new(-3,INFINITY)
|
|
84
|
+
assert_equal(false, a.include?(-INFINITY))
|
|
85
|
+
assert_equal(false, a.include?(-4))
|
|
86
|
+
assert_equal(true, a.include?(-3))
|
|
87
|
+
assert_equal(true, a.include?(-2))
|
|
88
|
+
assert_equal(true, a.include?(INFINITY))
|
|
89
|
+
a = Range.new(-INFINITY,INFINITY)
|
|
90
|
+
assert_equal(true, a.include?(-INFINITY))
|
|
91
|
+
assert_equal(true, a.include?(-4))
|
|
92
|
+
assert_equal(true, a.include?(-3))
|
|
93
|
+
assert_equal(true, a.include?(-2))
|
|
94
|
+
assert_equal(true, a.include?(INFINITY))
|
|
95
|
+
a = Range.new(-3,-2)
|
|
96
|
+
assert_equal(false, a.include?(-INFINITY))
|
|
97
|
+
assert_equal(false, a.include?(-4))
|
|
98
|
+
assert_equal(true, a.include?(-3))
|
|
99
|
+
assert_equal(true, a.include?(-2))
|
|
100
|
+
assert_equal(false, a.include?(INFINITY))
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
class OrdinalTest < Test::Unit::TestCase
|
|
105
|
+
def test_include
|
|
106
|
+
a = Range.new('a','g')
|
|
107
|
+
#assert_equal(false, a.include?(-INFINITY))
|
|
108
|
+
assert_equal(true, a.include?('a'))
|
|
109
|
+
assert_equal(true, a.include?('c'))
|
|
110
|
+
assert_equal(false, a.include?('z'))
|
|
111
|
+
#assert_equal(false, a.include?(INFINITY))
|
|
112
|
+
end
|
|
113
|
+
#def test_error
|
|
114
|
+
# assert_raises(ArgumentError) {
|
|
115
|
+
# a = (-INFINITY..'z')
|
|
116
|
+
# }
|
|
117
|
+
#end
|
|
118
|
+
end
|