minilab 1.1.0-x86-mswin32-60
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/CHANGES +8 -0
- data/LICENSE +19 -0
- data/README +105 -0
- data/Rakefile +83 -0
- data/config/environment.rb +23 -0
- data/config/objects.yml +23 -0
- data/lib/analog_io.rb +23 -0
- data/lib/connection_state.rb +13 -0
- data/lib/digital_auxport_io.rb +34 -0
- data/lib/digital_configuration.rb +53 -0
- data/lib/digital_port_io.rb +39 -0
- data/lib/library_translator.rb +46 -0
- data/lib/minilab.rb +130 -0
- data/lib/minilab_constants.rb +20 -0
- data/lib/minilab_context.rb +14 -0
- data/lib/minilab_hardware.rb +112 -0
- data/lib/minilab_wrapper.rb +12 -0
- data/test/system/analog_input.test +3 -0
- data/test/system/analog_output.test +37 -0
- data/test/system/digital_port_input.test +5 -0
- data/test/system/digital_port_output.test +39 -0
- data/test/system/digital_port_read_byte.test +26 -0
- data/test/system/digital_screw_terminals_input.test +2 -0
- data/test/system/digital_screw_terminals_output.test +11 -0
- data/test/system/minilab_driver.rb +83 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/analog_io_test.rb +54 -0
- data/test/unit/connection_state_test.rb +18 -0
- data/test/unit/digital_auxport_io_test.rb +102 -0
- data/test/unit/digital_configuration_test.rb +100 -0
- data/test/unit/digital_port_io_test.rb +67 -0
- data/test/unit/library_translator_test.rb +98 -0
- data/test/unit/minilab_context_test.rb +23 -0
- data/test/unit/minilab_hardware_test.rb +33 -0
- data/test/unit/minilab_test.rb +115 -0
- data/test/unit/minilab_wrapper_test.rb +24 -0
- data/vendor/behaviors/lib/behaviors.rb +50 -0
- data/vendor/behaviors/tasks/behaviors_tasks.rake +140 -0
- data/vendor/behaviors/test/behaviors_tasks_test.rb +71 -0
- data/vendor/behaviors/test/behaviors_test.rb +50 -0
- data/vendor/behaviors/test/tasks_test/Rakefile +16 -0
- data/vendor/behaviors/test/tasks_test/doc/behaviors.html +55 -0
- data/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
- data/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
- data/vendor/constructor-1.0.2/History.txt +11 -0
- data/vendor/constructor-1.0.2/Manifest.txt +6 -0
- data/vendor/constructor-1.0.2/README.txt +77 -0
- data/vendor/constructor-1.0.2/Rakefile +33 -0
- data/vendor/constructor-1.0.2/lib/constructor.rb +119 -0
- data/vendor/constructor-1.0.2/specs/constructor_spec.rb +345 -0
- data/vendor/diy-1.1.1/History.txt +23 -0
- data/vendor/diy-1.1.1/Manifest.txt +88 -0
- data/vendor/diy-1.1.1/README.txt +220 -0
- data/vendor/diy-1.1.1/Rakefile +29 -0
- data/vendor/diy-1.1.1/TODO.txt +9 -0
- data/vendor/diy-1.1.1/homepage/Notes.txt +27 -0
- data/vendor/diy-1.1.1/homepage/Rakefile +14 -0
- data/vendor/diy-1.1.1/homepage/diy_example.png +0 -0
- data/vendor/diy-1.1.1/homepage/index.erb +36 -0
- data/vendor/diy-1.1.1/homepage/index.html +45 -0
- data/vendor/diy-1.1.1/homepage/objects_yml.png +0 -0
- data/vendor/diy-1.1.1/homepage/page_header.graffle +0 -0
- data/vendor/diy-1.1.1/homepage/page_header.html +9 -0
- data/vendor/diy-1.1.1/homepage/page_header.png +0 -0
- data/vendor/diy-1.1.1/lib/diy.rb +365 -0
- data/vendor/diy-1.1.1/sample_code/car.rb +7 -0
- data/vendor/diy-1.1.1/sample_code/chassis.rb +5 -0
- data/vendor/diy-1.1.1/sample_code/diy_example.rb +26 -0
- data/vendor/diy-1.1.1/sample_code/engine.rb +5 -0
- data/vendor/diy-1.1.1/sample_code/objects.yml +10 -0
- data/vendor/diy-1.1.1/test/constructor.rb +119 -0
- data/vendor/diy-1.1.1/test/diy_test.rb +604 -0
- data/vendor/diy-1.1.1/test/files/broken_construction.yml +7 -0
- data/vendor/diy-1.1.1/test/files/cat/cat.rb +3 -0
- data/vendor/diy-1.1.1/test/files/cat/extra_conflict.yml +5 -0
- data/vendor/diy-1.1.1/test/files/cat/heritage.rb +2 -0
- data/vendor/diy-1.1.1/test/files/cat/needs_input.yml +3 -0
- data/vendor/diy-1.1.1/test/files/cat/the_cat_lineage.rb +1 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_view.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/file_resolver.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/other_thing.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/simple.yml +11 -0
- data/vendor/diy-1.1.1/test/files/donkey/foo.rb +8 -0
- data/vendor/diy-1.1.1/test/files/donkey/foo/bar/qux.rb +7 -0
- data/vendor/diy-1.1.1/test/files/fud/objects.yml +13 -0
- data/vendor/diy-1.1.1/test/files/fud/toy.rb +14 -0
- data/vendor/diy-1.1.1/test/files/functions/invalid_method.yml +5 -0
- data/vendor/diy-1.1.1/test/files/functions/method_extractor.rb +3 -0
- data/vendor/diy-1.1.1/test/files/functions/nonsingleton_objects.yml +6 -0
- data/vendor/diy-1.1.1/test/files/functions/objects.yml +11 -0
- data/vendor/diy-1.1.1/test/files/functions/thing.rb +3 -0
- data/vendor/diy-1.1.1/test/files/functions/thing_builder.rb +21 -0
- data/vendor/diy-1.1.1/test/files/functions/things_builder.rb +3 -0
- data/vendor/diy-1.1.1/test/files/gnu/objects.yml +14 -0
- data/vendor/diy-1.1.1/test/files/gnu/thinger.rb +7 -0
- data/vendor/diy-1.1.1/test/files/goat/base.rb +8 -0
- data/vendor/diy-1.1.1/test/files/goat/can.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/goat.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/objects.yml +12 -0
- data/vendor/diy-1.1.1/test/files/goat/paper.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/plane.rb +7 -0
- data/vendor/diy-1.1.1/test/files/goat/shirt.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/wings.rb +8 -0
- data/vendor/diy-1.1.1/test/files/horse/holder_thing.rb +3 -0
- data/vendor/diy-1.1.1/test/files/horse/objects.yml +7 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/bird.rb +5 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/cat.rb +5 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/reptile/lizard.rb +7 -0
- data/vendor/diy-1.1.1/test/files/namespace/bad_module_specified.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/class_name_combine.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/hello.txt +1 -0
- data/vendor/diy-1.1.1/test/files/namespace/no_module_specified.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/objects.yml +21 -0
- data/vendor/diy-1.1.1/test/files/namespace/road.rb +2 -0
- data/vendor/diy-1.1.1/test/files/namespace/sky.rb +2 -0
- data/vendor/diy-1.1.1/test/files/namespace/subcontext.yml +22 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/air.rb +2 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/fat_cat.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/objects.yml +19 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/pig.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/thread_spinner.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/tick.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/yard.rb +2 -0
- data/vendor/diy-1.1.1/test/files/yak/core_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/core_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/core_view.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/data_source.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_view.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/giant_squid.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/krill.rb +2 -0
- data/vendor/diy-1.1.1/test/files/yak/my_objects.yml +21 -0
- data/vendor/diy-1.1.1/test/files/yak/sub_sub_context_test.yml +27 -0
- data/vendor/diy-1.1.1/test/test_helper.rb +39 -0
- data/vendor/ffi-0.4.0-x86-mswin32/LICENSE +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/Rakefile +142 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AbstractMemory.c +412 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AbstractMemory.h +68 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AutoPointer.c +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AutoPointer.h +18 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Buffer.c +171 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Callback.c +374 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Callback.h +47 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/DynamicLibrary.c +213 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/DynamicLibrary.h +22 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Invoker.c +962 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/LastError.c +135 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/LastError.h +18 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/MemoryPointer.c +156 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/MemoryPointer.h +20 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/NullPointer.c +143 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Platform.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Platform.h +16 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Pointer.c +164 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Pointer.h +25 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Struct.c +477 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Struct.h +26 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Type.c +230 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Type.h +28 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Types.c +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Types.h +54 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/compat.h +22 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/endian.h +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/extconf.rb +31 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/ffi.c +76 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.bsd.mk +34 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.darwin.mk +75 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.gnu.mk +29 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.mk +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog +3243 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/LICENSE +21 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/Makefile.am +177 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/Makefile.in +1640 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/README +328 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/TODO +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/acinclude.m4 +92 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/aclocal.m4 +7516 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/compile +142 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/config.guess +1516 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/config.sub +1626 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure +24414 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure.ac +365 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure.host +11 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/depcomp +584 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/libffi.info +533 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/libffi.texi +541 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/stamp-vti +4 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/version.texi +4 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/fficonfig.h.in +160 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/Makefile.am +9 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/Makefile.in +422 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/ffi.h.in +393 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/ffi_common.h +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/install-sh +323 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/libffi.pc.in +10 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/libtool-version +29 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-c.sh +861 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltconfig +2862 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltmain.sh +6930 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/Makefile.am +8 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/Makefile.in +395 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi.3 +31 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/mdate-sh +201 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/missing +353 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/mkinstalldirs +158 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/closures.c +596 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/debug.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/n32.S +534 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/o32.S +381 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/linux.S +357 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/prep_cif.c +174 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/raw_api.c +254 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/types.c +77 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/win32.S +391 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/texinfo.tex +7482 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/rbffi.h +23 -0
- data/vendor/ffi-0.4.0-x86-mswin32/gen/Rakefile +12 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/1.8/ffi_c.so +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/1.9/ffi_c.so +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi.rb +11 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/autopointer.rb +61 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/buffer.rb +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/callback.rb +10 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/enum.rb +78 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/errno.rb +8 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/ffi.rb +96 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/io.rb +21 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/library.rb +243 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/managedstruct.rb +55 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/memorypointer.rb +73 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/platform.rb +78 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/pointer.rb +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/struct.rb +354 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/const_generator.rb +177 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/generator.rb +58 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/generator_task.rb +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/struct_generator.rb +194 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/types_generator.rb +123 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/types.rb +153 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/union.rb +17 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/variadic.rb +30 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/bool_spec.rb +24 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/buffer_spec.rb +196 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/callback_spec.rb +560 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/enum_spec.rb +164 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/errno_spec.rb +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/library_spec.rb +144 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/managed_struct_spec.rb +56 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/number_spec.rb +231 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/pointer_spec.rb +195 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/attach_function_spec.rb +27 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/spec_helper.rb +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/struct_spec.rb +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/spec_helper.rb +17 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/string_spec.rb +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_callback_spec.rb +41 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_initialize_spec.rb +30 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_spec.rb +476 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/typedef_spec.rb +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/union_spec.rb +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/variadic_spec.rb +84 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/spec.opts +4 -0
- data/vendor/hardmock-1.3.7/CHANGES +78 -0
- data/vendor/hardmock-1.3.7/LICENSE +7 -0
- data/vendor/hardmock-1.3.7/README +70 -0
- data/vendor/hardmock-1.3.7/Rakefile +8 -0
- data/vendor/hardmock-1.3.7/config/environment.rb +12 -0
- data/vendor/hardmock-1.3.7/lib/assert_error.rb +23 -0
- data/vendor/hardmock-1.3.7/lib/extend_test_unit.rb +14 -0
- data/vendor/hardmock-1.3.7/lib/hardmock.rb +86 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/errors.rb +22 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expectation.rb +229 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expectation_builder.rb +9 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expector.rb +26 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/method_cleanout.rb +33 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/mock.rb +180 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/mock_control.rb +53 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/stubbing.rb +210 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/trapper.rb +31 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/utils.rb +9 -0
- data/vendor/hardmock-1.3.7/lib/test_unit_before_after.rb +169 -0
- data/vendor/hardmock-1.3.7/rake_tasks/test.rake +22 -0
- data/vendor/hardmock-1.3.7/test/functional/assert_error_test.rb +52 -0
- data/vendor/hardmock-1.3.7/test/functional/auto_verify_test.rb +178 -0
- data/vendor/hardmock-1.3.7/test/functional/direct_mock_usage_test.rb +396 -0
- data/vendor/hardmock-1.3.7/test/functional/hardmock_test.rb +434 -0
- data/vendor/hardmock-1.3.7/test/functional/stubbing_test.rb +479 -0
- data/vendor/hardmock-1.3.7/test/test_helper.rb +43 -0
- data/vendor/hardmock-1.3.7/test/unit/expectation_builder_test.rb +19 -0
- data/vendor/hardmock-1.3.7/test/unit/expectation_test.rb +372 -0
- data/vendor/hardmock-1.3.7/test/unit/expector_test.rb +57 -0
- data/vendor/hardmock-1.3.7/test/unit/method_cleanout_test.rb +36 -0
- data/vendor/hardmock-1.3.7/test/unit/mock_control_test.rb +175 -0
- data/vendor/hardmock-1.3.7/test/unit/mock_test.rb +279 -0
- data/vendor/hardmock-1.3.7/test/unit/test_unit_before_after_test.rb +452 -0
- data/vendor/hardmock-1.3.7/test/unit/trapper_test.rb +62 -0
- data/vendor/hardmock-1.3.7/test/unit/verify_error_test.rb +40 -0
- data/vendor/mcc/cbw32.dll +0 -0
- data/vendor/systir/systir.rb +403 -0
- data/vendor/systir/test/unit/ui/xml/testrunner.rb +192 -0
- data/vendor/systir/test/unit/ui/xml/xmltestrunner.xslt +109 -0
- metadata +561 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../lib/behaviors'
|
3
|
+
require 'stringio'
|
4
|
+
|
5
|
+
loading_developer_test_class_stdout = StringIO.new
|
6
|
+
saved_stdout = $stdout.dup
|
7
|
+
$stdout = loading_developer_test_class_stdout
|
8
|
+
|
9
|
+
class DeveloperTest
|
10
|
+
extend Behaviors
|
11
|
+
attr_accessor :flunk_msg, :tested_code
|
12
|
+
|
13
|
+
should "test their code" do
|
14
|
+
@tested_code = true
|
15
|
+
end
|
16
|
+
should "go to meetings"
|
17
|
+
end
|
18
|
+
|
19
|
+
$stdout = saved_stdout
|
20
|
+
loading_developer_test_class_stdout.rewind
|
21
|
+
$loading_developer_test_class_output = loading_developer_test_class_stdout.read
|
22
|
+
|
23
|
+
class BehaviorsTest < Test::Unit::TestCase
|
24
|
+
|
25
|
+
|
26
|
+
def setup
|
27
|
+
@target = DeveloperTest.new
|
28
|
+
assert_nil @target.tested_code, "block called too early"
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# TESTS
|
33
|
+
#
|
34
|
+
def test_should_called_with_a_block_defines_a_test
|
35
|
+
assert @target.methods.include?("test_should_test their code"), "Missing test method"
|
36
|
+
|
37
|
+
@target.send("test_should_test their code")
|
38
|
+
|
39
|
+
assert @target.tested_code, "block not called"
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_should_called_without_a_block_does_not_create_a_test_method
|
43
|
+
assert !@target.methods.include?("test_should_go to meetings"), "Should not have method"
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_should_called_without_a_block_will_give_unimplemented_output_when_class_loads
|
47
|
+
unimplemented_output = "UNIMPLEMENTED CASE: Developer should go to meetings"
|
48
|
+
assert_match /#{unimplemented_output}/, $loading_developer_test_class_output
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
|
4
|
+
APP_ROOT = File.expand_path(File.dirname(__FILE__))
|
5
|
+
load "#{APP_ROOT}/../../tasks/behaviors_tasks.rake"
|
6
|
+
|
7
|
+
cd APP_ROOT
|
8
|
+
|
9
|
+
desc 'Default: run unit tests.'
|
10
|
+
task :default => :test
|
11
|
+
|
12
|
+
Rake::TestTask.new(:test) do |t|
|
13
|
+
t.libs << "#{APP_ROOT}/../../lib"
|
14
|
+
t.pattern = 'test/**/*_test.rb'
|
15
|
+
t.verbose = true
|
16
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<style>
|
4
|
+
|
5
|
+
div.title
|
6
|
+
{
|
7
|
+
width: 600px;
|
8
|
+
font: bold 14pt trebuchet ms;
|
9
|
+
}
|
10
|
+
|
11
|
+
div.specification
|
12
|
+
{
|
13
|
+
font: bold 12pt trebuchet ms;
|
14
|
+
border: solid 1px black;
|
15
|
+
width: 600px;
|
16
|
+
padding: 5px;
|
17
|
+
margin: 5px;
|
18
|
+
}
|
19
|
+
|
20
|
+
ul.requirements
|
21
|
+
{
|
22
|
+
font: normal 11pt verdana;
|
23
|
+
padding-left: 0;
|
24
|
+
margin-left: 0;
|
25
|
+
border-bottom: 1px solid gray;
|
26
|
+
width: 600px;
|
27
|
+
}
|
28
|
+
|
29
|
+
ul.requirements li
|
30
|
+
{
|
31
|
+
list-style: none;
|
32
|
+
margin: 0;
|
33
|
+
padding: 0.25em;
|
34
|
+
border-top: 1px solid gray;
|
35
|
+
}
|
36
|
+
</style>
|
37
|
+
</head>
|
38
|
+
<body>
|
39
|
+
<div class="title">Specifications for tasks_test</div>
|
40
|
+
|
41
|
+
<div class="specification">
|
42
|
+
User should:
|
43
|
+
<ul class="requirements">
|
44
|
+
|
45
|
+
<li>be able set user name and age during construction</li>
|
46
|
+
|
47
|
+
<li>be able to get user name and age</li>
|
48
|
+
|
49
|
+
<li>be able to ask if a user is an adult</li>
|
50
|
+
|
51
|
+
</ul>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
</body>
|
55
|
+
</html>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'behaviors'
|
3
|
+
|
4
|
+
require 'user'
|
5
|
+
|
6
|
+
class UserTest < Test::Unit::TestCase
|
7
|
+
extend Behaviors
|
8
|
+
|
9
|
+
def setup
|
10
|
+
end
|
11
|
+
|
12
|
+
should "be able set user name and age during construction"
|
13
|
+
should "be able to get user name and age"
|
14
|
+
should "be able to ask if a user is an adult"
|
15
|
+
def test_DELETEME
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
== 1.0.2 / 2008-05-07
|
2
|
+
|
3
|
+
* An error is raised when constructor keys are passed in that already exist in the super class
|
4
|
+
|
5
|
+
== 1.0.1 / 2007-12-21
|
6
|
+
|
7
|
+
* You can now pass a block to your constructor call; it gets executed after all the ivars get assigned. (This lets you write some initializer code if you need to.)
|
8
|
+
|
9
|
+
== 1.0.0 / 2007-11-18
|
10
|
+
|
11
|
+
* Released!
|
@@ -0,0 +1,77 @@
|
|
1
|
+
constructor
|
2
|
+
|
3
|
+
* http://rubyforge.org/projects/atomicobjectrb/
|
4
|
+
* http://atomicobjectrb.rubyforge.org/constructor
|
5
|
+
|
6
|
+
== DESCRIPTION:
|
7
|
+
|
8
|
+
Declarative means to define object properties by passing a hash
|
9
|
+
to the constructor, which will set the corresponding ivars.
|
10
|
+
|
11
|
+
== FEATURES/PROBLEMS:
|
12
|
+
|
13
|
+
* Declarative constructor definition and ivar initialization
|
14
|
+
|
15
|
+
== SYNOPSIS:
|
16
|
+
|
17
|
+
require 'constructor'
|
18
|
+
|
19
|
+
class Horse
|
20
|
+
constructor :name, :breed, :weight
|
21
|
+
end
|
22
|
+
Horse.new :name => 'Ed', :breed => 'Mustang', :weight => 342
|
23
|
+
|
24
|
+
By default the ivars do not get accessors defined.
|
25
|
+
But you can get them auto-made if you want:
|
26
|
+
|
27
|
+
class Horse
|
28
|
+
constructor :name, :breed, :weight, :accessors => true
|
29
|
+
end
|
30
|
+
...
|
31
|
+
puts my_horse.weight
|
32
|
+
|
33
|
+
Arguments specified are required by default. You can disable
|
34
|
+
strict argument checking with :strict option. This means that
|
35
|
+
the constructor will not raise an error if you pass more or
|
36
|
+
fewer arguments than declared.
|
37
|
+
|
38
|
+
class Donkey
|
39
|
+
constructor :age, :odor, :strict => false
|
40
|
+
end
|
41
|
+
|
42
|
+
... this allows you to pass either an age or odor key (or neither)
|
43
|
+
to the Donkey constructor.
|
44
|
+
|
45
|
+
|
46
|
+
== REQUIREMENTS:
|
47
|
+
|
48
|
+
* rubygems
|
49
|
+
|
50
|
+
== INSTALL:
|
51
|
+
|
52
|
+
* sudo gem install constructor
|
53
|
+
|
54
|
+
== LICENSE:
|
55
|
+
|
56
|
+
(The MIT License)
|
57
|
+
|
58
|
+
Copyright (c) 2007 Atomic Object
|
59
|
+
|
60
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
61
|
+
a copy of this software and associated documentation files (the
|
62
|
+
'Software'), to deal in the Software without restriction, including
|
63
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
64
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
65
|
+
permit persons to whom the Software is furnished to do so, subject to
|
66
|
+
the following conditions:
|
67
|
+
|
68
|
+
The above copyright notice and this permission notice shall be
|
69
|
+
included in all copies or substantial portions of the Software.
|
70
|
+
|
71
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
72
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
73
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
74
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
75
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
76
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
77
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'hoe'
|
3
|
+
require './lib/constructor.rb'
|
4
|
+
require 'spec/rake/spectask'
|
5
|
+
|
6
|
+
|
7
|
+
desc 'Default: run specs'
|
8
|
+
task :default => :spec
|
9
|
+
Hoe.new('constructor', CONSTRUCTOR_VERSION) do |p|
|
10
|
+
p.rubyforge_name = 'atomicobjectrb'
|
11
|
+
p.author = 'Atomic Object'
|
12
|
+
p.email = 'dev@atomicobject.com'
|
13
|
+
p.summary = 'Declarative, named constructor arguments.'
|
14
|
+
p.description = p.paragraphs_of('README.txt', 2).join("\n\n")
|
15
|
+
p.url = p.paragraphs_of('README.txt', 1).first.gsub(/\* /,'').split(/\n/)
|
16
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Run constructor specs'
|
20
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
21
|
+
t.spec_files = FileList['specs/*_spec.rb']
|
22
|
+
t.spec_opts << '-c -f s'
|
23
|
+
end
|
24
|
+
|
25
|
+
if File.exists?("../tools/")
|
26
|
+
load "../tools/tasks/homepage.rake"
|
27
|
+
load "../tools/tasks/release_tagging.rake"
|
28
|
+
ReleaseTagging.new do |t|
|
29
|
+
t.package = "constructor"
|
30
|
+
t.version = CONSTRUCTOR_VERSION
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
CONSTRUCTOR_VERSION = '1.0.2' #:nodoc:#
|
2
|
+
|
3
|
+
class Class #:nodoc:#
|
4
|
+
def constructor(*attrs, &block)
|
5
|
+
call_block = ''
|
6
|
+
if block_given?
|
7
|
+
@constructor_block = block
|
8
|
+
call_block = 'self.instance_eval(&self.class.constructor_block)'
|
9
|
+
end
|
10
|
+
# Look for embedded options in the listing:
|
11
|
+
opts = attrs.find { |a| a.kind_of?(Hash) and attrs.delete(a) }
|
12
|
+
do_acc = opts.nil? ? false : opts[:accessors] == true
|
13
|
+
require_args = opts.nil? ? true : opts[:strict] != false
|
14
|
+
super_args = opts.nil? ? nil : opts[:super]
|
15
|
+
|
16
|
+
# Incorporate superclass's constructor keys, if our superclass
|
17
|
+
if superclass.constructor_keys
|
18
|
+
similar_keys = superclass.constructor_keys & attrs
|
19
|
+
raise "Base class already has keys #{similar_keys.inspect}" unless similar_keys.empty?
|
20
|
+
attrs = [attrs,superclass.constructor_keys].flatten
|
21
|
+
end
|
22
|
+
# Generate ivar assigner code lines
|
23
|
+
assigns = ''
|
24
|
+
attrs.each do |k|
|
25
|
+
assigns += "@#{k.to_s} = args[:#{k.to_s}]\n"
|
26
|
+
end
|
27
|
+
|
28
|
+
# If accessors option is on, declare accessors for the attributes:
|
29
|
+
if do_acc
|
30
|
+
self.class_eval "attr_accessor " + attrs.map {|x| ":#{x.to_s}"}.join(',')
|
31
|
+
end
|
32
|
+
|
33
|
+
# If user supplied super-constructor hints:
|
34
|
+
super_call = ''
|
35
|
+
if super_args
|
36
|
+
list = super_args.map do |a|
|
37
|
+
case a
|
38
|
+
when String
|
39
|
+
%|"#{a}"|
|
40
|
+
when Symbol
|
41
|
+
%|:#{a}|
|
42
|
+
end
|
43
|
+
end
|
44
|
+
super_call = %|super(#{list.join(',')})|
|
45
|
+
end
|
46
|
+
|
47
|
+
# If strict is on, define the constructor argument validator method,
|
48
|
+
# and setup the initializer to invoke the validator method.
|
49
|
+
# Otherwise, insert lax code into the initializer.
|
50
|
+
validation_code = "return if args.nil?"
|
51
|
+
if require_args
|
52
|
+
self.class_eval do
|
53
|
+
def _validate_constructor_args(args)
|
54
|
+
# First, make sure we've got args of some kind
|
55
|
+
unless args and args.keys and args.keys.size > 0
|
56
|
+
raise ConstructorArgumentError.new(self.class.constructor_keys)
|
57
|
+
end
|
58
|
+
# Scan for missing keys in the argument hash
|
59
|
+
a_keys = args.keys
|
60
|
+
missing = []
|
61
|
+
self.class.constructor_keys.each do |ck|
|
62
|
+
unless a_keys.member?(ck)
|
63
|
+
missing << ck
|
64
|
+
end
|
65
|
+
a_keys.delete(ck) # Delete inbound keys as we address them
|
66
|
+
end
|
67
|
+
if missing.size > 0 || a_keys.size > 0
|
68
|
+
raise ConstructorArgumentError.new(missing,a_keys)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
# Setup the code to insert into the initializer:
|
73
|
+
validation_code = "_validate_constructor_args args "
|
74
|
+
end
|
75
|
+
|
76
|
+
# Generate the initializer code
|
77
|
+
self.class_eval %{
|
78
|
+
def initialize(args=nil)
|
79
|
+
#{super_call}
|
80
|
+
#{validation_code}
|
81
|
+
#{assigns}
|
82
|
+
setup if respond_to?(:setup)
|
83
|
+
#{call_block}
|
84
|
+
end
|
85
|
+
}
|
86
|
+
|
87
|
+
# Remember our constructor keys
|
88
|
+
@_ctor_keys = attrs
|
89
|
+
end
|
90
|
+
|
91
|
+
# Access the constructor keys for this class
|
92
|
+
def constructor_keys; @_ctor_keys ||=[]; end
|
93
|
+
|
94
|
+
def constructor_block #:nodoc:#
|
95
|
+
@constructor_block
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
# Fancy validation exception, based on missing and extraneous keys.
|
101
|
+
class ConstructorArgumentError < RuntimeError #:nodoc:#
|
102
|
+
def initialize(missing,rejected=[])
|
103
|
+
err_msg = ''
|
104
|
+
if missing.size > 0
|
105
|
+
err_msg = "Missing constructor args [#{missing.join(',')}]"
|
106
|
+
end
|
107
|
+
if rejected.size > 0
|
108
|
+
# Some inbound keys were not addressed earlier; this means they're unwanted
|
109
|
+
if err_msg
|
110
|
+
err_msg << "; " # Appending to earlier message about missing items
|
111
|
+
else
|
112
|
+
err_msg = ''
|
113
|
+
end
|
114
|
+
# Enumerate the rejected key names
|
115
|
+
err_msg << "Rejected constructor args [#{rejected.join(',')}]"
|
116
|
+
end
|
117
|
+
super err_msg
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,345 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/constructor')
|
2
|
+
|
3
|
+
describe 'standard constructor usage' do
|
4
|
+
it 'allows for object construction using a hash of named arguments' do
|
5
|
+
fuh = TestingClass.new(
|
6
|
+
:foo => 'my foo',
|
7
|
+
:bar => 'my bar',
|
8
|
+
:qux => 'my qux',
|
9
|
+
:why => 'lucky'
|
10
|
+
)
|
11
|
+
|
12
|
+
fuh.foo.should eql('my foo')
|
13
|
+
fuh.bar.should eql('my bar')
|
14
|
+
fuh.qux.should eql('my qux')
|
15
|
+
fuh.why.should eql('lucky')
|
16
|
+
fuh.to_pretty_pretty.should eql('my foo my bar')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'calls setup method if defined' do
|
20
|
+
ralph = Llamma.new :hair => 'red'
|
21
|
+
ralph.hungry.should be_true
|
22
|
+
ralph.hair.should eql('red')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "constructor's accessor option" do
|
27
|
+
it 'provides accessors for constructor arguments when accessor option is true' do
|
28
|
+
fuh = TestingAutoAccessors.new(
|
29
|
+
:foo => 'my foo',
|
30
|
+
:bar => 'my bar',
|
31
|
+
:qux => 'my qux',
|
32
|
+
:why => 'lucky'
|
33
|
+
)
|
34
|
+
fuh.foo.should eql('my foo')
|
35
|
+
fuh.bar.should eql('my bar')
|
36
|
+
fuh.qux.should eql('my qux')
|
37
|
+
fuh.why.should eql('lucky')
|
38
|
+
fuh.to_pretty_pretty.should eql('my foo my bar')
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'does not provide accessors for constructor arguments when accessor option is false' do
|
42
|
+
fuh = TestingBlockedAccessors.new :foo => 'my foo', :bar => 'my bar'
|
43
|
+
lambda {fuh.foo}.should raise_error(NoMethodError)
|
44
|
+
lambda {fuh.bar}.should raise_error(NoMethodError)
|
45
|
+
fuh.to_pretty_pretty.should eql('my foo my bar')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe 'using constructor with inheritance' do
|
50
|
+
it 'allows for inheritance of constructor arguments using a non-constructor defined subclass' do
|
51
|
+
fuh = SubclassOfTestingClass.new :foo => 'whu?'
|
52
|
+
fuh.foo.should eql('whu?')
|
53
|
+
fuh.bar.should be_nil
|
54
|
+
fuh.qux.should be_nil
|
55
|
+
fuh.why.should be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'allows for standard construction of a non-constructor subclass of a non-strict constuctor superclass' do
|
59
|
+
fuh = SubclassOfTestingClass2.new
|
60
|
+
fuh.foo.should be_nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'runs initialize method of a sublcass' do
|
64
|
+
fuh = SubclassOfTestingClass3.new
|
65
|
+
fuh.my_new_var.should eql('something')
|
66
|
+
fuh.foo.should be_nil
|
67
|
+
fuh.bar.should be_nil
|
68
|
+
fuh.qux.should be_nil
|
69
|
+
fuh.why.should be_nil
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'passes named constructor args to superclass when subclass calls super' do
|
73
|
+
fuh = SubclassOfTestingClass3.new :foo => 12
|
74
|
+
fuh.my_new_var.should eql('something')
|
75
|
+
fuh.foo.should eql(12)
|
76
|
+
fuh.bar.should be_nil
|
77
|
+
fuh.qux.should be_nil
|
78
|
+
fuh.why.should be_nil
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'allows for inheritance of constructor arguments using a constructor defined subclass' do
|
82
|
+
s = Sonny.new :car => 'Nissan', :saw => 'Dewalt', :computer => 'Dell'
|
83
|
+
s.computer.should eql('Dell')
|
84
|
+
s.saw.should eql('Dewalt')
|
85
|
+
s.car.should eql('Nissan')
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'calls the setup method on superclass if subclass does not define a setup method' do
|
89
|
+
baby = Baby.new :cuteness => 'little', :age => 1
|
90
|
+
baby.fat.should eql('much')
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'calls parent class setup when super is called from subclass setup' do
|
94
|
+
m = Mama.new :age => 55
|
95
|
+
m.age.should eql(55)
|
96
|
+
m.fat.should eql('much')
|
97
|
+
|
98
|
+
s = Sissy.new :age => 19, :beauty => 'medium', :fat => 'yeah'
|
99
|
+
s.age.should eql(19)
|
100
|
+
s.beauty.should eql('medium')
|
101
|
+
s.fat.should eql('much')
|
102
|
+
s.friends.should eql('many')
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'passes arguments given in the super option to the initializer of a non-constructor defined superclass' do
|
106
|
+
tsc = TestingSuperConstructor.new(:far => 'oo', :away => 'kk')
|
107
|
+
tsc.far.should eql('oo')
|
108
|
+
tsc.away.should eql('kk')
|
109
|
+
tsc.a.should eql("once")
|
110
|
+
tsc.b.should eql(:twice)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'calls non-constructor defined superclass constructor when the super option is an empty array' do
|
114
|
+
tsc = TestingSuperConstructor2.new(:some => 'thing')
|
115
|
+
tsc.some.should eql('thing')
|
116
|
+
tsc.c.should eql('what a')
|
117
|
+
tsc.d.should eql('day for')
|
118
|
+
end
|
119
|
+
|
120
|
+
it "raises an error if subclass tries to build a constructor with the keys as its parents" do
|
121
|
+
class1 = constructor_class(Object, :star, :wars)
|
122
|
+
class2 = constructor_class(class1, :space, :balls)
|
123
|
+
lambda { constructor_class(class2, :star, :space, :chewy) }.should raise_error("Base class already has keys [:space, :star]")
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe 'stict mode usage' do
|
128
|
+
it 'allows omission of arguments when strict is off' do
|
129
|
+
fuh = TestingClass.new :foo => 'my foo'
|
130
|
+
|
131
|
+
fuh.foo.should eql('my foo')
|
132
|
+
fuh.bar.should be_nil
|
133
|
+
fuh.qux.should be_nil
|
134
|
+
fuh.why.should be_nil
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'allows no arguments to a constructor when strict is off' do
|
138
|
+
fuh = TestingClass.new
|
139
|
+
fuh.foo.should be_nil
|
140
|
+
fuh.bar.should be_nil
|
141
|
+
fuh.qux.should be_nil
|
142
|
+
fuh.why.should be_nil
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'does not interfere with normal object construction' do
|
146
|
+
require 'rexml/document'
|
147
|
+
d = REXML::Document.new '<base/>'
|
148
|
+
d.should_not be_nil
|
149
|
+
d.root.name.should eql('base')
|
150
|
+
end
|
151
|
+
|
152
|
+
def see_strict_args_in_effect_for(clazz)
|
153
|
+
fuh = clazz.new :foo => 'my foo', :bar => 'my bar'
|
154
|
+
fuh.to_pretty_pretty.should eql('my foo my bar')
|
155
|
+
|
156
|
+
# Omit foo
|
157
|
+
lambda {
|
158
|
+
TestingStrictArgsDefault.new :bar => 'ok,yeah'
|
159
|
+
}.should raise_error(ConstructorArgumentError, /foo/)
|
160
|
+
|
161
|
+
# Omit bar
|
162
|
+
lambda {
|
163
|
+
TestingStrictArgsDefault.new :foo => 'ok,yeah'
|
164
|
+
}.should raise_error(ConstructorArgumentError, /bar/)
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'defaults to strict argument enforcement' do
|
168
|
+
see_strict_args_in_effect_for TestingStrictArgsDefault
|
169
|
+
end
|
170
|
+
|
171
|
+
it 'enforces strict arguments when strict option is true' do
|
172
|
+
see_strict_args_in_effect_for TestingStrictArgs
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'does not allow empty constructor arguments when strict option is true' do
|
176
|
+
lambda {TestingStrictArgs.new {}}.should raise_error(ConstructorArgumentError,/foo,bar/)
|
177
|
+
lambda {TestingStrictArgs.new}.should raise_error(ConstructorArgumentError,/foo,bar/)
|
178
|
+
lambda {TestingStrictArgs.new nil}.should raise_error(ConstructorArgumentError,/foo,bar/)
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'does not allow extraneous arguments when strict option is true' do
|
182
|
+
[ /thing/, /other/ ].each do |rejected_arg|
|
183
|
+
lambda {
|
184
|
+
TestingStrictArgs.new(:foo => 1, :bar => 2, :other => 3, :thing => 4)
|
185
|
+
}.should raise_error(ConstructorArgumentError, rejected_arg)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
it 'allows for setting accessors option while in strict mode' do
|
190
|
+
t2 = TestingStrictArgs2.new :foo => 1, :bar => 2
|
191
|
+
|
192
|
+
# See that accessors work
|
193
|
+
t2.foo.should eql(1)
|
194
|
+
t2.bar.should eql(2)
|
195
|
+
|
196
|
+
# See that strictness still applies
|
197
|
+
lambda {TestingStrictArgs2.new :no => 'good'}.should raise_error(ConstructorArgumentError)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
describe 'catching ConstructorArgumentError' do
|
202
|
+
it 'allows for generic rescuing of constructor argument errors' do
|
203
|
+
begin
|
204
|
+
TestingStrictArgs.new :broken => 'yoobetcha'
|
205
|
+
rescue => bad_news
|
206
|
+
bad_news.should be_kind_of(ConstructorArgumentError)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
describe 'block yielding' do
|
212
|
+
it 'executes a specified block after instantiating' do
|
213
|
+
TestingBlockYield.new(:a => false).a.should == true
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
def constructor_class(base, *keys)
|
218
|
+
Class.new(base) do
|
219
|
+
constructor *keys
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
class TestingClass
|
224
|
+
attr_accessor :foo, :bar, :why, :qux
|
225
|
+
constructor :foo, :bar, :why, :qux, :strict => false
|
226
|
+
|
227
|
+
def to_pretty_pretty
|
228
|
+
"#{@foo} #{@bar}"
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
232
|
+
|
233
|
+
class Mama
|
234
|
+
attr_accessor :fat, :age
|
235
|
+
constructor :age, :strict => false
|
236
|
+
def setup
|
237
|
+
@fat = "much"
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
class Baby < Mama
|
242
|
+
constructor :cuteness
|
243
|
+
end
|
244
|
+
|
245
|
+
class Sissy < Mama
|
246
|
+
attr_accessor :friends, :beauty
|
247
|
+
constructor :beauty, :strict => false
|
248
|
+
def setup
|
249
|
+
super #IMPORTANT!
|
250
|
+
@friends = "many"
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
class TestingStrictArgsDefault
|
255
|
+
constructor :foo, :bar
|
256
|
+
def to_pretty_pretty
|
257
|
+
"#{@foo} #{@bar}"
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
class TestingStrictArgs
|
262
|
+
constructor :foo, :bar, :strict => true
|
263
|
+
def to_pretty_pretty
|
264
|
+
"#{@foo} #{@bar}"
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
class TestingStrictArgs2
|
269
|
+
constructor :foo, :bar, :accessors => true
|
270
|
+
end
|
271
|
+
|
272
|
+
class SubclassOfTestingClass < TestingClass
|
273
|
+
end
|
274
|
+
|
275
|
+
class SubclassOfTestingClass2 < TestingClass
|
276
|
+
def initialize; end
|
277
|
+
end
|
278
|
+
|
279
|
+
class SubclassOfTestingClass3 < TestingClass
|
280
|
+
attr_reader :my_new_var
|
281
|
+
def initialize(hash = nil)
|
282
|
+
super
|
283
|
+
@my_new_var = "something"
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
class TestingAutoAccessors
|
288
|
+
constructor :foo, :bar, :why, :qux, :accessors => true, :strict => false
|
289
|
+
def to_pretty_pretty
|
290
|
+
"#{@foo} #{@bar}"
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
class TestingSuperConstructorBase
|
295
|
+
attr_reader :a, :b
|
296
|
+
def initialize(a,b)
|
297
|
+
@a = a
|
298
|
+
@b = b
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
class TestingSuperConstructor < TestingSuperConstructorBase
|
303
|
+
constructor :far, :away, :accessors => true, :super => ["once", :twice], :strict => false
|
304
|
+
end
|
305
|
+
|
306
|
+
class TestingSuperConstructorBase2
|
307
|
+
attr_reader :c, :d
|
308
|
+
def initialize
|
309
|
+
@c = 'what a'
|
310
|
+
@d = 'day for'
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
class TestingSuperConstructor2 < TestingSuperConstructorBase2
|
315
|
+
constructor :some, :accessors => true, :super => [], :strict => false
|
316
|
+
end
|
317
|
+
|
318
|
+
class TestingBlockedAccessors
|
319
|
+
constructor :foo, :bar, :accessors => false
|
320
|
+
def to_pretty_pretty
|
321
|
+
"#{@foo} #{@bar}"
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
class Papa
|
326
|
+
constructor :car, :saw
|
327
|
+
end
|
328
|
+
|
329
|
+
class Sonny < Papa
|
330
|
+
constructor :computer, :accessors => true
|
331
|
+
end
|
332
|
+
|
333
|
+
class Llamma
|
334
|
+
attr_accessor :hungry, :hair
|
335
|
+
constructor :hair
|
336
|
+
def setup
|
337
|
+
@hungry = true
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
class TestingBlockYield
|
342
|
+
constructor :a, :accessors => true do
|
343
|
+
@a = true
|
344
|
+
end
|
345
|
+
end
|