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,709 @@
|
|
|
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: Module</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">Module</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../files/lib/carat/macro_rb.html">
|
|
59
|
+
lib/carat/macro.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
<a href="../files/lib/carat/attr_rb.html">
|
|
63
|
+
lib/carat/attr.rb
|
|
64
|
+
</a>
|
|
65
|
+
<br />
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
|
|
69
|
+
<tr class="top-aligned-row">
|
|
70
|
+
<td><strong>Parent:</strong></td>
|
|
71
|
+
<td>
|
|
72
|
+
<a href="Object.html">
|
|
73
|
+
Object
|
|
74
|
+
</a>
|
|
75
|
+
</td>
|
|
76
|
+
</tr>
|
|
77
|
+
</table>
|
|
78
|
+
</div>
|
|
79
|
+
<!-- banner header -->
|
|
80
|
+
|
|
81
|
+
<div id="bodyContent">
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
<div id="contextContent">
|
|
86
|
+
|
|
87
|
+
<div id="description">
|
|
88
|
+
<p>
|
|
89
|
+
Modify module attribute methods. *add define_attribute *redefine old attr_*
|
|
90
|
+
methods *add <a href="Module.html#M000174">attr_setter</a>
|
|
91
|
+
</p>
|
|
92
|
+
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<div id="method-list">
|
|
99
|
+
<h3 class="section-bar">Methods</h3>
|
|
100
|
+
|
|
101
|
+
<div class="name-list">
|
|
102
|
+
<a href="#M000167">append_dynamic_features</a>
|
|
103
|
+
<a href="#M000175">attr</a>
|
|
104
|
+
<a href="#M000172">attr_accessor</a>
|
|
105
|
+
<a href="#M000170">attr_reader</a>
|
|
106
|
+
<a href="#M000174">attr_setter</a>
|
|
107
|
+
<a href="#M000173">attr_tester</a>
|
|
108
|
+
<a href="#M000171">attr_writer</a>
|
|
109
|
+
<a href="#M000168">extend</a>
|
|
110
|
+
<a href="#M000169">extend_dynamic_object</a>
|
|
111
|
+
<a href="#M000166">include</a>
|
|
112
|
+
<a href="#M000164">macro</a>
|
|
113
|
+
<a href="#M000165">macros</a>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
<!-- if includes -->
|
|
121
|
+
|
|
122
|
+
<div id="section">
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
<div id="aliases-list">
|
|
127
|
+
<h3 class="section-bar">External Aliases</h3>
|
|
128
|
+
|
|
129
|
+
<div class="name-list">
|
|
130
|
+
<table summary="aliases">
|
|
131
|
+
<tr class="top-aligned-row context-row">
|
|
132
|
+
<td class="context-item-name">include</td>
|
|
133
|
+
<td>-></td>
|
|
134
|
+
<td class="context-item-value">include_without_macros</td>
|
|
135
|
+
</tr>
|
|
136
|
+
<tr class="top-aligned-row context-row">
|
|
137
|
+
<td class="context-item-name">extend</td>
|
|
138
|
+
<td>-></td>
|
|
139
|
+
<td class="context-item-value">extend_without_macros</td>
|
|
140
|
+
</tr>
|
|
141
|
+
</table>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
<!-- if method_list -->
|
|
150
|
+
<div id="methods">
|
|
151
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
152
|
+
|
|
153
|
+
<div id="method-M000167" class="method-detail">
|
|
154
|
+
<a name="M000167"></a>
|
|
155
|
+
|
|
156
|
+
<div class="method-heading">
|
|
157
|
+
<a href="#M000167" class="method-signature">
|
|
158
|
+
<span class="method-name">append_dynamic_features</span><span class="method-args">( base, options )</span>
|
|
159
|
+
</a>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="method-description">
|
|
163
|
+
<p>
|
|
164
|
+
Note: Is this the best name for this callback?
|
|
165
|
+
</p>
|
|
166
|
+
<p><a class="source-toggle" href="#"
|
|
167
|
+
onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
|
|
168
|
+
<div class="method-source-code" id="M000167-source">
|
|
169
|
+
<pre>
|
|
170
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 45</span>
|
|
171
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append_dynamic_features</span>( <span class="ruby-identifier">base</span>, <span class="ruby-identifier">options</span> )
|
|
172
|
+
<span class="ruby-identifier">macros</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
|
|
173
|
+
<span class="ruby-identifier">base</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">call</span>( <span class="ruby-identifier">options</span> )
|
|
174
|
+
<span class="ruby-keyword kw">end</span>
|
|
175
|
+
<span class="ruby-keyword kw">end</span>
|
|
176
|
+
</pre>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div id="method-M000175" class="method-detail">
|
|
182
|
+
<a name="M000175"></a>
|
|
183
|
+
|
|
184
|
+
<div class="method-heading">
|
|
185
|
+
<a href="#M000175" class="method-signature">
|
|
186
|
+
<span class="method-name">attr</span><span class="method-args">(*args)</span>
|
|
187
|
+
</a>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<div class="method-description">
|
|
191
|
+
<p>
|
|
192
|
+
The wondrful shortcut.
|
|
193
|
+
</p>
|
|
194
|
+
<p><a class="source-toggle" href="#"
|
|
195
|
+
onclick="toggleCode('M000175-source');return false;">[Source]</a></p>
|
|
196
|
+
<div class="method-source-code" id="M000175-source">
|
|
197
|
+
<pre>
|
|
198
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 293</span>
|
|
199
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
200
|
+
<span class="ruby-comment cmt"># Allows compatibility with old definition, while also</span>
|
|
201
|
+
<span class="ruby-comment cmt"># extending the capabilites to allow multiple parameters.</span>
|
|
202
|
+
<span class="ruby-comment cmt"># This form does not allow casting though.</span>
|
|
203
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">or</span> <span class="ruby-constant">FalseClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">or</span> <span class="ruby-constant">NilClass</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
204
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>
|
|
205
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
|
|
206
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
|
|
207
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>]
|
|
208
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
209
|
+
<span class="ruby-identifier">a</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>]
|
|
210
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'?'</span>
|
|
211
|
+
<span class="ruby-node">"#{a[0..-2]}="</span>
|
|
212
|
+
<span class="ruby-keyword kw">else</span>
|
|
213
|
+
<span class="ruby-node">"#{a}="</span>
|
|
214
|
+
<span class="ruby-keyword kw">end</span>
|
|
215
|
+
} )
|
|
216
|
+
<span class="ruby-keyword kw">end</span>
|
|
217
|
+
<span class="ruby-keyword kw">end</span>
|
|
218
|
+
<span class="ruby-comment cmt">#</span>
|
|
219
|
+
<span class="ruby-identifier">made</span> = []
|
|
220
|
+
<span class="ruby-identifier">readers</span> = []
|
|
221
|
+
<span class="ruby-identifier">writers</span> = []
|
|
222
|
+
<span class="ruby-identifier">testers</span> = []
|
|
223
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
224
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
225
|
+
<span class="ruby-keyword kw">end</span>
|
|
226
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
227
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
|
|
228
|
+
<span class="ruby-identifier">t</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>)
|
|
229
|
+
<span class="ruby-identifier">m</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'!'</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'?'</span>)
|
|
230
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">t</span>
|
|
231
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
232
|
+
<span class="ruby-identifier">readers</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
|
|
233
|
+
<span class="ruby-identifier">writers</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
|
|
234
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'?'</span>
|
|
235
|
+
<span class="ruby-identifier">testers</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
|
|
236
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span>
|
|
237
|
+
<span class="ruby-identifier">writers</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
|
|
238
|
+
<span class="ruby-keyword kw">else</span>
|
|
239
|
+
<span class="ruby-identifier">readers</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">m</span>,<span class="ruby-identifier">c</span>]
|
|
240
|
+
<span class="ruby-keyword kw">end</span>
|
|
241
|
+
<span class="ruby-keyword kw">end</span>
|
|
242
|
+
<span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_reader</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">readers</span> ) ] )
|
|
243
|
+
<span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_writer</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">writers</span> ) ] )
|
|
244
|
+
<span class="ruby-identifier">made</span>.<span class="ruby-identifier">concat</span>( [ <span class="ruby-identifier">attr_tester</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">testers</span> ) ] )
|
|
245
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
246
|
+
<span class="ruby-keyword kw">end</span>
|
|
247
|
+
</pre>
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<div id="method-M000172" class="method-detail">
|
|
253
|
+
<a name="M000172"></a>
|
|
254
|
+
|
|
255
|
+
<div class="method-heading">
|
|
256
|
+
<a href="#M000172" class="method-signature">
|
|
257
|
+
<span class="method-name">attr_accessor</span><span class="method-args">(*args)</span>
|
|
258
|
+
</a>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<div class="method-description">
|
|
262
|
+
<p>
|
|
263
|
+
Create an attribute method for writing to an instance variable. This is the
|
|
264
|
+
same as the built in method, which it replaces, but adds casting.
|
|
265
|
+
</p>
|
|
266
|
+
<p>
|
|
267
|
+
Casting allows the addition of a method invocation on the instance
|
|
268
|
+
variable. It is defined using a hash parameter, so all castings must come
|
|
269
|
+
at the end of a call to <a href="Module.html#M000171">attr_writer</a>.
|
|
270
|
+
</p>
|
|
271
|
+
<pre>
|
|
272
|
+
require 'carat/attr'
|
|
273
|
+
|
|
274
|
+
attr_accessor :a => :to_s
|
|
275
|
+
</pre>
|
|
276
|
+
<p>
|
|
277
|
+
_is equivalent to_
|
|
278
|
+
</p>
|
|
279
|
+
<pre>
|
|
280
|
+
def a
|
|
281
|
+
@a.to_s
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
def a=(x)
|
|
285
|
+
@a = x.to_s
|
|
286
|
+
end
|
|
287
|
+
</pre>
|
|
288
|
+
<p><a class="source-toggle" href="#"
|
|
289
|
+
onclick="toggleCode('M000172-source');return false;">[Source]</a></p>
|
|
290
|
+
<div class="method-source-code" id="M000172-source">
|
|
291
|
+
<pre>
|
|
292
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 183</span>
|
|
293
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_accessor</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
294
|
+
<span class="ruby-identifier">made</span> = []
|
|
295
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
296
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
297
|
+
<span class="ruby-keyword kw">end</span>
|
|
298
|
+
<span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
|
|
299
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
300
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>)
|
|
301
|
+
<span class="ruby-identifier">c</span> = <span class="ruby-node">".#{c.to_s.strip}"</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
|
|
302
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}; @#{a}#{c} ; end }</span>
|
|
303
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}=(x); @#{a}=x#{c}; end }</span>
|
|
304
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}"</span>.<span class="ruby-identifier">to_sym</span>
|
|
305
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}="</span>.<span class="ruby-identifier">to_sym</span>
|
|
306
|
+
}
|
|
307
|
+
(<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
|
|
308
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
309
|
+
<span class="ruby-keyword kw">end</span>
|
|
310
|
+
</pre>
|
|
311
|
+
</div>
|
|
312
|
+
</div>
|
|
313
|
+
</div>
|
|
314
|
+
|
|
315
|
+
<div id="method-M000170" class="method-detail">
|
|
316
|
+
<a name="M000170"></a>
|
|
317
|
+
|
|
318
|
+
<div class="method-heading">
|
|
319
|
+
<a href="#M000170" class="method-signature">
|
|
320
|
+
<span class="method-name">attr_reader</span><span class="method-args">(*args)</span>
|
|
321
|
+
</a>
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<div class="method-description">
|
|
325
|
+
<p>
|
|
326
|
+
Create an attribute method for reading an instance variable. This is the
|
|
327
|
+
same as the built in method, which it replaces, but adds casting.
|
|
328
|
+
</p>
|
|
329
|
+
<p>
|
|
330
|
+
Casting allows the addition of a method invocation on the instance
|
|
331
|
+
variable. It is defined using a hash parameter, so all castings must come
|
|
332
|
+
at the end of a call to <a href="Module.html#M000170">attr_reader</a>.
|
|
333
|
+
</p>
|
|
334
|
+
<pre>
|
|
335
|
+
require 'carat/attr'
|
|
336
|
+
|
|
337
|
+
attr_reader :a => :to_s
|
|
338
|
+
</pre>
|
|
339
|
+
<p>
|
|
340
|
+
_is equivalent to_
|
|
341
|
+
</p>
|
|
342
|
+
<pre>
|
|
343
|
+
def a
|
|
344
|
+
@a.to_s
|
|
345
|
+
end
|
|
346
|
+
</pre>
|
|
347
|
+
<p><a class="source-toggle" href="#"
|
|
348
|
+
onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
|
|
349
|
+
<div class="method-source-code" id="M000170-source">
|
|
350
|
+
<pre>
|
|
351
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 109</span>
|
|
352
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_reader</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
353
|
+
<span class="ruby-identifier">made</span> = []
|
|
354
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
355
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
356
|
+
<span class="ruby-keyword kw">end</span>
|
|
357
|
+
<span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
|
|
358
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
359
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
|
|
360
|
+
<span class="ruby-identifier">c</span> = <span class="ruby-node">".#{c.to_s.strip}"</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
|
|
361
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}; @#{a}#{c} ; end }</span>
|
|
362
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}"</span>.<span class="ruby-identifier">to_sym</span>
|
|
363
|
+
}
|
|
364
|
+
(<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
|
|
365
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
366
|
+
<span class="ruby-keyword kw">end</span>
|
|
367
|
+
</pre>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
<div id="method-M000174" class="method-detail">
|
|
373
|
+
<a name="M000174"></a>
|
|
374
|
+
|
|
375
|
+
<div class="method-heading">
|
|
376
|
+
<a href="#M000174" class="method-signature">
|
|
377
|
+
<span class="method-name">attr_setter</span><span class="method-args">(*args)</span>
|
|
378
|
+
</a>
|
|
379
|
+
</div>
|
|
380
|
+
|
|
381
|
+
<div class="method-description">
|
|
382
|
+
<p>
|
|
383
|
+
Create an attribute method for getting and setting an instance variable.
|
|
384
|
+
</p>
|
|
385
|
+
<pre>
|
|
386
|
+
require 'carat/attr'
|
|
387
|
+
|
|
388
|
+
attr_setter :a
|
|
389
|
+
</pre>
|
|
390
|
+
<p>
|
|
391
|
+
_is equivalent to_
|
|
392
|
+
</p>
|
|
393
|
+
<pre>
|
|
394
|
+
def a(*args)
|
|
395
|
+
if args.size > 0
|
|
396
|
+
@a = args[0]
|
|
397
|
+
self
|
|
398
|
+
else
|
|
399
|
+
@a
|
|
400
|
+
end
|
|
401
|
+
end
|
|
402
|
+
</pre>
|
|
403
|
+
<p>
|
|
404
|
+
Casting is supported on both getting and setting.
|
|
405
|
+
</p>
|
|
406
|
+
<pre>
|
|
407
|
+
attr_setter :a => :to_s
|
|
408
|
+
</pre>
|
|
409
|
+
<p>
|
|
410
|
+
_is equivalent to_
|
|
411
|
+
</p>
|
|
412
|
+
<pre>
|
|
413
|
+
def a(*args)
|
|
414
|
+
@a = args[0].to_s if args.size > 0
|
|
415
|
+
@a.to_s
|
|
416
|
+
end
|
|
417
|
+
</pre>
|
|
418
|
+
<p><a class="source-toggle" href="#"
|
|
419
|
+
onclick="toggleCode('M000174-source');return false;">[Source]</a></p>
|
|
420
|
+
<div class="method-source-code" id="M000174-source">
|
|
421
|
+
<pre>
|
|
422
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 269</span>
|
|
423
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_setter</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
424
|
+
<span class="ruby-identifier">made</span> = []
|
|
425
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
426
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
427
|
+
<span class="ruby-keyword kw">end</span>
|
|
428
|
+
<span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
|
|
429
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
430
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
|
|
431
|
+
<span class="ruby-identifier">c</span> = <span class="ruby-node">".#{c.to_s.strip}"</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
|
|
432
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{
|
|
433
|
+
def #{a}(*args)
|
|
434
|
+
args.size > 0 ? ( @#{a}=args[0]#{c} ; self ) : @#{a}#{c}
|
|
435
|
+
end
|
|
436
|
+
}</span>
|
|
437
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}"</span>.<span class="ruby-identifier">to_sym</span>
|
|
438
|
+
}
|
|
439
|
+
(<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
|
|
440
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
441
|
+
<span class="ruby-keyword kw">end</span>
|
|
442
|
+
</pre>
|
|
443
|
+
</div>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
|
|
447
|
+
<div id="method-M000173" class="method-detail">
|
|
448
|
+
<a name="M000173"></a>
|
|
449
|
+
|
|
450
|
+
<div class="method-heading">
|
|
451
|
+
<a href="#M000173" class="method-signature">
|
|
452
|
+
<span class="method-name">attr_tester</span><span class="method-args">(*args)</span>
|
|
453
|
+
</a>
|
|
454
|
+
</div>
|
|
455
|
+
|
|
456
|
+
<div class="method-description">
|
|
457
|
+
<p>
|
|
458
|
+
Create an attribute method for boolean testing of an instance variable in
|
|
459
|
+
the form of _var?_.
|
|
460
|
+
</p>
|
|
461
|
+
<pre>
|
|
462
|
+
require 'facet/module/attr_tester'
|
|
463
|
+
|
|
464
|
+
attr_tester :a
|
|
465
|
+
</pre>
|
|
466
|
+
<p>
|
|
467
|
+
_is equivalent to_
|
|
468
|
+
</p>
|
|
469
|
+
<pre>
|
|
470
|
+
def a?
|
|
471
|
+
@a ? true : @a
|
|
472
|
+
end
|
|
473
|
+
</pre>
|
|
474
|
+
<p>
|
|
475
|
+
Casting is also supported (see <a
|
|
476
|
+
href="Module.html#M000170">attr_reader</a>).
|
|
477
|
+
</p>
|
|
478
|
+
<pre>
|
|
479
|
+
attr_tester :a => :evaluate
|
|
480
|
+
</pre>
|
|
481
|
+
<p>
|
|
482
|
+
_is equivalent to_
|
|
483
|
+
</p>
|
|
484
|
+
<pre>
|
|
485
|
+
def a?
|
|
486
|
+
@a.evaluate ? true : @a
|
|
487
|
+
end
|
|
488
|
+
</pre>
|
|
489
|
+
<p><a class="source-toggle" href="#"
|
|
490
|
+
onclick="toggleCode('M000173-source');return false;">[Source]</a></p>
|
|
491
|
+
<div class="method-source-code" id="M000173-source">
|
|
492
|
+
<pre>
|
|
493
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 224</span>
|
|
494
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_tester</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
495
|
+
<span class="ruby-identifier">made</span> = []
|
|
496
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
497
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
498
|
+
<span class="ruby-keyword kw">end</span>
|
|
499
|
+
<span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
|
|
500
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
501
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'?'</span>)
|
|
502
|
+
<span class="ruby-identifier">c</span> = <span class="ruby-node">".#{c.to_s.strip}"</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
|
|
503
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}?; @#{a}#{c} ? true : @#{a}#{c}; end }</span>
|
|
504
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}?"</span>.<span class="ruby-identifier">to_sym</span>
|
|
505
|
+
}
|
|
506
|
+
(<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span> <span class="ruby-identifier">made</span>
|
|
507
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
508
|
+
<span class="ruby-keyword kw">end</span>
|
|
509
|
+
</pre>
|
|
510
|
+
</div>
|
|
511
|
+
</div>
|
|
512
|
+
</div>
|
|
513
|
+
|
|
514
|
+
<div id="method-M000171" class="method-detail">
|
|
515
|
+
<a name="M000171"></a>
|
|
516
|
+
|
|
517
|
+
<div class="method-heading">
|
|
518
|
+
<a href="#M000171" class="method-signature">
|
|
519
|
+
<span class="method-name">attr_writer</span><span class="method-args">(*args)</span>
|
|
520
|
+
</a>
|
|
521
|
+
</div>
|
|
522
|
+
|
|
523
|
+
<div class="method-description">
|
|
524
|
+
<p>
|
|
525
|
+
Create an attribute method for writing to an instance variable. This is the
|
|
526
|
+
same as the built in method, which it replaces, but adds casting.
|
|
527
|
+
</p>
|
|
528
|
+
<p>
|
|
529
|
+
Casting allows the addition of a method invocation on the instance
|
|
530
|
+
variable. It is defined using a hash parameter, so all castings must come
|
|
531
|
+
at the end of a call to <a href="Module.html#M000171">attr_writer</a>.
|
|
532
|
+
</p>
|
|
533
|
+
<pre>
|
|
534
|
+
require 'carat/attr'
|
|
535
|
+
|
|
536
|
+
attr_writer :a => :to_s
|
|
537
|
+
</pre>
|
|
538
|
+
<p>
|
|
539
|
+
_is equivalent to_
|
|
540
|
+
</p>
|
|
541
|
+
<pre>
|
|
542
|
+
def a=(x)
|
|
543
|
+
@a = x.to_s
|
|
544
|
+
end
|
|
545
|
+
</pre>
|
|
546
|
+
<p><a class="source-toggle" href="#"
|
|
547
|
+
onclick="toggleCode('M000171-source');return false;">[Source]</a></p>
|
|
548
|
+
<div class="method-source-code" id="M000171-source">
|
|
549
|
+
<pre>
|
|
550
|
+
<span class="ruby-comment cmt"># File lib/carat/attr.rb, line 144</span>
|
|
551
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attr_writer</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
552
|
+
<span class="ruby-identifier">made</span> = []
|
|
553
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
|
|
554
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_a</span> )
|
|
555
|
+
<span class="ruby-keyword kw">end</span>
|
|
556
|
+
<span class="ruby-comment cmt">#hargs = (Hash === args.last ? args.pop : {})</span>
|
|
557
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
558
|
+
<span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'='</span>).<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'!'</span>)
|
|
559
|
+
<span class="ruby-identifier">c</span> = <span class="ruby-node">".#{c.to_s.strip}"</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'.'</span>)
|
|
560
|
+
<span class="ruby-identifier">module_eval</span> <span class="ruby-node">%Q{ def #{a}=(x); @#{a}=x#{c}; end }</span>
|
|
561
|
+
<span class="ruby-identifier">made</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{a}="</span>.<span class="ruby-identifier">to_sym</span>
|
|
562
|
+
}
|
|
563
|
+
(<span class="ruby-ivar">@__atributes__</span> <span class="ruby-operator">||=</span> []).<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">made</span> )
|
|
564
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-operator">*</span><span class="ruby-identifier">made</span>
|
|
565
|
+
<span class="ruby-keyword kw">end</span>
|
|
566
|
+
</pre>
|
|
567
|
+
</div>
|
|
568
|
+
</div>
|
|
569
|
+
</div>
|
|
570
|
+
|
|
571
|
+
<div id="method-M000168" class="method-detail">
|
|
572
|
+
<a name="M000168"></a>
|
|
573
|
+
|
|
574
|
+
<div class="method-heading">
|
|
575
|
+
<a href="#M000168" class="method-signature">
|
|
576
|
+
<span class="method-name">extend</span><span class="method-args">(*args)</span>
|
|
577
|
+
</a>
|
|
578
|
+
</div>
|
|
579
|
+
|
|
580
|
+
<div class="method-description">
|
|
581
|
+
<p><a class="source-toggle" href="#"
|
|
582
|
+
onclick="toggleCode('M000168-source');return false;">[Source]</a></p>
|
|
583
|
+
<div class="method-source-code" id="M000168-source">
|
|
584
|
+
<pre>
|
|
585
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 53</span>
|
|
586
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extend</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
587
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span> <span class="ruby-operator">:</span> {}
|
|
588
|
+
<span class="ruby-keyword kw">for</span> <span class="ruby-identifier">mod</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">args</span>
|
|
589
|
+
<span class="ruby-identifier">mod</span>.<span class="ruby-identifier">extend_dynamic_object</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span> )
|
|
590
|
+
<span class="ruby-keyword kw">end</span>
|
|
591
|
+
<span class="ruby-identifier">extend_without_macros</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
592
|
+
<span class="ruby-keyword kw">end</span>
|
|
593
|
+
</pre>
|
|
594
|
+
</div>
|
|
595
|
+
</div>
|
|
596
|
+
</div>
|
|
597
|
+
|
|
598
|
+
<div id="method-M000169" class="method-detail">
|
|
599
|
+
<a name="M000169"></a>
|
|
600
|
+
|
|
601
|
+
<div class="method-heading">
|
|
602
|
+
<a href="#M000169" class="method-signature">
|
|
603
|
+
<span class="method-name">extend_dynamic_object</span><span class="method-args">( base, options )</span>
|
|
604
|
+
</a>
|
|
605
|
+
</div>
|
|
606
|
+
|
|
607
|
+
<div class="method-description">
|
|
608
|
+
<p>
|
|
609
|
+
Note: Is this the best name for this callback?
|
|
610
|
+
</p>
|
|
611
|
+
<p><a class="source-toggle" href="#"
|
|
612
|
+
onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
|
|
613
|
+
<div class="method-source-code" id="M000169-source">
|
|
614
|
+
<pre>
|
|
615
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 62</span>
|
|
616
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extend_dynamic_object</span>( <span class="ruby-identifier">base</span>, <span class="ruby-identifier">options</span> )
|
|
617
|
+
<span class="ruby-identifier">macros</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
|
|
618
|
+
(<span class="ruby-keyword kw">class</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">base</span>; <span class="ruby-keyword kw">self</span> ; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">class_eval</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">call</span>( <span class="ruby-identifier">options</span> )
|
|
619
|
+
<span class="ruby-keyword kw">end</span>
|
|
620
|
+
<span class="ruby-keyword kw">end</span>
|
|
621
|
+
</pre>
|
|
622
|
+
</div>
|
|
623
|
+
</div>
|
|
624
|
+
</div>
|
|
625
|
+
|
|
626
|
+
<div id="method-M000166" class="method-detail">
|
|
627
|
+
<a name="M000166"></a>
|
|
628
|
+
|
|
629
|
+
<div class="method-heading">
|
|
630
|
+
<a href="#M000166" class="method-signature">
|
|
631
|
+
<span class="method-name">include</span><span class="method-args">(*args)</span>
|
|
632
|
+
</a>
|
|
633
|
+
</div>
|
|
634
|
+
|
|
635
|
+
<div class="method-description">
|
|
636
|
+
<p><a class="source-toggle" href="#"
|
|
637
|
+
onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
|
|
638
|
+
<div class="method-source-code" id="M000166-source">
|
|
639
|
+
<pre>
|
|
640
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 36</span>
|
|
641
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
642
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span> <span class="ruby-operator">:</span> {}
|
|
643
|
+
<span class="ruby-keyword kw">for</span> <span class="ruby-identifier">mod</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">args</span>
|
|
644
|
+
<span class="ruby-identifier">mod</span>.<span class="ruby-identifier">append_dynamic_features</span>( <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span> )
|
|
645
|
+
<span class="ruby-keyword kw">end</span>
|
|
646
|
+
<span class="ruby-identifier">include_without_macros</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
647
|
+
<span class="ruby-keyword kw">end</span>
|
|
648
|
+
</pre>
|
|
649
|
+
</div>
|
|
650
|
+
</div>
|
|
651
|
+
</div>
|
|
652
|
+
|
|
653
|
+
<div id="method-M000164" class="method-detail">
|
|
654
|
+
<a name="M000164"></a>
|
|
655
|
+
|
|
656
|
+
<div class="method-heading">
|
|
657
|
+
<a href="#M000164" class="method-signature">
|
|
658
|
+
<span class="method-name">macro</span><span class="method-args">( &blk )</span>
|
|
659
|
+
</a>
|
|
660
|
+
</div>
|
|
661
|
+
|
|
662
|
+
<div class="method-description">
|
|
663
|
+
<p><a class="source-toggle" href="#"
|
|
664
|
+
onclick="toggleCode('M000164-source');return false;">[Source]</a></p>
|
|
665
|
+
<div class="method-source-code" id="M000164-source">
|
|
666
|
+
<pre>
|
|
667
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 28</span>
|
|
668
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macro</span>( <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span> )
|
|
669
|
+
(<span class="ruby-ivar">@macros</span> <span class="ruby-operator">||=</span> []) <span class="ruby-operator"><<</span> <span class="ruby-identifier">blk</span>
|
|
670
|
+
<span class="ruby-keyword kw">end</span>
|
|
671
|
+
</pre>
|
|
672
|
+
</div>
|
|
673
|
+
</div>
|
|
674
|
+
</div>
|
|
675
|
+
|
|
676
|
+
<div id="method-M000165" class="method-detail">
|
|
677
|
+
<a name="M000165"></a>
|
|
678
|
+
|
|
679
|
+
<div class="method-heading">
|
|
680
|
+
<a href="#M000165" class="method-signature">
|
|
681
|
+
<span class="method-name">macros</span><span class="method-args">()</span>
|
|
682
|
+
</a>
|
|
683
|
+
</div>
|
|
684
|
+
|
|
685
|
+
<div class="method-description">
|
|
686
|
+
<p><a class="source-toggle" href="#"
|
|
687
|
+
onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
|
|
688
|
+
<div class="method-source-code" id="M000165-source">
|
|
689
|
+
<pre>
|
|
690
|
+
<span class="ruby-comment cmt"># File lib/carat/macro.rb, line 32</span>
|
|
691
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macros</span> ; <span class="ruby-ivar">@macros</span> <span class="ruby-operator">||=</span> [] ; <span class="ruby-keyword kw">end</span>
|
|
692
|
+
</pre>
|
|
693
|
+
</div>
|
|
694
|
+
</div>
|
|
695
|
+
</div>
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
</div>
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
</div>
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
<div id="validator-badges">
|
|
705
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
706
|
+
</div>
|
|
707
|
+
|
|
708
|
+
</body>
|
|
709
|
+
</html>
|