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,51 @@
|
|
1
|
+
#####################################################
|
2
|
+
# tc_interface.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Interface module.
|
5
|
+
#####################################################
|
6
|
+
if File.basename(Dir.pwd) == "test"
|
7
|
+
$:.unshift "../lib"
|
8
|
+
end
|
9
|
+
|
10
|
+
require "test/unit"
|
11
|
+
require "interface"
|
12
|
+
|
13
|
+
TestInterface = interface{
|
14
|
+
required_methods :foo, :bar
|
15
|
+
}
|
16
|
+
|
17
|
+
TestSubInterface = interface{
|
18
|
+
extend TestInterface
|
19
|
+
required_methods :baz
|
20
|
+
}
|
21
|
+
|
22
|
+
class A; end
|
23
|
+
|
24
|
+
class B
|
25
|
+
def foo; end
|
26
|
+
def bar; end
|
27
|
+
end
|
28
|
+
|
29
|
+
class C < B
|
30
|
+
def baz; end
|
31
|
+
end
|
32
|
+
|
33
|
+
class TC_Interface < Test::Unit::TestCase
|
34
|
+
def test_version
|
35
|
+
assert_equal("0.1.0",Interface::VERSION)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_requirements_not_met
|
39
|
+
assert_raises(Interface::MethodMissing){
|
40
|
+
A.new.extend(TestInterface)
|
41
|
+
}
|
42
|
+
assert_raises(Interface::MethodMissing){
|
43
|
+
B.new.extend(TestSubInterface)
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_requirements_met
|
48
|
+
assert_nothing_raised{ B.new.extend(TestInterface) }
|
49
|
+
assert_nothing_raised{ C.new.extend(TestSubInterface) }
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
############################################
|
2
|
+
# test.rb
|
3
|
+
#
|
4
|
+
# Sample test script for interface.rb
|
5
|
+
############################################
|
6
|
+
if File.basename(Dir.pwd) == "test"
|
7
|
+
$:.unshift "../lib"
|
8
|
+
end
|
9
|
+
|
10
|
+
require "interface"
|
11
|
+
|
12
|
+
MyInterface = interface{
|
13
|
+
required_methods :foo, :bar
|
14
|
+
}
|
15
|
+
|
16
|
+
class MyClass
|
17
|
+
def foo; end
|
18
|
+
def bar; end
|
19
|
+
include MyInterface
|
20
|
+
end
|
21
|
+
|
22
|
+
=begin
|
23
|
+
# Raises an error until bar is defined
|
24
|
+
class Foo
|
25
|
+
def foo
|
26
|
+
puts "foo"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
=end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
|
3
|
+
require "interface"
|
4
|
+
|
5
|
+
MyInterface = interface{
|
6
|
+
required_methods :foo, :bar
|
7
|
+
}
|
8
|
+
|
9
|
+
class Foo
|
10
|
+
def foo; end
|
11
|
+
def bar; end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Bar
|
15
|
+
end
|
16
|
+
|
17
|
+
f = Foo.new
|
18
|
+
f.extend(MyInterface)
|
19
|
+
|
20
|
+
b = Bar.new
|
21
|
+
|
22
|
+
class << b
|
23
|
+
include MyInterface
|
24
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
|
3
|
+
require "interface"
|
4
|
+
|
5
|
+
module MyInterface
|
6
|
+
extend Interface
|
7
|
+
required_methods :foo, :bar
|
8
|
+
end
|
9
|
+
|
10
|
+
module MySubInterface
|
11
|
+
extend Interface
|
12
|
+
extend MyInterface
|
13
|
+
required_methods :baz
|
14
|
+
end
|
15
|
+
|
16
|
+
class MyClass
|
17
|
+
def baz; end
|
18
|
+
def bar; end
|
19
|
+
def foo; end
|
20
|
+
include MySubInterface
|
21
|
+
end
|
22
|
+
|
23
|
+
=begin
|
24
|
+
# Raises an error
|
25
|
+
class MyClass
|
26
|
+
def baz; end
|
27
|
+
include MyInterface
|
28
|
+
end
|
29
|
+
=end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
###########################################################################
|
2
|
+
# test_unrequire.rb
|
3
|
+
#
|
4
|
+
# Sample test script for to verify that unrequired_methods works properly.
|
5
|
+
###########################################################################
|
6
|
+
if File.basename(Dir.pwd) == "test"
|
7
|
+
$:.unshift "../lib"
|
8
|
+
end
|
9
|
+
|
10
|
+
require "interface"
|
11
|
+
|
12
|
+
MyInterface = interface{
|
13
|
+
required_methods :foo, :bar
|
14
|
+
}
|
15
|
+
|
16
|
+
# require foo and baz, but not bar
|
17
|
+
MySubInterface = interface{
|
18
|
+
extends MyInterface
|
19
|
+
required_methods :baz
|
20
|
+
unrequired_methods :bar
|
21
|
+
}
|
22
|
+
|
23
|
+
# No error
|
24
|
+
class MyClass
|
25
|
+
def foo; end
|
26
|
+
def baz; end
|
27
|
+
include MySubInterface
|
28
|
+
end
|
Binary file
|
@@ -0,0 +1,376 @@
|
|
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: Contract</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">Contract</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../files/lib/contract/exception_rb.html">
|
59
|
+
lib/contract/exception.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
<a href="../files/lib/contract/overrides_rb.html">
|
63
|
+
lib/contract/overrides.rb
|
64
|
+
</a>
|
65
|
+
<br />
|
66
|
+
<a href="../files/lib/contract/assertions_rb.html">
|
67
|
+
lib/contract/assertions.rb
|
68
|
+
</a>
|
69
|
+
<br />
|
70
|
+
<a href="../files/lib/contract/integration_rb.html">
|
71
|
+
lib/contract/integration.rb
|
72
|
+
</a>
|
73
|
+
<br />
|
74
|
+
<a href="../files/lib/contract_rb.html">
|
75
|
+
lib/contract.rb
|
76
|
+
</a>
|
77
|
+
<br />
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
|
81
|
+
<tr class="top-aligned-row">
|
82
|
+
<td><strong>Parent:</strong></td>
|
83
|
+
<td>
|
84
|
+
Test::Unit::TestCase
|
85
|
+
</td>
|
86
|
+
</tr>
|
87
|
+
</table>
|
88
|
+
</div>
|
89
|
+
<!-- banner header -->
|
90
|
+
|
91
|
+
<div id="bodyContent">
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
<div id="contextContent">
|
96
|
+
|
97
|
+
<div id="description">
|
98
|
+
<p>
|
99
|
+
Represents a contract between Objects as a collection of test cases.
|
100
|
+
Objects are said to fulfill a contract if all test cases suceed. This is
|
101
|
+
useful for ensuring that Objects your code is getting behave in a way that
|
102
|
+
you expect them to behave so you can fail early or execute different logic
|
103
|
+
for Objects with different interfaces.
|
104
|
+
</p>
|
105
|
+
<p>
|
106
|
+
The tests of the test suite will be run on a copy of the tested Object so
|
107
|
+
you can safely test its behavior without having to fear data loss. By
|
108
|
+
default Contracts obtain deep copies of Objects by serializing and
|
109
|
+
unserializing them with Ruby’s <tt>Marshal</tt> functionality. This
|
110
|
+
will work in most cases but can fail for Objects containing unserializable
|
111
|
+
parts like Procs, Files or Sockets. In those cases it is currently of your
|
112
|
+
responsibility to provide a fitting implementation by overwriting the <a
|
113
|
+
href="Contract.html#M000006">Contract.deep_copy</a> method. In the future
|
114
|
+
the contract library might provide different implementations of it via
|
115
|
+
Ruby’s mixin mechanism.
|
116
|
+
</p>
|
117
|
+
|
118
|
+
</div>
|
119
|
+
|
120
|
+
|
121
|
+
</div>
|
122
|
+
|
123
|
+
<div id="method-list">
|
124
|
+
<h3 class="section-bar">Methods</h3>
|
125
|
+
|
126
|
+
<div class="name-list">
|
127
|
+
<a href="#M000006">deep_copy</a>
|
128
|
+
<a href="#M000003">enforce</a>
|
129
|
+
<a href="#M000002">fulfilled_by?</a>
|
130
|
+
<a href="#M000001">provides</a>
|
131
|
+
<a href="#M000004">test</a>
|
132
|
+
<a href="#M000005">test_all</a>
|
133
|
+
</div>
|
134
|
+
</div>
|
135
|
+
|
136
|
+
</div>
|
137
|
+
|
138
|
+
|
139
|
+
<!-- if includes -->
|
140
|
+
|
141
|
+
<div id="section">
|
142
|
+
|
143
|
+
<div id="class-list">
|
144
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
145
|
+
|
146
|
+
Module <a href="Contract/ContractException.html" class="link">Contract::ContractException</a><br />
|
147
|
+
Class <a href="Contract/ContractError.html" class="link">Contract::ContractError</a><br />
|
148
|
+
Class <a href="Contract/ContractMismatch.html" class="link">Contract::ContractMismatch</a><br />
|
149
|
+
|
150
|
+
</div>
|
151
|
+
|
152
|
+
<div id="constants-list">
|
153
|
+
<h3 class="section-bar">Constants</h3>
|
154
|
+
|
155
|
+
<div class="name-list">
|
156
|
+
<table summary="Constants">
|
157
|
+
<tr class="top-aligned-row context-row">
|
158
|
+
<td class="context-item-name">Version</td>
|
159
|
+
<td>=</td>
|
160
|
+
<td class="context-item-value">id.split(" ")[2].to_i</td>
|
161
|
+
<td width="3em"> </td>
|
162
|
+
<td class="context-item-desc">
|
163
|
+
The Version of the contract library you are using.
|
164
|
+
|
165
|
+
</td>
|
166
|
+
</tr>
|
167
|
+
</table>
|
168
|
+
</div>
|
169
|
+
</div>
|
170
|
+
|
171
|
+
<div id="aliases-list">
|
172
|
+
<h3 class="section-bar">External Aliases</h3>
|
173
|
+
|
174
|
+
<div class="name-list">
|
175
|
+
<table summary="aliases">
|
176
|
+
<tr class="top-aligned-row context-row">
|
177
|
+
<td class="context-item-name">check_signatures</td>
|
178
|
+
<td>-></td>
|
179
|
+
<td class="context-item-value">check_signatures?</td>
|
180
|
+
</tr>
|
181
|
+
<tr class="top-aligned-row context-row">
|
182
|
+
<td class="context-item-name">fulfilled_by?</td>
|
183
|
+
<td>-></td>
|
184
|
+
<td class="context-item-value">===</td>
|
185
|
+
</tr>
|
186
|
+
</table>
|
187
|
+
</div>
|
188
|
+
</div>
|
189
|
+
|
190
|
+
|
191
|
+
<div id="attribute-list">
|
192
|
+
<h3 class="section-bar">Attributes</h3>
|
193
|
+
|
194
|
+
<div class="name-list">
|
195
|
+
<table>
|
196
|
+
<tr class="top-aligned-row context-row">
|
197
|
+
<td class="context-item-name">check_signatures</td>
|
198
|
+
<td class="context-item-value"> [RW] </td>
|
199
|
+
<td class="context-item-desc">
|
200
|
+
Whether signatures should be checked. By default signatures are checked
|
201
|
+
only when the application is run in $DEBUG mode. (By specifying the -d
|
202
|
+
switch on the invocation of Ruby.)
|
203
|
+
|
204
|
+
<p>
|
205
|
+
Note: If you want to change this you need to do so before doing any
|
206
|
+
signature calls or it will not be applied.
|
207
|
+
</p>
|
208
|
+
</td>
|
209
|
+
</tr>
|
210
|
+
</table>
|
211
|
+
</div>
|
212
|
+
</div>
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
<!-- if method_list -->
|
217
|
+
<div id="methods">
|
218
|
+
<h3 class="section-bar">Public Class methods</h3>
|
219
|
+
|
220
|
+
<div id="method-M000006" class="method-detail">
|
221
|
+
<a name="M000006"></a>
|
222
|
+
|
223
|
+
<div class="method-heading">
|
224
|
+
<a href="Contract.src/M000006.html" target="Code" class="method-signature"
|
225
|
+
onclick="popupCode('Contract.src/M000006.html');return false;">
|
226
|
+
<span class="method-name">deep_copy</span><span class="method-args">(object)</span>
|
227
|
+
</a>
|
228
|
+
</div>
|
229
|
+
|
230
|
+
<div class="method-description">
|
231
|
+
<p>
|
232
|
+
This method is used internally for getting a copy of Objects that the
|
233
|
+
contract is checked against. By default it uses Ruby’s
|
234
|
+
<tt>Marshal</tt> functionality for obtaining a copy, but this can fail if
|
235
|
+
the Object contains unserializable parts like Procs, Files or Sockets. It
|
236
|
+
is currently your responsibility to provide a fitting implementation of
|
237
|
+
this by overwriting the method in case the default implementation does not
|
238
|
+
work for you. In the future the contract library might offer different
|
239
|
+
implementations for this via Ruby’s mixin mechanism.
|
240
|
+
</p>
|
241
|
+
</div>
|
242
|
+
</div>
|
243
|
+
|
244
|
+
<div id="method-M000003" class="method-detail">
|
245
|
+
<a name="M000003"></a>
|
246
|
+
|
247
|
+
<div class="method-heading">
|
248
|
+
<a href="Contract.src/M000003.html" target="Code" class="method-signature"
|
249
|
+
onclick="popupCode('Contract.src/M000003.html');return false;">
|
250
|
+
<span class="method-name">enforce</span><span class="method-args">(object)</span>
|
251
|
+
</a>
|
252
|
+
</div>
|
253
|
+
|
254
|
+
<div class="method-description">
|
255
|
+
<p>
|
256
|
+
Enforces that object implements this contract. If it does not an Exception
|
257
|
+
will be raised. This is useful for example useful when you need to ensure
|
258
|
+
that the arguments given to a method fulfill a given contract.
|
259
|
+
</p>
|
260
|
+
</div>
|
261
|
+
</div>
|
262
|
+
|
263
|
+
<div id="method-M000002" class="method-detail">
|
264
|
+
<a name="M000002"></a>
|
265
|
+
|
266
|
+
<div class="method-heading">
|
267
|
+
<a href="Contract.src/M000002.html" target="Code" class="method-signature"
|
268
|
+
onclick="popupCode('Contract.src/M000002.html');return false;">
|
269
|
+
<span class="method-name">fulfilled_by?</span><span class="method-args">(object)</span>
|
270
|
+
</a>
|
271
|
+
</div>
|
272
|
+
|
273
|
+
<div class="method-description">
|
274
|
+
<p>
|
275
|
+
Returns true if the given object fulfills this contract. This is useful for
|
276
|
+
implementing dispatching mechanisms where you want to hit different code
|
277
|
+
branches based on whether an Object has one or another interface.
|
278
|
+
</p>
|
279
|
+
</div>
|
280
|
+
</div>
|
281
|
+
|
282
|
+
<div id="method-M000001" class="method-detail">
|
283
|
+
<a name="M000001"></a>
|
284
|
+
|
285
|
+
<div class="method-heading">
|
286
|
+
<a href="Contract.src/M000001.html" target="Code" class="method-signature"
|
287
|
+
onclick="popupCode('Contract.src/M000001.html');return false;">
|
288
|
+
<span class="method-name">provides</span><span class="method-args">(*symbols, &block)</span>
|
289
|
+
</a>
|
290
|
+
</div>
|
291
|
+
|
292
|
+
<div class="method-description">
|
293
|
+
<p>
|
294
|
+
Tests that the tested Object provides the specified methods with the
|
295
|
+
specified behavior.
|
296
|
+
</p>
|
297
|
+
<p>
|
298
|
+
This can be used like this:
|
299
|
+
</p>
|
300
|
+
<pre>
|
301
|
+
class ListContract < Contract
|
302
|
+
provides :size do
|
303
|
+
assert(@object.size >= 0, "#size should never be negative.")
|
304
|
+
end
|
305
|
+
|
306
|
+
provides :include?
|
307
|
+
|
308
|
+
provides :each do
|
309
|
+
count = 0
|
310
|
+
@object.each do |item|
|
311
|
+
assert(@object.include?(item),
|
312
|
+
"#each should only yield items that the list includes.")
|
313
|
+
count += 1
|
314
|
+
end
|
315
|
+
assert_equal(@object.size, count,
|
316
|
+
"#each should yield #size items.")
|
317
|
+
end
|
318
|
+
end
|
319
|
+
</pre>
|
320
|
+
</div>
|
321
|
+
</div>
|
322
|
+
|
323
|
+
<div id="method-M000004" class="method-detail">
|
324
|
+
<a name="M000004"></a>
|
325
|
+
|
326
|
+
<div class="method-heading">
|
327
|
+
<a href="Contract.src/M000004.html" target="Code" class="method-signature"
|
328
|
+
onclick="popupCode('Contract.src/M000004.html');return false;">
|
329
|
+
<span class="method-name">test</span><span class="method-args">(object, return_all = false)</span>
|
330
|
+
</a>
|
331
|
+
</div>
|
332
|
+
|
333
|
+
<div class="method-description">
|
334
|
+
<p>
|
335
|
+
Tests whether the given Object fulfils this contract.
|
336
|
+
</p>
|
337
|
+
<p>
|
338
|
+
Note: This will return the first reason for the Object not fulfilling the
|
339
|
+
contract or <tt>nil</tt> in case it fulfills it.
|
340
|
+
</p>
|
341
|
+
</div>
|
342
|
+
</div>
|
343
|
+
|
344
|
+
<div id="method-M000005" class="method-detail">
|
345
|
+
<a name="M000005"></a>
|
346
|
+
|
347
|
+
<div class="method-heading">
|
348
|
+
<a href="Contract.src/M000005.html" target="Code" class="method-signature"
|
349
|
+
onclick="popupCode('Contract.src/M000005.html');return false;">
|
350
|
+
<span class="method-name">test_all</span><span class="method-args">(object)</span>
|
351
|
+
</a>
|
352
|
+
</div>
|
353
|
+
|
354
|
+
<div class="method-description">
|
355
|
+
<p>
|
356
|
+
Same as <a href="Contract.html#M000004">Contract.test</a>, but will return
|
357
|
+
all reasons for the Object not fulfilling the contract in an Array or nil
|
358
|
+
in case of fulfillment. (as an Array of Exceptions) or <tt>nil</tt> in the
|
359
|
+
case it does fulfill it.
|
360
|
+
</p>
|
361
|
+
</div>
|
362
|
+
</div>
|
363
|
+
|
364
|
+
|
365
|
+
</div>
|
366
|
+
|
367
|
+
|
368
|
+
</div>
|
369
|
+
|
370
|
+
|
371
|
+
<div id="validator-badges">
|
372
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
373
|
+
</div>
|
374
|
+
|
375
|
+
</body>
|
376
|
+
</html>
|