poolparty 1.2.2 → 1.3.1
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/README.rdoc +202 -0
- data/Rakefile +5 -19
- data/VERSION.yml +2 -2
- data/bin/cloud +49 -47
- data/bin/cloud-bootstrap +21 -22
- data/bin/cloud-compile +33 -0
- data/bin/cloud-configure +25 -33
- data/bin/cloud-console +33 -9
- data/bin/cloud-contract +31 -11
- data/bin/cloud-expand +30 -18
- data/bin/cloud-list +41 -15
- data/bin/cloud-osxcopy +21 -12
- data/bin/cloud-show +31 -21
- data/bin/cloud-ssh +20 -15
- data/bin/cloud-start +40 -20
- data/bin/cloud-terminate +28 -21
- data/bin/cloud-thrift +77 -0
- data/bin/cloud-verify +36 -28
- data/bin/install-poolparty +11 -207
- data/config/jeweler.rb +11 -13
- data/examples/basic.rb +19 -9
- data/examples/custom_bootstrap.sh +7 -0
- data/examples/eucalyptus.rb +63 -0
- data/examples/eucalyptus_test_run.sh +31 -0
- data/examples/knock.sh +27 -0
- data/examples/monitored_cloud.rb +22 -0
- data/examples/simple.rb +17 -0
- data/examples/ssh_garden.rb +21 -0
- data/examples/thrift/erlang/Emakefile +5 -0
- data/examples/thrift/erlang/Makefile +26 -0
- data/examples/thrift/erlang/deps/thrift/COPYING +24 -0
- data/examples/thrift/erlang/deps/thrift/LICENSE +24 -0
- data/examples/thrift/erlang/deps/thrift/Makefile +18 -0
- data/examples/thrift/erlang/deps/thrift/README +31 -0
- data/examples/thrift/erlang/deps/thrift/build/beamver +59 -0
- data/examples/thrift/erlang/deps/thrift/build/buildtargets.mk +14 -0
- data/examples/thrift/erlang/deps/thrift/build/colors.mk +24 -0
- data/examples/thrift/erlang/deps/thrift/build/docs.mk +12 -0
- data/examples/thrift/erlang/deps/thrift/build/mime.types +98 -0
- data/examples/thrift/erlang/deps/thrift/build/otp.mk +146 -0
- data/examples/thrift/erlang/deps/thrift/build/otp_subdir.mk +85 -0
- data/examples/thrift/erlang/deps/thrift/build/raw_test.mk +29 -0
- data/examples/thrift/erlang/deps/thrift/ebin/thrift.app +44 -0
- data/examples/thrift/erlang/deps/thrift/ebin/thrift.appup +1 -0
- data/examples/thrift/erlang/deps/thrift/include/thrift_constants.hrl +40 -0
- data/examples/thrift/erlang/deps/thrift/include/thrift_protocol.hrl +12 -0
- data/examples/thrift/erlang/deps/thrift/src/Makefile +116 -0
- data/examples/thrift/erlang/deps/thrift/src/test_handler.erl +7 -0
- data/examples/thrift/erlang/deps/thrift/src/test_service.erl +10 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift.app.src +44 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift.appup.src +1 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_app.erl +55 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_base64_transport.erl +45 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_binary_protocol.erl +318 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_buffered_transport.erl +168 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_client.erl +328 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_disk_log_transport.erl +106 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_file_transport.erl +69 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_framed_transport.erl +196 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_http_transport.erl +169 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_processor.erl +174 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_protocol.erl +326 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_server.erl +171 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_service.erl +6 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_socket_server.erl +245 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_socket_transport.erl +100 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_sup.erl +53 -0
- data/examples/thrift/erlang/deps/thrift/src/thrift_transport.erl +38 -0
- data/examples/thrift/erlang/deps/thrift/vsn.mk +1 -0
- data/examples/thrift/erlang/include/commandInterface_thrift.hrl +5 -0
- data/examples/thrift/erlang/include/poolparty_constants.hrl +9 -0
- data/examples/thrift/erlang/include/poolparty_types.hrl +8 -0
- data/examples/thrift/erlang/src/commandInterface_thrift.erl +29 -0
- data/examples/thrift/erlang/src/poolparty_types.erl +30 -0
- data/examples/thrift/erlang/src/thrift_example.erl +32 -0
- data/examples/thrift/thrift_example.py +28 -0
- data/examples/thrift/thrift_example.rb +36 -0
- data/lib/cloud_providers/cloud_provider.rb +85 -0
- data/lib/cloud_providers/cloud_provider_instance.rb +274 -0
- data/lib/cloud_providers/connections.rb +99 -0
- data/lib/cloud_providers/ec2/ec2.rb +197 -0
- data/lib/cloud_providers/ec2/ec2_helpers.rb +45 -0
- data/lib/cloud_providers/ec2/ec2_instance.rb +120 -0
- data/lib/cloud_providers/ec2/ec2_response.rb +79 -0
- data/lib/cloud_providers/ssh/ssh.rb +68 -0
- data/lib/cloud_providers/ssh/ssh_instance.rb +41 -0
- data/lib/cloud_providers/vmware/vmware.rb +127 -0
- data/lib/cloud_providers/vmware/vmware_instance.rb +56 -0
- data/lib/cloud_providers.rb +19 -0
- data/lib/core/array.rb +54 -0
- data/lib/core/hash.rb +80 -0
- data/lib/core/integer.rb +11 -0
- data/lib/core/module.rb +14 -0
- data/lib/core/object.rb +92 -0
- data/lib/core/proc.rb +55 -0
- data/lib/core/string.rb +150 -0
- data/lib/core/symbol.rb +29 -0
- data/lib/core/time.rb +62 -0
- data/lib/dependency_resolver.rb +11 -0
- data/lib/dependency_resolvers/base.rb +122 -0
- data/lib/dependency_resolvers/chef/resources/chef_attributes_file.rb +51 -0
- data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
- data/lib/dependency_resolvers/chef/resources/http_request.rb +39 -0
- data/lib/dependency_resolvers/chef/resources/remote_directory.rb +54 -0
- data/lib/dependency_resolvers/chef/resources/remote_file.rb +69 -0
- data/lib/dependency_resolvers/chef/resources/route.rb +52 -0
- data/lib/dependency_resolvers/chef/resources/script.rb +62 -0
- data/lib/dependency_resolvers/chef.rb +237 -0
- data/lib/dependency_resolvers/proxy_object.rb +90 -0
- data/lib/keypair.rb +93 -0
- data/lib/mixins/askable.rb +154 -0
- data/lib/mixins/callbacks.rb +56 -0
- data/lib/mixins/delayed.rb +65 -0
- data/lib/mixins/pinger.rb +31 -0
- data/lib/mixins/printing.rb +35 -0
- data/lib/mixins/searchable_paths.rb +87 -0
- data/lib/poolparty/base.rb +232 -0
- data/lib/poolparty/cloud.rb +246 -0
- data/lib/poolparty/default.rb +32 -0
- data/lib/poolparty/dsl_base.rb +36 -0
- data/lib/poolparty/installer.rb +107 -0
- data/lib/poolparty/installers/ec2.rb +30 -0
- data/lib/poolparty/installers/vmware.rb +149 -0
- data/lib/poolparty/monitor.rb +61 -0
- data/lib/poolparty/plugin.rb +12 -0
- data/lib/poolparty/plugins/apache.rb +204 -0
- data/lib/poolparty/plugins/apache2/apache2.conf.erb +630 -0
- data/lib/poolparty/plugins/apache2/base.conf.erb +171 -0
- data/lib/poolparty/plugins/apache2/default-site.conf.erb +41 -0
- data/lib/poolparty/plugins/apache2/passenger_site.rb +83 -0
- data/lib/poolparty/plugins/apache2/php5.rb +41 -0
- data/lib/poolparty/plugins/apache2/virtual_host.rb +59 -0
- data/lib/poolparty/plugins/git/git_repository.rb +83 -0
- data/lib/poolparty/plugins/git.rb +12 -60
- data/lib/poolparty/plugins/rails/app.rb +29 -0
- data/lib/poolparty/plugins/rails.rb +25 -0
- data/lib/poolparty/pool.rb +154 -0
- data/lib/poolparty/pool_party_error.rb +19 -0
- data/lib/poolparty/pool_party_log.rb +47 -0
- data/lib/poolparty/resource.rb +279 -0
- data/lib/poolparty/resources/conditional.rb +65 -0
- data/lib/poolparty/resources/cron.rb +33 -20
- data/lib/poolparty/resources/directory.rb +28 -14
- data/lib/poolparty/resources/exec.rb +35 -21
- data/lib/poolparty/resources/file.rb +39 -31
- data/lib/poolparty/resources/gem_package.rb +55 -0
- data/lib/poolparty/resources/group.rb +46 -0
- data/lib/poolparty/resources/line.rb +50 -0
- data/lib/poolparty/resources/link.rb +49 -0
- data/lib/poolparty/resources/mount.rb +23 -11
- data/lib/poolparty/resources/package.rb +25 -11
- data/lib/poolparty/resources/service.rb +29 -12
- data/lib/poolparty/resources/user.rb +56 -6
- data/lib/poolparty/resources/variable.rb +29 -3
- data/lib/poolparty.rb +52 -126
- data/lib/proto/command_interface_handler.rb +31 -0
- data/lib/proto/gen-erl/commandInterface_thrift.erl +29 -0
- data/lib/proto/gen-erl/commandInterface_thrift.hrl +5 -0
- data/lib/proto/gen-erl/poolparty_constants.hrl +9 -0
- data/lib/proto/gen-erl/poolparty_types.erl +30 -0
- data/lib/proto/gen-erl/poolparty_types.hrl +8 -0
- data/lib/proto/gen-py/cloudthrift/CommandInterface-remote +79 -0
- data/lib/proto/gen-py/cloudthrift/CommandInterface.py +251 -0
- data/lib/proto/gen-py/cloudthrift/CommandInterface.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/__init__.py +1 -0
- data/lib/proto/gen-py/cloudthrift/__init__.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/constants.py +9 -0
- data/lib/proto/gen-py/cloudthrift/constants.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/ttypes.py +160 -0
- data/lib/proto/gen-py/cloudthrift/ttypes.pyc +0 -0
- data/lib/proto/gen-py/thrift/TSCons.py +33 -0
- data/lib/proto/gen-py/thrift/Thrift.py +123 -0
- data/lib/proto/gen-py/thrift/Thrift.pyc +0 -0
- data/lib/proto/gen-py/thrift/__init__.py +20 -0
- data/lib/proto/gen-py/thrift/__init__.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.py +259 -0
- data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/TProtocol.py +205 -0
- data/lib/proto/gen-py/thrift/protocol/TProtocol.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/__init__.py +20 -0
- data/lib/proto/gen-py/thrift/protocol/__init__.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/fastbinary.c +1203 -0
- data/lib/proto/gen-py/thrift/server/THttpServer.py +63 -0
- data/lib/proto/gen-py/thrift/server/TNonblockingServer.py +309 -0
- data/lib/proto/gen-py/thrift/server/TServer.py +270 -0
- data/lib/proto/gen-py/thrift/server/__init__.py +20 -0
- data/lib/proto/gen-py/thrift/transport/THttpClient.py +100 -0
- data/lib/proto/gen-py/thrift/transport/TSocket.py +149 -0
- data/lib/proto/gen-py/thrift/transport/TSocket.pyc +0 -0
- data/lib/proto/gen-py/thrift/transport/TTransport.py +326 -0
- data/lib/proto/gen-py/thrift/transport/TTransport.pyc +0 -0
- data/lib/proto/gen-py/thrift/transport/TTwisted.py +181 -0
- data/lib/proto/gen-py/thrift/transport/__init__.py +20 -0
- data/lib/proto/gen-py/thrift/transport/__init__.pyc +0 -0
- data/lib/proto/gen-rb/command_interface.rb +84 -0
- data/lib/proto/gen-rb/poolparty_constants.rb +10 -0
- data/lib/proto/gen-rb/poolparty_types.rb +45 -0
- data/lib/proto/poolparty.thrift +17 -0
- data/lib/provision/bootstrap_scripts/build_centos.sh +70 -0
- data/lib/provision/bootstrap_scripts/build_ubuntu.sh +75 -0
- data/lib/provision/bootstrap_scripts/determine_os.sh +21 -0
- data/lib/provision/bootstrapper.rb +44 -0
- data/lib/provision/configure_scripts/configure_centos.erb +7 -0
- data/lib/provision/configure_scripts/configure_ubuntu.erb +7 -0
- data/tasks/development.rake +6 -6
- data/tasks/poolparty.rake +41 -1
- data/tasks/test.rake +40 -0
- data/test/fixtures/bad_perms_test_key +27 -0
- data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
- data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
- data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
- data/test/fixtures/clouds/fake_clouds.rb +9 -0
- data/test/fixtures/clouds/simple_cloud.rb +13 -0
- data/test/fixtures/clouds/ssh_cloud.rb +11 -0
- data/test/fixtures/clouds/vmware_cloud.rb +16 -0
- data/test/fixtures/ec2/ec2-describe-instances_response_body.xml +70 -0
- data/test/fixtures/ec2/ec2-run-instances_response_body.xml +35 -0
- data/test/fixtures/ec2/ec2-terminate-instances_response_body.xml +16 -0
- data/test/fixtures/keys/test_key +27 -0
- data/test/fixtures/keys/test_pub_key +8 -0
- data/test/fixtures/resources/fake_plugin.rb +19 -0
- data/test/fixtures/resources/fake_resource.rb +18 -0
- data/test/fixtures/resources/random_proc_file.rb +7 -0
- data/test/fixtures/templates/apache_conf.erb +2 -0
- data/test/lib/cloud_providers/cloud_provider_instance_test.rb +68 -0
- data/test/lib/cloud_providers/cloud_provider_test.rb +25 -0
- data/test/lib/cloud_providers/connections_test.rb +71 -0
- data/test/lib/cloud_providers/ec2/ec2_helpers_test.rb +29 -0
- data/test/lib/cloud_providers/ec2/ec2_instance_test.rb +59 -0
- data/test/lib/cloud_providers/ec2/ec2_response_test.rb +41 -0
- data/test/lib/cloud_providers/ec2/ec2_test.rb +116 -0
- data/test/lib/cloud_providers/ssh/ssh_test.rb +61 -0
- data/test/lib/cloud_providers/vmware/vmware_test.rb +46 -0
- data/test/lib/core/array_test.rb +53 -0
- data/test/lib/core/hash_test.rb +41 -0
- data/test/lib/core/integer_test.rb +19 -0
- data/test/lib/core/module_test.rb +38 -0
- data/test/lib/core/object_test.rb +57 -0
- data/test/lib/core/proc_test.rb +26 -0
- data/test/lib/core/string_test.rb +73 -0
- data/test/lib/core/symbol_test.rb +26 -0
- data/test/lib/core/time_test.rb +51 -0
- data/test/lib/dependency_resolvers/base_test.rb +42 -0
- data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
- data/test/lib/dependency_resolvers/chef/resources/http_request_test.rb +29 -0
- data/test/lib/dependency_resolvers/chef/resources/remote_directory_test.rb +45 -0
- data/test/lib/dependency_resolvers/chef/resources/remote_file_test.rb +36 -0
- data/test/lib/dependency_resolvers/chef/resources/route_test.rb +37 -0
- data/test/lib/dependency_resolvers/chef/resources/script_test.rb +49 -0
- data/test/lib/dependency_resolvers/chef_test.rb +144 -0
- data/test/lib/dependency_resolvers/proxy_object_test.rb +75 -0
- data/test/lib/mixins/callbacks_test.rb +48 -0
- data/test/lib/mixins/delayed_test.rb +50 -0
- data/test/lib/mixins/searchable_paths_test.rb +83 -0
- data/test/lib/poolparty/base_test.rb +34 -0
- data/test/lib/poolparty/cloud_test.rb +139 -0
- data/test/lib/poolparty/default_test.rb +17 -0
- data/test/lib/poolparty/dsl_base_test.rb +30 -0
- data/test/lib/poolparty/installers/vmware_installer_test.rb +16 -0
- data/test/lib/poolparty/keypair_test.rb +42 -0
- data/test/lib/poolparty/monitor_test.rb +30 -0
- data/test/lib/poolparty/plugins/apache2/php5_test.rb +26 -0
- data/test/lib/poolparty/plugins/apache2/virtual_host_test.rb +28 -0
- data/test/lib/poolparty/plugins/apache_test.rb +35 -0
- data/test/lib/poolparty/pool_party_error_test.rb +20 -0
- data/test/lib/poolparty/pool_party_log_test.rb +17 -0
- data/test/lib/poolparty/pool_test.rb +26 -0
- data/test/lib/poolparty/resource_test.rb +145 -0
- data/test/lib/poolparty/resources/conditional_test.rb +49 -0
- data/test/lib/poolparty/resources/cron_test.rb +31 -0
- data/test/lib/poolparty/resources/directory_test.rb +21 -0
- data/test/lib/poolparty/resources/exec_test.rb +62 -0
- data/test/lib/poolparty/resources/file_test.rb +38 -0
- data/test/lib/poolparty/resources/group_test.rb +21 -0
- data/test/lib/poolparty/resources/line_test.rb +20 -0
- data/test/lib/poolparty/resources/link_test.rb +27 -0
- data/test/lib/poolparty/resources/mount_test.rb +32 -0
- data/test/lib/poolparty/resources/package_test.rb +28 -0
- data/test/lib/poolparty/resources/service_test.rb +31 -0
- data/test/lib/poolparty/resources/user_test.rb +33 -0
- data/test/lib/poolparty/resources/variable_test.rb +20 -0
- data/test/lib/provision/base_test.rb +16 -0
- data/test/lib/provision/bootstrapper_test.rb +44 -0
- data/test/test_helper.rb +25 -3
- data/test/test_methods.rb +72 -0
- data/vendor/gems/colors/README.rdoc +52 -0
- data/vendor/gems/colors/Rakefile +56 -0
- data/vendor/gems/colors/VERSION.yml +4 -0
- data/vendor/gems/colors/colors.gemspec +29 -0
- data/vendor/gems/colors/lib/colors.rb +45 -0
- data/vendor/gems/colors/test/colors_test.rb +26 -0
- data/vendor/gems/colors/test/test_helper.rb +10 -0
- data/vendor/gems/context/History.txt +10 -0
- data/vendor/gems/context/License.txt +20 -0
- data/vendor/gems/context/Manifest.txt +26 -0
- data/vendor/gems/context/PostInstall.txt +0 -0
- data/vendor/gems/context/README.rdoc +158 -0
- data/vendor/gems/context/Rakefile +4 -0
- data/vendor/gems/context/config/hoe.rb +73 -0
- data/vendor/gems/context/config/requirements.rb +15 -0
- data/vendor/gems/context/context.gemspec +44 -0
- data/vendor/gems/context/countloc.rb +65 -0
- data/vendor/gems/context/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
- data/vendor/gems/context/coverage/index.html +441 -0
- data/vendor/gems/context/coverage/lib-context-context_rb.html +669 -0
- data/vendor/gems/context/coverage/lib-context-core_ext-string_rb.html +627 -0
- data/vendor/gems/context/coverage/lib-context-lifecycle_rb.html +683 -0
- data/vendor/gems/context/coverage/lib-context-shared_behavior_rb.html +708 -0
- data/vendor/gems/context/coverage/lib-context-suite_rb.html +649 -0
- data/vendor/gems/context/coverage/lib-context-test_rb.html +637 -0
- data/vendor/gems/context/coverage/lib-context-version_rb.html +619 -0
- data/vendor/gems/context/coverage/lib-context_rb.html +623 -0
- data/vendor/gems/context/lib/context/context.rb +64 -0
- data/vendor/gems/context/lib/context/core_ext/rails_hacks.rb +10 -0
- data/vendor/gems/context/lib/context/core_ext/string.rb +17 -0
- data/vendor/gems/context/lib/context/lifecycle.rb +103 -0
- data/vendor/gems/context/lib/context/shared_behavior.rb +98 -0
- data/vendor/gems/context/lib/context/suite.rb +39 -0
- data/vendor/gems/context/lib/context/test.rb +37 -0
- data/vendor/gems/context/lib/context/version.rb +9 -0
- data/vendor/gems/context/lib/context.rb +19 -0
- data/vendor/gems/context/test/test_context.rb +57 -0
- data/vendor/gems/context/test/test_core_ext.rb +21 -0
- data/vendor/gems/context/test/test_helper.rb +2 -0
- data/vendor/gems/context/test/test_lifecycle.rb +224 -0
- data/vendor/gems/context/test/test_nested_lifecycle.rb +44 -0
- data/vendor/gems/context/test/test_shared.rb +116 -0
- data/vendor/gems/context/test/test_test.rb +23 -0
- data/vendor/gems/daemons/LICENSE +29 -0
- data/vendor/gems/daemons/README +223 -0
- data/vendor/gems/daemons/Rakefile +84 -0
- data/vendor/gems/daemons/Releases +126 -0
- data/vendor/gems/daemons/TODO +6 -0
- data/vendor/gems/daemons/examples/call/call.rb +56 -0
- data/vendor/gems/daemons/examples/call/call_monitor.rb +55 -0
- data/vendor/gems/daemons/examples/daemonize/daemonize.rb +20 -0
- data/vendor/gems/daemons/examples/run/ctrl_crash.rb +17 -0
- data/vendor/gems/daemons/examples/run/ctrl_exec.rb +16 -0
- data/vendor/gems/daemons/examples/run/ctrl_exit.rb +15 -0
- data/vendor/gems/daemons/examples/run/ctrl_keep_pid_files.rb +17 -0
- data/vendor/gems/daemons/examples/run/ctrl_monitor.rb +16 -0
- data/vendor/gems/daemons/examples/run/ctrl_multiple.rb +16 -0
- data/vendor/gems/daemons/examples/run/ctrl_normal.rb +12 -0
- data/vendor/gems/daemons/examples/run/ctrl_ontop.rb +16 -0
- data/vendor/gems/daemons/examples/run/ctrl_optionparser.rb +43 -0
- data/vendor/gems/daemons/examples/run/ctrl_proc.rb +25 -0
- data/vendor/gems/daemons/examples/run/ctrl_proc.rb.output +101 -0
- data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb +22 -0
- data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb.output +2 -0
- data/vendor/gems/daemons/examples/run/ctrl_proc_simple.rb +17 -0
- data/vendor/gems/daemons/examples/run/myserver.rb +12 -0
- data/vendor/gems/daemons/examples/run/myserver_crashing.rb +14 -0
- data/vendor/gems/daemons/examples/run/myserver_crashing.rb.output +30 -0
- data/vendor/gems/daemons/examples/run/myserver_exiting.rb +8 -0
- data/vendor/gems/daemons/lib/daemons/application.rb +372 -0
- data/vendor/gems/daemons/lib/daemons/application_group.rb +152 -0
- data/vendor/gems/daemons/lib/daemons/cmdline.rb +117 -0
- data/vendor/gems/daemons/lib/daemons/controller.rb +134 -0
- data/vendor/gems/daemons/lib/daemons/daemonize.rb +263 -0
- data/vendor/gems/daemons/lib/daemons/exceptions.rb +28 -0
- data/vendor/gems/daemons/lib/daemons/monitor.rb +127 -0
- data/vendor/gems/daemons/lib/daemons/pid.rb +101 -0
- data/vendor/gems/daemons/lib/daemons/pidfile.rb +111 -0
- data/vendor/gems/daemons/lib/daemons/pidmem.rb +10 -0
- data/vendor/gems/daemons/lib/daemons.rb +283 -0
- data/vendor/gems/daemons/setup.rb +1360 -0
- data/vendor/gems/dslify/LICENSE +20 -0
- data/vendor/gems/dslify/README.rdoc +33 -0
- data/vendor/gems/dslify/Rakefile +56 -56
- data/vendor/gems/dslify/VERSION.yml +4 -0
- data/vendor/gems/dslify/dslify.gemspec +9 -20
- data/vendor/gems/dslify/lib/dslify.rb +79 -5
- data/vendor/gems/dslify/test/dslify_test.rb +283 -0
- data/vendor/gems/dslify/test/test_helper.rb +7 -0
- data/vendor/gems/fakeweb/CHANGELOG +163 -0
- data/vendor/gems/fakeweb/LICENSE.txt +281 -0
- data/vendor/gems/fakeweb/README.rdoc +193 -0
- data/vendor/gems/fakeweb/Rakefile +76 -0
- data/vendor/gems/fakeweb/fakeweb.gemspec +21 -0
- data/vendor/gems/fakeweb/lib/fake_web/ext/net_http.rb +71 -0
- data/vendor/gems/fakeweb/lib/fake_web/registry.rb +103 -0
- data/vendor/gems/fakeweb/lib/fake_web/responder.rb +113 -0
- data/vendor/gems/fakeweb/lib/fake_web/response.rb +10 -0
- data/vendor/gems/fakeweb/lib/fake_web/stub_socket.rb +15 -0
- data/vendor/gems/fakeweb/lib/fake_web/utility.rb +22 -0
- data/vendor/gems/fakeweb/lib/fake_web.rb +172 -0
- data/vendor/gems/fakeweb/lib/fakeweb.rb +2 -0
- data/vendor/gems/fakeweb/test/fixtures/google_response_from_curl +12 -0
- data/vendor/gems/fakeweb/test/fixtures/google_response_with_transfer_encoding +17 -0
- data/vendor/gems/fakeweb/test/fixtures/google_response_without_transfer_encoding +11 -0
- data/vendor/gems/fakeweb/test/fixtures/test_example.txt +1 -0
- data/vendor/gems/fakeweb/test/fixtures/test_txt_file +3 -0
- data/vendor/gems/fakeweb/test/test_allow_net_connect.rb +85 -0
- data/vendor/gems/fakeweb/test/test_deprecations.rb +54 -0
- data/vendor/gems/fakeweb/test/test_fake_authentication.rb +92 -0
- data/vendor/gems/fakeweb/test/test_fake_web.rb +518 -0
- data/vendor/gems/fakeweb/test/test_fake_web_open_uri.rb +58 -0
- data/vendor/gems/fakeweb/test/test_helper.rb +74 -0
- data/vendor/gems/fakeweb/test/test_missing_open_uri.rb +25 -0
- data/vendor/gems/fakeweb/test/test_precedence.rb +51 -0
- data/vendor/gems/fakeweb/test/test_query_string.rb +45 -0
- data/vendor/gems/fakeweb/test/test_regexes.rb +103 -0
- data/vendor/gems/fakeweb/test/test_response_headers.rb +73 -0
- data/vendor/gems/fakeweb/test/test_trailing_slashes.rb +53 -0
- data/vendor/gems/fakeweb/test/test_utility.rb +70 -0
- data/vendor/gems/git-style-binaries/README.markdown +280 -0
- data/vendor/gems/git-style-binaries/Rakefile +64 -0
- data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
- data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
- data/vendor/gems/git-style-binaries/doc/gsb-screencast.png +0 -0
- data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +412 -0
- data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +78 -0
- data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
- data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +88 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
- data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
- data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
- data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
- data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
- data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
- data/vendor/gems/gratr/Grater.xcf +0 -0
- data/vendor/gems/gratr/README +335 -0
- data/vendor/gems/gratr/Rakefile +220 -0
- data/vendor/gems/gratr/examples/graph_self.rb +54 -0
- data/vendor/gems/gratr/examples/module_graph.jpg +0 -0
- data/vendor/gems/gratr/examples/module_graph.rb +12 -0
- data/vendor/gems/gratr/examples/self_graph.dot +117 -0
- data/vendor/gems/gratr/examples/self_graph.jpg +0 -0
- data/vendor/gems/gratr/examples/visualize.dot +58 -0
- data/vendor/gems/gratr/examples/visualize.jpg +0 -0
- data/vendor/gems/gratr/examples/visualize.rb +11 -0
- data/vendor/gems/gratr/install.rb +49 -0
- data/vendor/gems/gratr/lib/gratr/adjacency_graph.rb +230 -0
- data/vendor/gems/gratr/lib/gratr/base.rb +34 -0
- data/vendor/gems/gratr/lib/gratr/biconnected.rb +116 -0
- data/vendor/gems/gratr/lib/gratr/chinese_postman.rb +123 -0
- data/vendor/gems/gratr/lib/gratr/common.rb +73 -0
- data/vendor/gems/gratr/lib/gratr/comparability.rb +92 -0
- data/vendor/gems/gratr/lib/gratr/digraph.rb +115 -0
- data/vendor/gems/gratr/lib/gratr/digraph_distance.rb +185 -0
- data/vendor/gems/gratr/lib/gratr/dot.rb +95 -0
- data/vendor/gems/gratr/lib/gratr/edge.rb +145 -0
- data/vendor/gems/gratr/lib/gratr/graph.rb +315 -0
- data/vendor/gems/gratr/lib/gratr/graph_api.rb +82 -0
- data/vendor/gems/gratr/lib/gratr/import.rb +44 -0
- data/vendor/gems/gratr/lib/gratr/labels.rb +103 -0
- data/vendor/gems/gratr/lib/gratr/maximum_flow.rb +107 -0
- data/vendor/gems/gratr/lib/gratr/rdot.rb +332 -0
- data/vendor/gems/gratr/lib/gratr/search.rb +422 -0
- data/vendor/gems/gratr/lib/gratr/strong_components.rb +127 -0
- data/vendor/gems/gratr/lib/gratr/undirected_graph.rb +153 -0
- data/vendor/gems/gratr/lib/gratr.rb +42 -0
- data/vendor/gems/gratr/lib/priority-queue/benchmark/dijkstra.rb +171 -0
- data/vendor/gems/gratr/lib/priority-queue/compare_comments.rb +49 -0
- data/vendor/gems/gratr/lib/priority-queue/ext/priority_queue/CPriorityQueue/extconf.rb +2 -0
- data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/c_priority_queue.rb +1 -0
- data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/poor_priority_queue.rb +46 -0
- data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/ruby_priority_queue.rb +525 -0
- data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue.rb +14 -0
- data/vendor/gems/gratr/lib/priority-queue/setup.rb +1551 -0
- data/vendor/gems/gratr/lib/priority-queue/test/priority_queue_test.rb +371 -0
- data/vendor/gems/gratr/tests/TestBiconnected.rb +53 -0
- data/vendor/gems/gratr/tests/TestChinesePostman.rb +53 -0
- data/vendor/gems/gratr/tests/TestComplement.rb +54 -0
- data/vendor/gems/gratr/tests/TestDigraph.rb +333 -0
- data/vendor/gems/gratr/tests/TestDigraphDistance.rb +138 -0
- data/vendor/gems/gratr/tests/TestDot.rb +75 -0
- data/vendor/gems/gratr/tests/TestEdge.rb +171 -0
- data/vendor/gems/gratr/tests/TestInspection.rb +57 -0
- data/vendor/gems/gratr/tests/TestMultiEdge.rb +57 -0
- data/vendor/gems/gratr/tests/TestNeighborhood.rb +64 -0
- data/vendor/gems/gratr/tests/TestProperties.rb +160 -0
- data/vendor/gems/gratr/tests/TestSearch.rb +277 -0
- data/vendor/gems/gratr/tests/TestStrongComponents.rb +85 -0
- data/vendor/gems/gratr/tests/TestTriagulated.rb +137 -0
- data/vendor/gems/gratr/tests/TestUndirectedGraph.rb +219 -0
- data/vendor/gems/json/CHANGES +93 -0
- data/vendor/gems/json/GPL +340 -0
- data/vendor/gems/json/README +78 -0
- data/vendor/gems/json/RUBY +58 -0
- data/vendor/gems/json/Rakefile +309 -0
- data/vendor/gems/json/TODO +1 -0
- data/vendor/gems/json/VERSION +1 -0
- data/vendor/gems/json/benchmarks/benchmark.txt +133 -0
- data/vendor/gems/json/benchmarks/benchmark_generator.rb +48 -0
- data/vendor/gems/json/benchmarks/benchmark_parser.rb +26 -0
- data/vendor/gems/json/benchmarks/benchmark_rails.rb +26 -0
- data/vendor/gems/json/bin/edit_json.rb +10 -0
- data/vendor/gems/json/bin/prettify_json.rb +76 -0
- data/vendor/gems/json/data/example.json +1 -0
- data/vendor/gems/json/data/index.html +38 -0
- data/vendor/gems/json/data/prototype.js +4184 -0
- data/vendor/gems/json/ext/json/ext/generator/extconf.rb +9 -0
- data/vendor/gems/json/ext/json/ext/generator/generator.c +885 -0
- data/vendor/gems/json/ext/json/ext/generator/unicode.c +182 -0
- data/vendor/gems/json/ext/json/ext/generator/unicode.h +53 -0
- data/vendor/gems/json/ext/json/ext/parser/Makefile +181 -0
- data/vendor/gems/json/ext/json/ext/parser/extconf.rb +9 -0
- data/vendor/gems/json/ext/json/ext/parser/gem_make.out +14 -0
- data/vendor/gems/json/ext/json/ext/parser/parser.c +1769 -0
- data/vendor/gems/json/ext/json/ext/parser/parser.rl +637 -0
- data/vendor/gems/json/ext/json/ext/parser/unicode.c +154 -0
- data/vendor/gems/json/ext/json/ext/parser/unicode.h +58 -0
- data/vendor/gems/json/ext/json/ext/parser/unicode.o +0 -0
- data/vendor/gems/json/install.rb +26 -0
- data/vendor/gems/json/lib/json/Array.xpm +21 -0
- data/vendor/gems/json/lib/json/FalseClass.xpm +21 -0
- data/vendor/gems/json/lib/json/Hash.xpm +21 -0
- data/vendor/gems/json/lib/json/Key.xpm +73 -0
- data/vendor/gems/json/lib/json/NilClass.xpm +21 -0
- data/vendor/gems/json/lib/json/Numeric.xpm +28 -0
- data/vendor/gems/json/lib/json/String.xpm +96 -0
- data/vendor/gems/json/lib/json/TrueClass.xpm +21 -0
- data/vendor/gems/json/lib/json/add/core.rb +135 -0
- data/vendor/gems/json/lib/json/add/rails.rb +58 -0
- data/vendor/gems/json/lib/json/common.rb +354 -0
- data/vendor/gems/json/lib/json/editor.rb +1362 -0
- data/vendor/gems/json/lib/json/ext.rb +13 -0
- data/vendor/gems/json/lib/json/json.xpm +1499 -0
- data/vendor/gems/json/lib/json/pure/generator.rb +394 -0
- data/vendor/gems/json/lib/json/pure/parser.rb +259 -0
- data/vendor/gems/json/lib/json/pure.rb +75 -0
- data/vendor/gems/json/lib/json/version.rb +9 -0
- data/vendor/gems/json/lib/json.rb +235 -0
- data/vendor/gems/json/tests/fixtures/fail1.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail10.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail11.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail12.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail13.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail14.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail18.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail19.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail2.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail20.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail21.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail22.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail23.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail24.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail25.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail27.json +2 -0
- data/vendor/gems/json/tests/fixtures/fail28.json +2 -0
- data/vendor/gems/json/tests/fixtures/fail3.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail4.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail5.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail6.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail7.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail8.json +1 -0
- data/vendor/gems/json/tests/fixtures/fail9.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass1.json +56 -0
- data/vendor/gems/json/tests/fixtures/pass15.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass16.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass17.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass2.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass26.json +1 -0
- data/vendor/gems/json/tests/fixtures/pass3.json +6 -0
- data/vendor/gems/json/tests/runner.rb +25 -0
- data/vendor/gems/json/tests/test_json.rb +293 -0
- data/vendor/gems/json/tests/test_json_addition.rb +161 -0
- data/vendor/gems/json/tests/test_json_fixtures.rb +30 -0
- data/vendor/gems/json/tests/test_json_generate.rb +100 -0
- data/vendor/gems/json/tests/test_json_rails.rb +118 -0
- data/vendor/gems/json/tests/test_json_unicode.rb +61 -0
- data/vendor/gems/json/tools/fuzz.rb +140 -0
- data/vendor/gems/json/tools/server.rb +62 -0
- data/vendor/gems/parenting/Rakefile +17 -1
- data/vendor/gems/parenting/lib/parenting/parenting.rb +24 -8
- data/vendor/gems/right_aws/History.txt +246 -0
- data/vendor/gems/right_aws/Manifest.txt +34 -0
- data/vendor/gems/right_aws/README.txt +166 -0
- data/vendor/gems/right_aws/Rakefile +112 -0
- data/vendor/gems/right_aws/lib/acf/right_acf_interface.rb +379 -0
- data/vendor/gems/right_aws/lib/awsbase/benchmark_fix.rb +39 -0
- data/vendor/gems/right_aws/lib/awsbase/right_awsbase.rb +797 -0
- data/vendor/gems/right_aws/lib/awsbase/support.rb +111 -0
- data/vendor/gems/right_aws/lib/ec2/right_ec2.rb +1737 -0
- data/vendor/gems/right_aws/lib/right_aws.rb +69 -0
- data/vendor/gems/right_aws/lib/s3/right_s3.rb +1094 -0
- data/vendor/gems/right_aws/lib/s3/right_s3_interface.rb +1175 -0
- data/vendor/gems/right_aws/lib/sdb/active_sdb.rb +930 -0
- data/vendor/gems/right_aws/lib/sdb/right_sdb_interface.rb +698 -0
- data/vendor/gems/right_aws/lib/sqs/right_sqs.rb +388 -0
- data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2.rb +286 -0
- data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2_interface.rb +444 -0
- data/vendor/gems/right_aws/lib/sqs/right_sqs_interface.rb +596 -0
- data/vendor/gems/right_aws/test/acf/test_helper.rb +2 -0
- data/vendor/gems/right_aws/test/acf/test_right_acf.rb +146 -0
- data/vendor/gems/right_aws/test/ec2/test_helper.rb +2 -0
- data/vendor/gems/right_aws/test/ec2/test_right_ec2.rb +108 -0
- data/vendor/gems/right_aws/test/http_connection.rb +87 -0
- data/vendor/gems/right_aws/test/s3/test_helper.rb +2 -0
- data/vendor/gems/right_aws/test/s3/test_right_s3.rb +419 -0
- data/vendor/gems/right_aws/test/s3/test_right_s3_stubbed.rb +95 -0
- data/vendor/gems/right_aws/test/sdb/test_active_sdb.rb +299 -0
- data/vendor/gems/right_aws/test/sdb/test_helper.rb +3 -0
- data/vendor/gems/right_aws/test/sdb/test_right_sdb.rb +247 -0
- data/vendor/gems/right_aws/test/sqs/test_helper.rb +2 -0
- data/vendor/gems/right_aws/test/sqs/test_right_sqs.rb +291 -0
- data/vendor/gems/right_aws/test/sqs/test_right_sqs_gen2.rb +209 -0
- data/vendor/gems/right_aws/test/test_credentials.rb +37 -0
- data/vendor/gems/right_aws/test/ts_right_aws.rb +14 -0
- data/vendor/gems/right_http_connection/History.txt +59 -0
- data/vendor/gems/right_http_connection/Manifest.txt +7 -0
- data/vendor/gems/right_http_connection/README.txt +54 -0
- data/vendor/gems/right_http_connection/Rakefile +103 -0
- data/vendor/gems/right_http_connection/lib/net_fix.rb +160 -0
- data/vendor/gems/right_http_connection/lib/right_http_connection.rb +442 -0
- data/vendor/gems/right_http_connection/right_http_connection.gemspec +31 -0
- data/vendor/gems/right_http_connection/setup.rb +1585 -0
- data/vendor/gems/shoulda/CONTRIBUTION_GUIDELINES.rdoc +10 -0
- data/vendor/gems/shoulda/MIT-LICENSE +22 -0
- data/vendor/gems/shoulda/README.rdoc +171 -0
- data/vendor/gems/shoulda/Rakefile +72 -0
- data/vendor/gems/shoulda/bin/convert_to_should_syntax +42 -0
- data/vendor/gems/shoulda/init.rb +1 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/macros.rb +240 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/assign_to_matcher.rb +109 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/filter_param_matcher.rb +57 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/render_with_layout_matcher.rb +81 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_content_type_matcher.rb +74 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_matcher.rb +81 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/route_matcher.rb +93 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_session_matcher.rb +87 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_the_flash_matcher.rb +85 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers.rb +37 -0
- data/vendor/gems/shoulda/lib/shoulda/action_controller.rb +26 -0
- data/vendor/gems/shoulda/lib/shoulda/action_mailer/assertions.rb +38 -0
- data/vendor/gems/shoulda/lib/shoulda/action_mailer.rb +10 -0
- data/vendor/gems/shoulda/lib/shoulda/action_view/macros.rb +61 -0
- data/vendor/gems/shoulda/lib/shoulda/action_view.rb +10 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/assertions.rb +69 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/helpers.rb +27 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/macros.rb +512 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_mass_assignment_of_matcher.rb +83 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_value_matcher.rb +102 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/association_matcher.rb +226 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_inclusion_of_matcher.rb +87 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_length_of_matcher.rb +141 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_column_matcher.rb +169 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_index_matcher.rb +112 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_named_scope_matcher.rb +128 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_readonly_attribute_matcher.rb +59 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_acceptance_of_matcher.rb +41 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_format_of_matcher.rb +67 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_numericality_of_matcher.rb +39 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_presence_of_matcher.rb +60 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb +148 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validation_matcher.rb +57 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record/matchers.rb +43 -0
- data/vendor/gems/shoulda/lib/shoulda/active_record.rb +16 -0
- data/vendor/gems/shoulda/lib/shoulda/assertions.rb +71 -0
- data/vendor/gems/shoulda/lib/shoulda/autoload_macros.rb +46 -0
- data/vendor/gems/shoulda/lib/shoulda/context.rb +402 -0
- data/vendor/gems/shoulda/lib/shoulda/helpers.rb +8 -0
- data/vendor/gems/shoulda/lib/shoulda/macros.rb +133 -0
- data/vendor/gems/shoulda/lib/shoulda/private_helpers.rb +13 -0
- data/vendor/gems/shoulda/lib/shoulda/proc_extensions.rb +14 -0
- data/vendor/gems/shoulda/lib/shoulda/rails.rb +13 -0
- data/vendor/gems/shoulda/lib/shoulda/rspec.rb +11 -0
- data/vendor/gems/shoulda/lib/shoulda/tasks/list_tests.rake +29 -0
- data/vendor/gems/shoulda/lib/shoulda/tasks/yaml_to_shoulda.rake +28 -0
- data/vendor/gems/shoulda/lib/shoulda/tasks.rb +3 -0
- data/vendor/gems/shoulda/lib/shoulda/test_unit.rb +22 -0
- data/vendor/gems/shoulda/lib/shoulda.rb +9 -0
- data/vendor/gems/shoulda/rails/init.rb +7 -0
- data/vendor/gems/shoulda/shoulda.gemspec +31 -0
- data/vendor/gems/shoulda/tasks/shoulda.rake +1 -0
- data/vendor/gems/shoulda/test/README +36 -0
- data/vendor/gems/shoulda/test/fail_macros.rb +39 -0
- data/vendor/gems/shoulda/test/fixtures/addresses.yml +3 -0
- data/vendor/gems/shoulda/test/fixtures/friendships.yml +0 -0
- data/vendor/gems/shoulda/test/fixtures/posts.yml +5 -0
- data/vendor/gems/shoulda/test/fixtures/products.yml +0 -0
- data/vendor/gems/shoulda/test/fixtures/taggings.yml +0 -0
- data/vendor/gems/shoulda/test/fixtures/tags.yml +9 -0
- data/vendor/gems/shoulda/test/fixtures/users.yml +6 -0
- data/vendor/gems/shoulda/test/functional/posts_controller_test.rb +121 -0
- data/vendor/gems/shoulda/test/functional/users_controller_test.rb +19 -0
- data/vendor/gems/shoulda/test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb +68 -0
- data/vendor/gems/shoulda/test/matchers/active_record/allow_value_matcher_test.rb +64 -0
- data/vendor/gems/shoulda/test/matchers/active_record/association_matcher_test.rb +263 -0
- data/vendor/gems/shoulda/test/matchers/active_record/ensure_inclusion_of_matcher_test.rb +80 -0
- data/vendor/gems/shoulda/test/matchers/active_record/ensure_length_of_matcher_test.rb +158 -0
- data/vendor/gems/shoulda/test/matchers/active_record/have_db_column_matcher_test.rb +169 -0
- data/vendor/gems/shoulda/test/matchers/active_record/have_db_index_matcher_test.rb +91 -0
- data/vendor/gems/shoulda/test/matchers/active_record/have_named_scope_matcher_test.rb +65 -0
- data/vendor/gems/shoulda/test/matchers/active_record/have_readonly_attributes_matcher_test.rb +29 -0
- data/vendor/gems/shoulda/test/matchers/active_record/validate_acceptance_of_matcher_test.rb +44 -0
- data/vendor/gems/shoulda/test/matchers/active_record/validate_format_of_matcher_test.rb +39 -0
- data/vendor/gems/shoulda/test/matchers/active_record/validate_numericality_of_matcher_test.rb +52 -0
- data/vendor/gems/shoulda/test/matchers/active_record/validate_presence_of_matcher_test.rb +86 -0
- data/vendor/gems/shoulda/test/matchers/active_record/validate_uniqueness_of_matcher_test.rb +147 -0
- data/vendor/gems/shoulda/test/matchers/controller/assign_to_matcher_test.rb +35 -0
- data/vendor/gems/shoulda/test/matchers/controller/filter_param_matcher_test.rb +32 -0
- data/vendor/gems/shoulda/test/matchers/controller/render_with_layout_matcher_test.rb +33 -0
- data/vendor/gems/shoulda/test/matchers/controller/respond_with_content_type_matcher_test.rb +32 -0
- data/vendor/gems/shoulda/test/matchers/controller/respond_with_matcher_test.rb +106 -0
- data/vendor/gems/shoulda/test/matchers/controller/route_matcher_test.rb +58 -0
- data/vendor/gems/shoulda/test/matchers/controller/set_session_matcher_test.rb +38 -0
- data/vendor/gems/shoulda/test/matchers/controller/set_the_flash_matcher.rb +41 -0
- data/vendor/gems/shoulda/test/model_builder.rb +106 -0
- data/vendor/gems/shoulda/test/other/autoload_macro_test.rb +18 -0
- data/vendor/gems/shoulda/test/other/context_test.rb +189 -0
- data/vendor/gems/shoulda/test/other/convert_to_should_syntax_test.rb +63 -0
- data/vendor/gems/shoulda/test/other/helpers_test.rb +340 -0
- data/vendor/gems/shoulda/test/other/private_helpers_test.rb +32 -0
- data/vendor/gems/shoulda/test/other/should_test.rb +271 -0
- data/vendor/gems/shoulda/test/rails_root/app/controllers/application_controller.rb +25 -0
- data/vendor/gems/shoulda/test/rails_root/app/controllers/posts_controller.rb +87 -0
- data/vendor/gems/shoulda/test/rails_root/app/controllers/users_controller.rb +84 -0
- data/vendor/gems/shoulda/test/rails_root/app/helpers/application_helper.rb +3 -0
- data/vendor/gems/shoulda/test/rails_root/app/helpers/posts_helper.rb +2 -0
- data/vendor/gems/shoulda/test/rails_root/app/helpers/users_helper.rb +2 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/address.rb +7 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/flea.rb +3 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/friendship.rb +4 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/pets/cat.rb +7 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/pets/dog.rb +10 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/post.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/product.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/profile.rb +2 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/registration.rb +2 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/tag.rb +8 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/tagging.rb +4 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/treat.rb +3 -0
- data/vendor/gems/shoulda/test/rails_root/app/models/user.rb +32 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/layouts/posts.rhtml +19 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/layouts/users.rhtml +17 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/layouts/wide.html.erb +1 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/posts/edit.rhtml +27 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/posts/index.rhtml +25 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/posts/new.rhtml +26 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/posts/show.rhtml +18 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/users/edit.rhtml +22 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/users/index.rhtml +22 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/users/new.rhtml +21 -0
- data/vendor/gems/shoulda/test/rails_root/app/views/users/show.rhtml +13 -0
- data/vendor/gems/shoulda/test/rails_root/config/boot.rb +110 -0
- data/vendor/gems/shoulda/test/rails_root/config/database.yml +4 -0
- data/vendor/gems/shoulda/test/rails_root/config/environment.rb +18 -0
- data/vendor/gems/shoulda/test/rails_root/config/environments/test.rb +0 -0
- data/vendor/gems/shoulda/test/rails_root/config/initializers/new_rails_defaults.rb +15 -0
- data/vendor/gems/shoulda/test/rails_root/config/initializers/shoulda.rb +8 -0
- data/vendor/gems/shoulda/test/rails_root/config/routes.rb +6 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/001_create_users.rb +19 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/002_create_posts.rb +13 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/003_create_taggings.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/004_create_tags.rb +11 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/005_create_dogs.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/006_create_addresses.rb +14 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/007_create_fleas.rb +11 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/008_create_dogs_fleas.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/009_create_products.rb +17 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/010_create_friendships.rb +14 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/011_create_treats.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203502_create_profiles.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203536_create_registrations.rb +14 -0
- data/vendor/gems/shoulda/test/rails_root/db/migrate/20090513104502_create_cats.rb +12 -0
- data/vendor/gems/shoulda/test/rails_root/db/schema.rb +0 -0
- data/vendor/gems/shoulda/test/rails_root/public/404.html +30 -0
- data/vendor/gems/shoulda/test/rails_root/public/422.html +30 -0
- data/vendor/gems/shoulda/test/rails_root/public/500.html +30 -0
- data/vendor/gems/shoulda/test/rails_root/script/console +3 -0
- data/vendor/gems/shoulda/test/rails_root/script/generate +3 -0
- data/vendor/gems/shoulda/test/rails_root/test/shoulda_macros/custom_macro.rb +6 -0
- data/vendor/gems/shoulda/test/rails_root/vendor/gems/gem_with_macro-0.0.1/shoulda_macros/gem_macro.rb +6 -0
- data/vendor/gems/shoulda/test/rails_root/vendor/plugins/plugin_with_macro/shoulda_macros/plugin_macro.rb +6 -0
- data/vendor/gems/shoulda/test/rspec_test.rb +207 -0
- data/vendor/gems/shoulda/test/test_helper.rb +28 -0
- data/vendor/gems/shoulda/test/unit/address_test.rb +10 -0
- data/vendor/gems/shoulda/test/unit/cat_test.rb +7 -0
- data/vendor/gems/shoulda/test/unit/dog_test.rb +9 -0
- data/vendor/gems/shoulda/test/unit/flea_test.rb +6 -0
- data/vendor/gems/shoulda/test/unit/friendship_test.rb +6 -0
- data/vendor/gems/shoulda/test/unit/post_test.rb +19 -0
- data/vendor/gems/shoulda/test/unit/product_test.rb +23 -0
- data/vendor/gems/shoulda/test/unit/tag_test.rb +15 -0
- data/vendor/gems/shoulda/test/unit/tagging_test.rb +6 -0
- data/vendor/gems/shoulda/test/unit/user_test.rb +80 -0
- data/vendor/gems/thrift/CHANGELOG +1 -0
- data/vendor/gems/thrift/Makefile.am +47 -0
- data/vendor/gems/thrift/Manifest +81 -0
- data/vendor/gems/thrift/README +43 -0
- data/vendor/gems/thrift/Rakefile +104 -0
- data/vendor/gems/thrift/benchmark/Benchmark.thrift +24 -0
- data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
- data/vendor/gems/thrift/benchmark/client.rb +74 -0
- data/vendor/gems/thrift/benchmark/server.rb +82 -0
- data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
- data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
- data/vendor/gems/thrift/ext/binary_protocol_accelerated.h +20 -0
- data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
- data/vendor/gems/thrift/ext/compact_protocol.h +20 -0
- data/vendor/gems/thrift/ext/constants.h +95 -0
- data/vendor/gems/thrift/ext/extconf.rb +26 -0
- data/vendor/gems/thrift/ext/macros.h +41 -0
- data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
- data/vendor/gems/thrift/ext/memory_buffer.h +20 -0
- data/vendor/gems/thrift/ext/protocol.c +185 -0
- data/vendor/gems/thrift/ext/protocol.h +20 -0
- data/vendor/gems/thrift/ext/struct.c +606 -0
- data/vendor/gems/thrift/ext/struct.h +67 -0
- data/vendor/gems/thrift/ext/thrift_native.c +194 -0
- data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
- data/vendor/gems/thrift/lib/thrift/core_ext/fixnum.rb +29 -0
- data/vendor/gems/thrift/lib/thrift/core_ext.rb +23 -0
- data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
- data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
- data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
- data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
- data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol_accelerated.rb +35 -0
- data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
- data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
- data/vendor/gems/thrift/lib/thrift/serializer/serializer.rb +34 -0
- data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
- data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
- data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
- data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
- data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
- data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
- data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
- data/vendor/gems/thrift/lib/thrift/thrift_native.rb +24 -0
- data/vendor/gems/thrift/lib/thrift/transport/base_server_transport.rb +37 -0
- data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
- data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
- data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
- data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
- data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
- data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
- data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
- data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
- data/vendor/gems/thrift/lib/thrift/transport/unix_server_socket.rb +60 -0
- data/vendor/gems/thrift/lib/thrift/transport/unix_socket.rb +40 -0
- data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
- data/vendor/gems/thrift/lib/thrift.rb +59 -0
- data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
- data/vendor/gems/thrift/script/read_struct.rb +43 -0
- data/vendor/gems/thrift/script/write_struct.rb +30 -0
- data/vendor/gems/thrift/setup.rb +1585 -0
- data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
- data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
- data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
- data/vendor/gems/thrift/spec/binary_protocol_accelerated_spec.rb +41 -0
- data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
- data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
- data/vendor/gems/thrift/spec/client_spec.rb +100 -0
- data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
- data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
- data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
- data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
- data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
- data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
- data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
- data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
- data/vendor/gems/thrift/spec/server_spec.rb +160 -0
- data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
- data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
- data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
- data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
- data/vendor/gems/thrift/spec/types_spec.rb +116 -0
- data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
- data/vendor/gems/trollop/FAQ.txt +84 -0
- data/vendor/gems/trollop/History.txt +101 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +739 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
- data/vendor/gems/trollop/www/index.html +172 -0
- metadata +901 -433
- data/History.txt +0 -38
- data/PostInstall.txt +0 -19
- data/README.txt +0 -66
- data/bin/cloud-describe +0 -28
- data/bin/cloud-handle-load +0 -27
- data/bin/cloud-provision +0 -30
- data/bin/cloud-rsync +0 -28
- data/bin/cloud-setup-dev +0 -25
- data/bin/cloud-spec +0 -40
- data/bin/server-butterfly +0 -25
- data/bin/server-cloud-elections +0 -37
- data/bin/server-ensure-provisioning +0 -33
- data/bin/server-fire-cmd +0 -14
- data/bin/server-get-load +0 -15
- data/bin/server-list-active +0 -31
- data/bin/server-manage-election +0 -67
- data/bin/server-monitor.ru +0 -42
- data/bin/server-query-agent +0 -15
- data/bin/server-rerun +0 -23
- data/bin/server-send-command +0 -18
- data/bin/server-show-stats +0 -17
- data/bin/server-write-new-nodes +0 -26
- data/examples/fairchild.rb +0 -28
- data/examples/fairchild_chef.rb +0 -19
- data/examples/maize.rb +0 -37
- data/examples/paparazzi.conf.erb +0 -21
- data/examples/plugin_without_plugin_directory.rb +0 -12
- data/examples/poolparty.rb +0 -12
- data/generators/poolspec/USAGE +0 -5
- data/generators/poolspec/poolspec_generator.rb +0 -58
- data/generators/poolspec/templates/pool_spec_template.erb +0 -9
- data/lib/poolparty/aska.rb +0 -141
- data/lib/poolparty/base_packages/haproxy.rb +0 -59
- data/lib/poolparty/base_packages/heartbeat.rb +0 -16
- data/lib/poolparty/base_packages/poolparty.rb +0 -14
- data/lib/poolparty/base_packages/ruby.rb +0 -42
- data/lib/poolparty/base_packages/runit.rb +0 -21
- data/lib/poolparty/core/array.rb +0 -48
- data/lib/poolparty/core/class.rb +0 -26
- data/lib/poolparty/core/exception.rb +0 -10
- data/lib/poolparty/core/float.rb +0 -13
- data/lib/poolparty/core/hash.rb +0 -78
- data/lib/poolparty/core/kernel.rb +0 -66
- data/lib/poolparty/core/metaid.rb +0 -15
- data/lib/poolparty/core/module.rb +0 -40
- data/lib/poolparty/core/my_open_struct.rb +0 -18
- data/lib/poolparty/core/nil.rb +0 -8
- data/lib/poolparty/core/object.rb +0 -103
- data/lib/poolparty/core/ordered_hash.rb +0 -99
- data/lib/poolparty/core/proc.rb +0 -7
- data/lib/poolparty/core/string.rb +0 -191
- data/lib/poolparty/core/symbol.rb +0 -27
- data/lib/poolparty/core/time.rb +0 -56
- data/lib/poolparty/dependencies.rb +0 -49
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +0 -237
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +0 -42
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +0 -29
- data/lib/poolparty/dependency_resolver/puppet.rb +0 -75
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +0 -188
- data/lib/poolparty/exceptions/CloudNotFoundException.rb +0 -7
- data/lib/poolparty/exceptions/LoadRulesException.rb +0 -7
- data/lib/poolparty/exceptions/MasterException.rb +0 -10
- data/lib/poolparty/exceptions/ProvisionerException.rb +0 -5
- data/lib/poolparty/exceptions/RemoteException.rb +0 -12
- data/lib/poolparty/exceptions/ResourceException.rb +0 -7
- data/lib/poolparty/exceptions/RuntimeException.rb +0 -7
- data/lib/poolparty/exceptions/SpecException.rb +0 -7
- data/lib/poolparty/exceptions/TemplateNotFound.rb +0 -7
- data/lib/poolparty/exceptions/UnacceptableCommand.rb +0 -5
- data/lib/poolparty/exceptions/dependency_resolver_exception.rb +0 -5
- data/lib/poolparty/exceptions/package_exception.rb +0 -7
- data/lib/poolparty/extra/deployments.rb +0 -31
- data/lib/poolparty/helpers/binary.rb +0 -70
- data/lib/poolparty/helpers/console.rb +0 -48
- data/lib/poolparty/helpers/display.rb +0 -30
- data/lib/poolparty/helpers/hash_printer.rb +0 -44
- data/lib/poolparty/helpers/loading.rb +0 -4
- data/lib/poolparty/helpers/nice_printer.rb +0 -36
- data/lib/poolparty/helpers/optioner.rb +0 -156
- data/lib/poolparty/helpers/ruberl.rb +0 -33
- data/lib/poolparty/lite.rb +0 -30
- data/lib/poolparty/modules/callbacks.rb +0 -44
- data/lib/poolparty/modules/cloud_dsl.rb +0 -44
- data/lib/poolparty/modules/cloud_resourcer.rb +0 -126
- data/lib/poolparty/modules/daemonizable.rb +0 -141
- data/lib/poolparty/modules/definable_resource.rb +0 -54
- data/lib/poolparty/modules/file_writer.rb +0 -95
- data/lib/poolparty/modules/output.rb +0 -13
- data/lib/poolparty/modules/pinger.rb +0 -28
- data/lib/poolparty/modules/pretty_printer.rb +0 -40
- data/lib/poolparty/modules/resourcing_dsl.rb +0 -78
- data/lib/poolparty/modules/s3_string.rb +0 -32
- data/lib/poolparty/modules/safe_instance.rb +0 -31
- data/lib/poolparty/modules/searchable_paths.rb +0 -91
- data/lib/poolparty/modules/thread_pool.rb +0 -107
- data/lib/poolparty/modules/user_helpers.rb +0 -20
- data/lib/poolparty/monitors/base_monitor.rb +0 -32
- data/lib/poolparty/monitors/monitor_rack.rb +0 -123
- data/lib/poolparty/monitors/monitors/favicon_monitor.rb +0 -12
- data/lib/poolparty/monitors/monitors/load_monitor.rb +0 -9
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +0 -50
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +0 -77
- data/lib/poolparty/monitors/monitors/stats_monitor.rb +0 -187
- data/lib/poolparty/monitors/monitors/time_monitor.rb +0 -15
- data/lib/poolparty/net/init.rb +0 -10
- data/lib/poolparty/net/remote_bases.rb +0 -20
- data/lib/poolparty/net/remote_instance.rb +0 -82
- data/lib/poolparty/net/remoter/cloud_control.rb +0 -24
- data/lib/poolparty/net/remoter/connections.rb +0 -172
- data/lib/poolparty/net/remoter/interactive.rb +0 -45
- data/lib/poolparty/net/remoter_base.rb +0 -174
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +0 -245
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +0 -53
- data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +0 -64
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +0 -12
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +0 -33
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +0 -117
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +0 -158
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +0 -71
- data/lib/poolparty/plugins/apache2/apache.rb +0 -340
- data/lib/poolparty/plugins/bind.rb +0 -11
- data/lib/poolparty/plugins/chef.rb +0 -173
- data/lib/poolparty/plugins/chef_deploy.rb +0 -58
- data/lib/poolparty/plugins/deploy_directory.rb +0 -49
- data/lib/poolparty/plugins/gem_package.rb +0 -61
- data/lib/poolparty/plugins/line_in_file.rb +0 -30
- data/lib/poolparty/plugins/nanite.rb +0 -41
- data/lib/poolparty/plugins/rails_deploy.rb +0 -76
- data/lib/poolparty/plugins/runit.rb +0 -96
- data/lib/poolparty/plugins/svn.rb +0 -65
- data/lib/poolparty/poolparty/cloud.rb +0 -236
- data/lib/poolparty/poolparty/default.rb +0 -159
- data/lib/poolparty/poolparty/key.rb +0 -78
- data/lib/poolparty/poolparty/loggable.rb +0 -28
- data/lib/poolparty/poolparty/neighborhoods.rb +0 -102
- data/lib/poolparty/poolparty/plugin.rb +0 -71
- data/lib/poolparty/poolparty/plugin_model.rb +0 -45
- data/lib/poolparty/poolparty/pool.rb +0 -80
- data/lib/poolparty/poolparty/poolparty_base_class.rb +0 -190
- data/lib/poolparty/poolparty/resource.rb +0 -213
- data/lib/poolparty/poolparty/script.rb +0 -58
- data/lib/poolparty/poolparty/service.rb +0 -44
- data/lib/poolparty/poolparty/template.rb +0 -27
- data/lib/poolparty/provision/boot_strapper.rb +0 -164
- data/lib/poolparty/provision/configurations/chef.rb +0 -26
- data/lib/poolparty/provision/configurations/puppet.rb +0 -28
- data/lib/poolparty/provision/dr_configure.rb +0 -142
- data/lib/poolparty/resources/host.rb +0 -37
- data/lib/poolparty/resources/remote_file.rb +0 -52
- data/lib/poolparty/resources/sshkey.rb +0 -49
- data/lib/poolparty/resources/symlink.rb +0 -43
- data/lib/poolparty/resources.rb +0 -42
- data/lib/poolparty/schema.rb +0 -79
- data/lib/poolparty/templates/apache2/apache2.conf +0 -14
- data/lib/poolparty/templates/apache2/base.conf.erb +0 -168
- data/lib/poolparty/templates/apache2/debian.conf.erb +0 -675
- data/lib/poolparty/templates/apache2/default-site.conf.erb +0 -41
- data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +0 -101
- data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +0 -42
- data/lib/poolparty/templates/apache2/mime-extras.conf.erb +0 -211
- data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +0 -20
- data/lib/poolparty/templates/apache2/mpm-worker.erb +0 -20
- data/lib/poolparty/templates/apache2/passenger.conf.erb +0 -20
- data/lib/poolparty/templates/apache2/php.ini.erb +0 -1253
- data/lib/poolparty/templates/apache2/server-status.erb +0 -19
- data/lib/poolparty/templates/authkeys +0 -2
- data/lib/poolparty/templates/cib.xml +0 -54
- data/lib/poolparty/templates/erlang_cookie_maker +0 -6
- data/lib/poolparty/templates/gem +0 -27
- data/lib/poolparty/templates/gemrc_template +0 -11
- data/lib/poolparty/templates/ha.cf +0 -17
- data/lib/poolparty/templates/haproxy.conf +0 -38
- data/lib/poolparty/templates/haresources +0 -3
- data/lib/poolparty/templates/logd.cf +0 -42
- data/lib/poolparty/templates/messenger/client/log-run.erb +0 -2
- data/lib/poolparty/templates/messenger/client/run.erb +0 -4
- data/lib/poolparty/templates/messenger/master/log-run.erb +0 -2
- data/lib/poolparty/templates/messenger/master/run.erb +0 -4
- data/lib/poolparty/templates/messenger/node/log-run.erb +0 -2
- data/lib/poolparty/templates/messenger/node/run.erb +0 -4
- data/lib/poolparty/templates/monitor.ru +0 -16
- data/lib/poolparty/templates/namespaceauth.conf +0 -19
- data/lib/poolparty/templates/php.ini.erb +0 -1253
- data/lib/poolparty/templates/poolparty.monitor +0 -14
- data/lib/poolparty/templates/puppet/add_puppet_to_hosts +0 -6
- data/lib/poolparty/templates/puppet/puppet.conf +0 -2
- data/lib/poolparty/templates/puppet/puppetrunner +0 -14
- data/lib/poolparty/templates/puppet/site.pp +0 -4
- data/lib/poolparty/templates/puppetrunner +0 -14
- data/lib/poolparty/templates/yaws.conf +0 -19
- data/lib/poolparty/verification/verifier_base.rb +0 -17
- data/lib/poolparty/verification/verifiers/http_match.rb +0 -43
- data/lib/poolparty/verification/verifiers/http_status.rb +0 -59
- data/lib/poolparty/verification/verifiers/ping.rb +0 -34
- data/lib/poolparty/verification/verify.rb +0 -76
- data/lib/poolpartycl.rb +0 -72
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/spec/bin/bin_spec_helper.rb +0 -7
- data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -13
- data/spec/bin/server-list-active_spec.rb +0 -24
- data/spec/poolparty/aska/aska_spec.rb +0 -117
- data/spec/poolparty/base_packages/haproxy_spec.rb +0 -7
- data/spec/poolparty/base_packages/heartbeat_spec.rb +0 -7
- data/spec/poolparty/bin/console_spec.rb +0 -83
- data/spec/poolparty/core/array_spec.rb +0 -48
- data/spec/poolparty/core/float.rb +0 -13
- data/spec/poolparty/core/hash_spec.rb +0 -83
- data/spec/poolparty/core/kernel_spec.rb +0 -24
- data/spec/poolparty/core/module_spec.rb +0 -15
- data/spec/poolparty/core/object_spec.rb +0 -68
- data/spec/poolparty/core/ordered_hash_spec.rb +0 -48
- data/spec/poolparty/core/string_spec.rb +0 -145
- data/spec/poolparty/core/time_spec.rb +0 -49
- data/spec/poolparty/dependencies_spec.rb +0 -11
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -107
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +0 -122
- data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +0 -16
- data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +0 -121
- data/spec/poolparty/extra/deployments_spec.rb +0 -68
- data/spec/poolparty/fixtures/clouds.json +0 -128
- data/spec/poolparty/fixtures/test_template.erb +0 -1
- data/spec/poolparty/helpers/binary_spec.rb +0 -26
- data/spec/poolparty/helpers/display_spec.rb +0 -13
- data/spec/poolparty/helpers/hash_printer_spec.rb +0 -34
- data/spec/poolparty/helpers/optioner_spec.rb +0 -50
- data/spec/poolparty/id_rsa +0 -27
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +0 -67
- data/spec/poolparty/modules/definable_resource.rb +0 -9
- data/spec/poolparty/modules/file_writer_spec.rb +0 -64
- data/spec/poolparty/modules/s3_string_spec.rb +0 -15
- data/spec/poolparty/modules/searchable_paths_spec.rb +0 -76
- data/spec/poolparty/monitors/base_monitor_spec.rb +0 -112
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +0 -18
- data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +0 -48
- data/spec/poolparty/net/remote_instance_spec.rb +0 -17
- data/spec/poolparty/net/remote_spec.rb +0 -287
- data/spec/poolparty/net/remoter_base_spec.rb +0 -35
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +0 -24
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +0 -114
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +0 -134
- data/spec/poolparty/net/remoter_spec.rb +0 -133
- data/spec/poolparty/plugins/chef_spec.rb +0 -7
- data/spec/poolparty/plugins/deploydirectory_spec.rb +0 -51
- data/spec/poolparty/plugins/git_spec.rb +0 -41
- data/spec/poolparty/plugins/line_spec.rb +0 -22
- data/spec/poolparty/poolparty/cloud_spec.rb +0 -322
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +0 -16
- data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +0 -16
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +0 -42
- data/spec/poolparty/poolparty/default_spec.rb +0 -139
- data/spec/poolparty/poolparty/example_spec.rb +0 -60
- data/spec/poolparty/poolparty/key_spec.rb +0 -42
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +0 -65
- data/spec/poolparty/poolparty/plugin_model_spec.rb +0 -54
- data/spec/poolparty/poolparty/plugin_spec.rb +0 -41
- data/spec/poolparty/poolparty/pool_spec.rb +0 -100
- data/spec/poolparty/poolparty/resource_spec.rb +0 -208
- data/spec/poolparty/poolparty/script_spec.rb +0 -49
- data/spec/poolparty/poolparty/service_spec.rb +0 -5
- data/spec/poolparty/poolparty/template_spec.rb +0 -26
- data/spec/poolparty/poolparty/test_plugins/sshkey_test +0 -2
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +0 -30
- data/spec/poolparty/poolparty_base_class_spec.rb +0 -84
- data/spec/poolparty/poolparty_spec.rb +0 -36
- data/spec/poolparty/resources/cron_spec.rb +0 -44
- data/spec/poolparty/resources/directory_spec.rb +0 -40
- data/spec/poolparty/resources/exec_spec.rb +0 -37
- data/spec/poolparty/resources/file_spec.rb +0 -64
- data/spec/poolparty/resources/gem_spec.rb +0 -7
- data/spec/poolparty/resources/host_spec.rb +0 -35
- data/spec/poolparty/resources/package_spec.rb +0 -26
- data/spec/poolparty/resources/service_spec.rb +0 -29
- data/spec/poolparty/resources/sshkey_spec.rb +0 -40
- data/spec/poolparty/resources/symlink_spec.rb +0 -29
- data/spec/poolparty/resources/user_spec.rb +0 -48
- data/spec/poolparty/resources/variable_spec.rb +0 -26
- data/spec/poolparty/schema_spec.rb +0 -53
- data/spec/poolparty/spec_helper.rb +0 -262
- data/spec/poolparty/test_spec_helper.rb +0 -13
- data/tasks/cloud.rake +0 -3
- data/tasks/ec2.rake +0 -13
- data/tasks/instance.rake +0 -2
- data/tasks/server.rake +0 -44
- data/tasks/spec.rake +0 -50
- data/test/poolparty/core/array_test.rb +0 -21
- data/test/poolparty/core/hash_test.rb +0 -34
- data/test/poolparty/core/string_test.rb +0 -29
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +0 -90
- data/test/poolparty/modules/callbacks_test.rb +0 -40
- data/test/poolparty/modules/cloud_dsl_test.rb +0 -60
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +0 -54
- data/test/poolparty/net/remoter_test.rb +0 -14
- data/test/poolparty/poolparty/neighborhood_test.rb +0 -23
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +0 -84
- data/test/poolparty/poolparty/template_test.rb +0 -31
- data/test/poolparty/provision/boot_strapper_test.rb +0 -6
- data/test/poolparty/provision/dr_configure_test.rb +0 -6
- data/test/poolparty/verification/verify_test.rb +0 -49
- data/test/test_generator_helper.rb +0 -29
- data/test/test_pool_spec_generator.rb +0 -47
- data/test/test_poolparty.rb +0 -12
- data/vendor/gems/butterfly/History.txt +0 -4
- data/vendor/gems/butterfly/PostInstall.txt +0 -2
- data/vendor/gems/butterfly/README.rdoc +0 -48
- data/vendor/gems/butterfly/Rakefile +0 -62
- data/vendor/gems/butterfly/VERSION.yml +0 -4
- data/vendor/gems/butterfly/bin/flutter +0 -4
- data/vendor/gems/butterfly/butterfly.gemspec +0 -37
- data/vendor/gems/butterfly/examples/config.ru +0 -15
- data/vendor/gems/butterfly/examples/my_app.rb +0 -12
- data/vendor/gems/butterfly/lib/butterfly.rb +0 -14
- data/vendor/gems/butterfly/lib/handler.rb +0 -48
- data/vendor/gems/butterfly/lib/request.rb +0 -29
- data/vendor/gems/butterfly/lib/response.rb +0 -49
- data/vendor/gems/butterfly/script/console +0 -10
- data/vendor/gems/butterfly/script/destroy +0 -14
- data/vendor/gems/butterfly/script/generate +0 -14
- data/vendor/gems/butterfly/test/test_adapter_base.rb +0 -23
- data/vendor/gems/butterfly/test/test_butterfly_request.rb +0 -46
- data/vendor/gems/butterfly/test/test_butterfly_response.rb +0 -43
- data/vendor/gems/butterfly/test/test_butterfly_server.rb +0 -16
- data/vendor/gems/butterfly/test/test_default.rb +0 -12
- data/vendor/gems/butterfly/test/test_helper.rb +0 -6
- data/vendor/gems/dslify/History.txt +0 -4
- data/vendor/gems/dslify/Manifest.txt +0 -25
- data/vendor/gems/dslify/PostInstall.txt +0 -5
- data/vendor/gems/dslify/README.txt +0 -60
- data/vendor/gems/dslify/config/hoe.rb +0 -73
- data/vendor/gems/dslify/config/requirements.rb +0 -15
- data/vendor/gems/dslify/lib/dslify/dslify.rb +0 -76
- data/vendor/gems/dslify/lib/dslify/version.rb +0 -10
- data/vendor/gems/dslify/script/console +0 -10
- data/vendor/gems/dslify/script/destroy +0 -14
- data/vendor/gems/dslify/script/generate +0 -14
- data/vendor/gems/dslify/script/txt2html +0 -82
- data/vendor/gems/dslify/tasks/environment.rake +0 -7
- data/vendor/gems/dslify/tasks/website.rake +0 -17
- data/vendor/gems/dslify/test/test_dslify.rb +0 -138
- data/vendor/gems/dslify/website/index.html +0 -86
- data/vendor/gems/dslify/website/index.txt +0 -83
- data/vendor/gems/dslify/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/vendor/gems/dslify/website/stylesheets/screen.css +0 -138
- data/vendor/gems/dslify/website/template.html.erb +0 -48
- data/vendor/gems/suitcase/README.rdoc +0 -31
- data/vendor/gems/suitcase/Rakefile +0 -57
- data/vendor/gems/suitcase/VERSION.yml +0 -4
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +0 -15
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +0 -119
- data/vendor/gems/suitcase/lib/suitcase.rb +0 -5
- data/vendor/gems/suitcase/suitcase.gemspec +0 -32
- data/vendor/gems/suitcase/test/suitcase_test.rb +0 -102
- data/vendor/gems/suitcase/test/test_dir/box.rb +0 -1
- data/vendor/gems/suitcase/test/test_dir/test.txt +0 -1
- data/vendor/gems/suitcase/test/test_helper.rb +0 -12
- /data/lib/poolparty/{templates → plugins}/apache2/browser_fixes.conf.erb +0 -0
- /data/lib/poolparty/{templates → plugins}/apache2/mime-minimal.conf.erb +0 -0
- /data/{spec/poolparty/poolparty/test_plugins/virtual_host_template.erb → lib/proto/gen-py/__init__.py} +0 -0
- /data/vendor/gems/{suitcase → colors}/LICENSE +0 -0
- /data/vendor/gems/{dslify → context}/setup.rb +0 -0
- /data/vendor/gems/{dslify → context}/tasks/deployment.rake +0 -0
- /data/{tasks → vendor/gems/context/tasks}/environment.rake +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
|
4
|
+
# distributed with this work for additional information
|
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
|
7
|
+
# "License"); you may not use this file except in compliance
|
|
8
|
+
# with the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
|
13
|
+
# software distributed under the License is distributed on an
|
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
# KIND, either express or implied. See the License for the
|
|
16
|
+
# specific language governing permissions and limitations
|
|
17
|
+
# under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
21
|
+
|
|
22
|
+
class ThriftStructSpec < Spec::ExampleGroup
|
|
23
|
+
include Thrift
|
|
24
|
+
include SpecNamespace
|
|
25
|
+
|
|
26
|
+
describe Struct do
|
|
27
|
+
it "should iterate over all fields properly" do
|
|
28
|
+
fields = {}
|
|
29
|
+
Foo.new.each_field { |fid,field_info| fields[fid] = field_info }
|
|
30
|
+
fields.should == Foo::FIELDS
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should initialize all fields to defaults" do
|
|
34
|
+
struct = Foo.new
|
|
35
|
+
struct.simple.should == 53
|
|
36
|
+
struct.words.should == "words"
|
|
37
|
+
struct.hello.should == Hello.new(:greeting => 'hello, world!')
|
|
38
|
+
struct.ints.should == [1, 2, 2, 3]
|
|
39
|
+
struct.complex.should be_nil
|
|
40
|
+
struct.shorts.should == Set.new([5, 17, 239])
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "should not share default values between instances" do
|
|
44
|
+
begin
|
|
45
|
+
struct = Foo.new
|
|
46
|
+
struct.ints << 17
|
|
47
|
+
Foo.new.ints.should == [1,2,2,3]
|
|
48
|
+
ensure
|
|
49
|
+
# ensure no leakage to other tests
|
|
50
|
+
Foo::FIELDS[4][:default] = [1,2,2,3]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "should properly initialize boolean values" do
|
|
55
|
+
struct = BoolStruct.new(:yesno => false)
|
|
56
|
+
struct.yesno.should be_false
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should have proper == semantics" do
|
|
60
|
+
Foo.new.should_not == Hello.new
|
|
61
|
+
Foo.new.should == Foo.new
|
|
62
|
+
Foo.new(:simple => 52).should_not == Foo.new
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should read itself off the wire" do
|
|
66
|
+
struct = Foo.new
|
|
67
|
+
prot = BaseProtocol.new(mock("transport"))
|
|
68
|
+
prot.should_receive(:read_struct_begin).twice
|
|
69
|
+
prot.should_receive(:read_struct_end).twice
|
|
70
|
+
prot.should_receive(:read_field_begin).and_return(
|
|
71
|
+
['complex', Types::MAP, 5], # Foo
|
|
72
|
+
['words', Types::STRING, 2], # Foo
|
|
73
|
+
['hello', Types::STRUCT, 3], # Foo
|
|
74
|
+
['greeting', Types::STRING, 1], # Hello
|
|
75
|
+
[nil, Types::STOP, 0], # Hello
|
|
76
|
+
['simple', Types::I32, 1], # Foo
|
|
77
|
+
['ints', Types::LIST, 4], # Foo
|
|
78
|
+
['shorts', Types::SET, 6], # Foo
|
|
79
|
+
[nil, Types::STOP, 0] # Hello
|
|
80
|
+
)
|
|
81
|
+
prot.should_receive(:read_field_end).exactly(7).times
|
|
82
|
+
prot.should_receive(:read_map_begin).and_return(
|
|
83
|
+
[Types::I32, Types::MAP, 2], # complex
|
|
84
|
+
[Types::STRING, Types::DOUBLE, 2], # complex/1/value
|
|
85
|
+
[Types::STRING, Types::DOUBLE, 1] # complex/2/value
|
|
86
|
+
)
|
|
87
|
+
prot.should_receive(:read_map_end).exactly(3).times
|
|
88
|
+
prot.should_receive(:read_list_begin).and_return([Types::I32, 4])
|
|
89
|
+
prot.should_receive(:read_list_end)
|
|
90
|
+
prot.should_receive(:read_set_begin).and_return([Types::I16, 2])
|
|
91
|
+
prot.should_receive(:read_set_end)
|
|
92
|
+
prot.should_receive(:read_i32).and_return(
|
|
93
|
+
1, 14, # complex keys
|
|
94
|
+
42, # simple
|
|
95
|
+
4, 23, 4, 29 # ints
|
|
96
|
+
)
|
|
97
|
+
prot.should_receive(:read_string).and_return("pi", "e", "feigenbaum", "apple banana", "what's up?")
|
|
98
|
+
prot.should_receive(:read_double).and_return(Math::PI, Math::E, 4.669201609)
|
|
99
|
+
prot.should_receive(:read_i16).and_return(2, 3)
|
|
100
|
+
prot.should_not_receive(:skip)
|
|
101
|
+
struct.read(prot)
|
|
102
|
+
|
|
103
|
+
struct.simple.should == 42
|
|
104
|
+
struct.complex.should == {1 => {"pi" => Math::PI, "e" => Math::E}, 14 => {"feigenbaum" => 4.669201609}}
|
|
105
|
+
struct.hello.should == Hello.new(:greeting => "what's up?")
|
|
106
|
+
struct.words.should == "apple banana"
|
|
107
|
+
struct.ints.should == [4, 23, 4, 29]
|
|
108
|
+
struct.shorts.should == Set.new([3, 2])
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it "should skip unexpected fields in structs and use default values" do
|
|
112
|
+
struct = Foo.new
|
|
113
|
+
prot = BaseProtocol.new(mock("transport"))
|
|
114
|
+
prot.should_receive(:read_struct_begin)
|
|
115
|
+
prot.should_receive(:read_struct_end)
|
|
116
|
+
prot.should_receive(:read_field_begin).and_return(
|
|
117
|
+
['simple', Types::I32, 1],
|
|
118
|
+
['complex', Types::STRUCT, 5],
|
|
119
|
+
['thinz', Types::MAP, 7],
|
|
120
|
+
['foobar', Types::I32, 3],
|
|
121
|
+
['words', Types::STRING, 2],
|
|
122
|
+
[nil, Types::STOP, 0]
|
|
123
|
+
)
|
|
124
|
+
prot.should_receive(:read_field_end).exactly(5).times
|
|
125
|
+
prot.should_receive(:read_i32).and_return(42)
|
|
126
|
+
prot.should_receive(:read_string).and_return("foobar")
|
|
127
|
+
prot.should_receive(:skip).with(Types::STRUCT)
|
|
128
|
+
prot.should_receive(:skip).with(Types::MAP)
|
|
129
|
+
# prot.should_receive(:read_map_begin).and_return([Types::I32, Types::I32, 0])
|
|
130
|
+
# prot.should_receive(:read_map_end)
|
|
131
|
+
prot.should_receive(:skip).with(Types::I32)
|
|
132
|
+
struct.read(prot)
|
|
133
|
+
|
|
134
|
+
struct.simple.should == 42
|
|
135
|
+
struct.complex.should be_nil
|
|
136
|
+
struct.words.should == "foobar"
|
|
137
|
+
struct.hello.should == Hello.new(:greeting => 'hello, world!')
|
|
138
|
+
struct.ints.should == [1, 2, 2, 3]
|
|
139
|
+
struct.shorts.should == Set.new([5, 17, 239])
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
it "should write itself to the wire" do
|
|
143
|
+
prot = BaseProtocol.new(mock("transport")) #mock("Protocol")
|
|
144
|
+
prot.should_receive(:write_struct_begin).with("SpecNamespace::Foo")
|
|
145
|
+
prot.should_receive(:write_struct_begin).with("SpecNamespace::Hello")
|
|
146
|
+
prot.should_receive(:write_struct_end).twice
|
|
147
|
+
prot.should_receive(:write_field_begin).with('ints', Types::LIST, 4)
|
|
148
|
+
prot.should_receive(:write_i32).with(1)
|
|
149
|
+
prot.should_receive(:write_i32).with(2).twice
|
|
150
|
+
prot.should_receive(:write_i32).with(3)
|
|
151
|
+
prot.should_receive(:write_field_begin).with('complex', Types::MAP, 5)
|
|
152
|
+
prot.should_receive(:write_i32).with(5)
|
|
153
|
+
prot.should_receive(:write_string).with('foo')
|
|
154
|
+
prot.should_receive(:write_double).with(1.23)
|
|
155
|
+
prot.should_receive(:write_field_begin).with('shorts', Types::SET, 6)
|
|
156
|
+
prot.should_receive(:write_i16).with(5)
|
|
157
|
+
prot.should_receive(:write_i16).with(17)
|
|
158
|
+
prot.should_receive(:write_i16).with(239)
|
|
159
|
+
prot.should_receive(:write_field_stop).twice
|
|
160
|
+
prot.should_receive(:write_field_end).exactly(6).times
|
|
161
|
+
prot.should_receive(:write_field_begin).with('simple', Types::I32, 1)
|
|
162
|
+
prot.should_receive(:write_i32).with(53)
|
|
163
|
+
prot.should_receive(:write_field_begin).with('hello', Types::STRUCT, 3)
|
|
164
|
+
prot.should_receive(:write_field_begin).with('greeting', Types::STRING, 1)
|
|
165
|
+
prot.should_receive(:write_string).with('hello, world!')
|
|
166
|
+
prot.should_receive(:write_map_begin).with(Types::I32, Types::MAP, 1)
|
|
167
|
+
prot.should_receive(:write_map_begin).with(Types::STRING, Types::DOUBLE, 1)
|
|
168
|
+
prot.should_receive(:write_map_end).twice
|
|
169
|
+
prot.should_receive(:write_list_begin).with(Types::I32, 4)
|
|
170
|
+
prot.should_receive(:write_list_end)
|
|
171
|
+
prot.should_receive(:write_set_begin).with(Types::I16, 3)
|
|
172
|
+
prot.should_receive(:write_set_end)
|
|
173
|
+
|
|
174
|
+
struct = Foo.new
|
|
175
|
+
struct.words = nil
|
|
176
|
+
struct.complex = {5 => {"foo" => 1.23}}
|
|
177
|
+
struct.write(prot)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
it "should raise an exception if presented with an unknown container" do
|
|
181
|
+
# yeah this is silly, but I'm going for code coverage here
|
|
182
|
+
struct = Foo.new
|
|
183
|
+
lambda { struct.send :write_container, nil, nil, {:type => "foo"} }.should raise_error(StandardError, "Not a container type: foo")
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
it "should support optional type-checking in Thrift::Struct.new" do
|
|
187
|
+
Thrift.type_checking = true
|
|
188
|
+
begin
|
|
189
|
+
lambda { Hello.new(:greeting => 3) }.should raise_error(TypeError, "Expected Types::STRING, received Fixnum for field greeting")
|
|
190
|
+
ensure
|
|
191
|
+
Thrift.type_checking = false
|
|
192
|
+
end
|
|
193
|
+
lambda { Hello.new(:greeting => 3) }.should_not raise_error(TypeError)
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
it "should support optional type-checking in field accessors" do
|
|
197
|
+
Thrift.type_checking = true
|
|
198
|
+
begin
|
|
199
|
+
hello = Hello.new
|
|
200
|
+
lambda { hello.greeting = 3 }.should raise_error(TypeError, "Expected Types::STRING, received Fixnum for field greeting")
|
|
201
|
+
ensure
|
|
202
|
+
Thrift.type_checking = false
|
|
203
|
+
end
|
|
204
|
+
lambda { hello.greeting = 3 }.should_not raise_error(TypeError)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
it "should raise an exception when unknown types are given to Thrift::Struct.new" do
|
|
208
|
+
lambda { Hello.new(:fish => 'salmon') }.should raise_error(Exception, "Unknown key given to SpecNamespace::Hello.new: fish")
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
it "should support `raise Xception, 'message'` for Exception structs" do
|
|
212
|
+
begin
|
|
213
|
+
raise Xception, "something happened"
|
|
214
|
+
rescue Thrift::Exception => e
|
|
215
|
+
e.message.should == "something happened"
|
|
216
|
+
e.code.should == 1
|
|
217
|
+
# ensure it gets serialized properly, this is the really important part
|
|
218
|
+
prot = BaseProtocol.new(mock("trans"))
|
|
219
|
+
prot.should_receive(:write_struct_begin).with("SpecNamespace::Xception")
|
|
220
|
+
prot.should_receive(:write_struct_end)
|
|
221
|
+
prot.should_receive(:write_field_begin).with('message', Types::STRING, 1)#, "something happened")
|
|
222
|
+
prot.should_receive(:write_string).with("something happened")
|
|
223
|
+
prot.should_receive(:write_field_begin).with('code', Types::I32, 2)#, 1)
|
|
224
|
+
prot.should_receive(:write_i32).with(1)
|
|
225
|
+
prot.should_receive(:write_field_stop)
|
|
226
|
+
prot.should_receive(:write_field_end).twice
|
|
227
|
+
|
|
228
|
+
e.write(prot)
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
it "should support the regular initializer for exception structs" do
|
|
233
|
+
begin
|
|
234
|
+
raise Xception, :message => "something happened", :code => 5
|
|
235
|
+
rescue Thrift::Exception => e
|
|
236
|
+
e.message.should == "something happened"
|
|
237
|
+
e.code.should == 5
|
|
238
|
+
prot = BaseProtocol.new(mock("trans"))
|
|
239
|
+
prot.should_receive(:write_struct_begin).with("SpecNamespace::Xception")
|
|
240
|
+
prot.should_receive(:write_struct_end)
|
|
241
|
+
prot.should_receive(:write_field_begin).with('message', Types::STRING, 1)
|
|
242
|
+
prot.should_receive(:write_string).with("something happened")
|
|
243
|
+
prot.should_receive(:write_field_begin).with('code', Types::I32, 2)
|
|
244
|
+
prot.should_receive(:write_i32).with(5)
|
|
245
|
+
prot.should_receive(:write_field_stop)
|
|
246
|
+
prot.should_receive(:write_field_end).twice
|
|
247
|
+
|
|
248
|
+
e.write(prot)
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
|
4
|
+
# distributed with this work for additional information
|
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
|
7
|
+
# "License"); you may not use this file except in compliance
|
|
8
|
+
# with the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
|
13
|
+
# software distributed under the License is distributed on an
|
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
# KIND, either express or implied. See the License for the
|
|
16
|
+
# specific language governing permissions and limitations
|
|
17
|
+
# under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
21
|
+
|
|
22
|
+
class ThriftTypesSpec < Spec::ExampleGroup
|
|
23
|
+
include Thrift
|
|
24
|
+
|
|
25
|
+
before(:each) do
|
|
26
|
+
Thrift.type_checking = true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
after(:each) do
|
|
30
|
+
Thrift.type_checking = false
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "Type checking" do
|
|
34
|
+
it "should return the proper name for each type" do
|
|
35
|
+
Thrift.type_name(Types::I16).should == "Types::I16"
|
|
36
|
+
Thrift.type_name(Types::VOID).should == "Types::VOID"
|
|
37
|
+
Thrift.type_name(Types::LIST).should == "Types::LIST"
|
|
38
|
+
Thrift.type_name(42).should be_nil
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should check types properly" do
|
|
42
|
+
# lambda { Thrift.check_type(nil, Types::STOP) }.should raise_error(TypeError)
|
|
43
|
+
lambda { Thrift.check_type(3, {:type => Types::STOP}, :foo) }.should raise_error(TypeError)
|
|
44
|
+
lambda { Thrift.check_type(nil, {:type => Types::VOID}, :foo) }.should_not raise_error(TypeError)
|
|
45
|
+
lambda { Thrift.check_type(3, {:type => Types::VOID}, :foo) }.should raise_error(TypeError)
|
|
46
|
+
lambda { Thrift.check_type(true, {:type => Types::BOOL}, :foo) }.should_not raise_error(TypeError)
|
|
47
|
+
lambda { Thrift.check_type(3, {:type => Types::BOOL}, :foo) }.should raise_error(TypeError)
|
|
48
|
+
lambda { Thrift.check_type(42, {:type => Types::BYTE}, :foo) }.should_not raise_error(TypeError)
|
|
49
|
+
lambda { Thrift.check_type(42, {:type => Types::I16}, :foo) }.should_not raise_error(TypeError)
|
|
50
|
+
lambda { Thrift.check_type(42, {:type => Types::I32}, :foo) }.should_not raise_error(TypeError)
|
|
51
|
+
lambda { Thrift.check_type(42, {:type => Types::I64}, :foo) }.should_not raise_error(TypeError)
|
|
52
|
+
lambda { Thrift.check_type(3.14, {:type => Types::I32}, :foo) }.should raise_error(TypeError)
|
|
53
|
+
lambda { Thrift.check_type(3.14, {:type => Types::DOUBLE}, :foo) }.should_not raise_error(TypeError)
|
|
54
|
+
lambda { Thrift.check_type(3, {:type => Types::DOUBLE}, :foo) }.should raise_error(TypeError)
|
|
55
|
+
lambda { Thrift.check_type("3", {:type => Types::STRING}, :foo) }.should_not raise_error(TypeError)
|
|
56
|
+
lambda { Thrift.check_type(3, {:type => Types::STRING}, :foo) }.should raise_error(TypeError)
|
|
57
|
+
hello = SpecNamespace::Hello.new
|
|
58
|
+
lambda { Thrift.check_type(hello, {:type => Types::STRUCT, :class => SpecNamespace::Hello}, :foo) }.should_not raise_error(TypeError)
|
|
59
|
+
lambda { Thrift.check_type("foo", {:type => Types::STRUCT}, :foo) }.should raise_error(TypeError)
|
|
60
|
+
lambda { Thrift.check_type({:foo => 1}, {:type => Types::MAP}, :foo) }.should_not raise_error(TypeError)
|
|
61
|
+
lambda { Thrift.check_type([1], {:type => Types::MAP}, :foo) }.should raise_error(TypeError)
|
|
62
|
+
lambda { Thrift.check_type([1], {:type => Types::LIST}, :foo) }.should_not raise_error(TypeError)
|
|
63
|
+
lambda { Thrift.check_type({:foo => 1}, {:type => Types::LIST}, :foo) }.should raise_error(TypeError)
|
|
64
|
+
lambda { Thrift.check_type(Set.new([1,2]), {:type => Types::SET}, :foo) }.should_not raise_error(TypeError)
|
|
65
|
+
lambda { Thrift.check_type([1,2], {:type => Types::SET}, :foo) }.should raise_error(TypeError)
|
|
66
|
+
lambda { Thrift.check_type({:foo => true}, {:type => Types::SET}, :foo) }.should raise_error(TypeError)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should error out if nil is passed and skip_types is false" do
|
|
70
|
+
lambda { Thrift.check_type(nil, {:type => Types::BOOL}, :foo, false) }.should raise_error(TypeError)
|
|
71
|
+
lambda { Thrift.check_type(nil, {:type => Types::BYTE}, :foo, false) }.should raise_error(TypeError)
|
|
72
|
+
lambda { Thrift.check_type(nil, {:type => Types::I16}, :foo, false) }.should raise_error(TypeError)
|
|
73
|
+
lambda { Thrift.check_type(nil, {:type => Types::I32}, :foo, false) }.should raise_error(TypeError)
|
|
74
|
+
lambda { Thrift.check_type(nil, {:type => Types::I64}, :foo, false) }.should raise_error(TypeError)
|
|
75
|
+
lambda { Thrift.check_type(nil, {:type => Types::DOUBLE}, :foo, false) }.should raise_error(TypeError)
|
|
76
|
+
lambda { Thrift.check_type(nil, {:type => Types::STRING}, :foo, false) }.should raise_error(TypeError)
|
|
77
|
+
lambda { Thrift.check_type(nil, {:type => Types::STRUCT}, :foo, false) }.should raise_error(TypeError)
|
|
78
|
+
lambda { Thrift.check_type(nil, {:type => Types::LIST}, :foo, false) }.should raise_error(TypeError)
|
|
79
|
+
lambda { Thrift.check_type(nil, {:type => Types::SET}, :foo, false) }.should raise_error(TypeError)
|
|
80
|
+
lambda { Thrift.check_type(nil, {:type => Types::MAP}, :foo, false) }.should raise_error(TypeError)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "should check element types on containers" do
|
|
84
|
+
field = {:type => Types::LIST, :element => {:type => Types::I32}}
|
|
85
|
+
lambda { Thrift.check_type([1, 2], field, :foo) }.should_not raise_error(TypeError)
|
|
86
|
+
lambda { Thrift.check_type([1, nil, 2], field, :foo) }.should raise_error(TypeError)
|
|
87
|
+
field = {:type => Types::MAP, :key => {:type => Types::I32}, :value => {:type => Types::STRING}}
|
|
88
|
+
lambda { Thrift.check_type({1 => "one", 2 => "two"}, field, :foo) }.should_not raise_error(TypeError)
|
|
89
|
+
lambda { Thrift.check_type({1 => "one", nil => "nil"}, field, :foo) }.should raise_error(TypeError)
|
|
90
|
+
lambda { Thrift.check_type({1 => nil, 2 => "two"}, field, :foo) }.should raise_error(TypeError)
|
|
91
|
+
field = {:type => Types::SET, :element => {:type => Types::I32}}
|
|
92
|
+
lambda { Thrift.check_type(Set.new([1, 2]), field, :foo) }.should_not raise_error(TypeError)
|
|
93
|
+
lambda { Thrift.check_type(Set.new([1, nil, 2]), field, :foo) }.should raise_error(TypeError)
|
|
94
|
+
lambda { Thrift.check_type(Set.new([1, 2.3, 2]), field, :foo) }.should raise_error(TypeError)
|
|
95
|
+
|
|
96
|
+
field = {:type => Types::STRUCT, :class => SpecNamespace::Hello}
|
|
97
|
+
lambda { Thrift.check_type(SpecNamespace::BoolStruct, field, :foo) }.should raise_error(TypeError)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it "should give the TypeError a readable message" do
|
|
101
|
+
msg = "Expected Types::STRING, received Fixnum for field foo"
|
|
102
|
+
lambda { Thrift.check_type(3, {:type => Types::STRING}, :foo) }.should raise_error(TypeError, msg)
|
|
103
|
+
msg = "Expected Types::STRING, received Fixnum for field foo.element"
|
|
104
|
+
field = {:type => Types::LIST, :element => {:type => Types::STRING}}
|
|
105
|
+
lambda { Thrift.check_type([3], field, :foo) }.should raise_error(TypeError, msg)
|
|
106
|
+
msg = "Expected Types::I32, received NilClass for field foo.element.key"
|
|
107
|
+
field = {:type => Types::LIST,
|
|
108
|
+
:element => {:type => Types::MAP,
|
|
109
|
+
:key => {:type => Types::I32},
|
|
110
|
+
:value => {:type => Types::I32}}}
|
|
111
|
+
lambda { Thrift.check_type([{nil => 3}], field, :foo) }.should raise_error(TypeError, msg)
|
|
112
|
+
msg = "Expected Types::I32, received NilClass for field foo.element.value"
|
|
113
|
+
lambda { Thrift.check_type([{1 => nil}], field, :foo) }.should raise_error(TypeError, msg)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
|
4
|
+
# distributed with this work for additional information
|
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
|
7
|
+
# "License"); you may not use this file except in compliance
|
|
8
|
+
# with the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
|
13
|
+
# software distributed under the License is distributed on an
|
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
# KIND, either express or implied. See the License for the
|
|
16
|
+
# specific language governing permissions and limitations
|
|
17
|
+
# under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
21
|
+
require File.dirname(__FILE__) + "/socket_spec_shared"
|
|
22
|
+
|
|
23
|
+
class ThriftUNIXSocketSpec < Spec::ExampleGroup
|
|
24
|
+
include Thrift
|
|
25
|
+
|
|
26
|
+
describe UNIXSocket do
|
|
27
|
+
before(:each) do
|
|
28
|
+
@path = '/tmp/thrift_spec_socket'
|
|
29
|
+
@socket = UNIXSocket.new(@path)
|
|
30
|
+
@handle = mock("Handle", :closed? => false)
|
|
31
|
+
@handle.stub!(:close)
|
|
32
|
+
::UNIXSocket.stub!(:new).and_return(@handle)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it_should_behave_like "a socket"
|
|
36
|
+
|
|
37
|
+
it "should raise a TransportException when it cannot open a socket" do
|
|
38
|
+
::UNIXSocket.should_receive(:new).and_raise(StandardError)
|
|
39
|
+
lambda { @socket.open }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should accept an optional timeout" do
|
|
43
|
+
::UNIXSocket.stub!(:new)
|
|
44
|
+
UNIXSocket.new(@path, 5).timeout.should == 5
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe UNIXServerSocket do
|
|
49
|
+
before(:each) do
|
|
50
|
+
@path = '/tmp/thrift_spec_socket'
|
|
51
|
+
@socket = UNIXServerSocket.new(@path)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "should create a handle when calling listen" do
|
|
55
|
+
UNIXServer.should_receive(:new).with(@path)
|
|
56
|
+
@socket.listen
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should create a Thrift::UNIXSocket to wrap accepted sockets" do
|
|
60
|
+
handle = mock("UNIXServer")
|
|
61
|
+
UNIXServer.should_receive(:new).with(@path).and_return(handle)
|
|
62
|
+
@socket.listen
|
|
63
|
+
sock = mock("sock")
|
|
64
|
+
handle.should_receive(:accept).and_return(sock)
|
|
65
|
+
trans = mock("UNIXSocket")
|
|
66
|
+
UNIXSocket.should_receive(:new).and_return(trans)
|
|
67
|
+
trans.should_receive(:handle=).with(sock)
|
|
68
|
+
@socket.accept.should == trans
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "should close the handle when closed" do
|
|
72
|
+
handle = mock("UNIXServer", :closed? => false)
|
|
73
|
+
UNIXServer.should_receive(:new).with(@path).and_return(handle)
|
|
74
|
+
@socket.listen
|
|
75
|
+
handle.should_receive(:close)
|
|
76
|
+
File.stub!(:delete)
|
|
77
|
+
@socket.close
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "should delete the socket when closed" do
|
|
81
|
+
handle = mock("UNIXServer", :closed? => false)
|
|
82
|
+
UNIXServer.should_receive(:new).with(@path).and_return(handle)
|
|
83
|
+
@socket.listen
|
|
84
|
+
handle.stub!(:close)
|
|
85
|
+
File.should_receive(:delete).with(@path)
|
|
86
|
+
@socket.close
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it "should return nil when accepting if there is no handle" do
|
|
90
|
+
@socket.accept.should be_nil
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "should return true for closed? when appropriate" do
|
|
94
|
+
handle = mock("UNIXServer", :closed? => false)
|
|
95
|
+
UNIXServer.stub!(:new).and_return(handle)
|
|
96
|
+
File.stub!(:delete)
|
|
97
|
+
@socket.listen
|
|
98
|
+
@socket.should_not be_closed
|
|
99
|
+
handle.stub!(:close)
|
|
100
|
+
@socket.close
|
|
101
|
+
@socket.should be_closed
|
|
102
|
+
@socket.listen
|
|
103
|
+
@socket.should_not be_closed
|
|
104
|
+
handle.stub!(:closed?).and_return(true)
|
|
105
|
+
@socket.should be_closed
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Trollop FAQ
|
|
2
|
+
-----------
|
|
3
|
+
|
|
4
|
+
Q: Why is it called "Trollop"?
|
|
5
|
+
A: No reason.
|
|
6
|
+
|
|
7
|
+
Q: Why should I use Trollop?
|
|
8
|
+
A: Because it will take you FEWER LINES OF CODE to do reasonable option parsing
|
|
9
|
+
than any other option parser out there.
|
|
10
|
+
|
|
11
|
+
Look at this:
|
|
12
|
+
|
|
13
|
+
opts = Trollop::options do
|
|
14
|
+
opt :monkey, "Use monkey mode"
|
|
15
|
+
opt :goat, "Use goat mode", :default => true
|
|
16
|
+
opt :num_limbs, "Set number of limbs", :default => 4
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
That's it. And opts is a hash and you do whatever you want with it.
|
|
20
|
+
Trivial. You don't have to mix option processing code blocks with the
|
|
21
|
+
declarations. You don't have to make a class for every option (what is this,
|
|
22
|
+
Java?). You don't have to write more than 1 line of code per option.
|
|
23
|
+
|
|
24
|
+
Plus, you get a beautiful help screen that detects your terminal width and
|
|
25
|
+
wraps appropriately. C'mon, that's hot.
|
|
26
|
+
|
|
27
|
+
Q: What is the philosophy behind Trollop?
|
|
28
|
+
A: Must a commandline option processor have a philosophy?
|
|
29
|
+
|
|
30
|
+
Q: Seriously now. What is it?
|
|
31
|
+
A: Ok, it's this: Trollop *just* does the parsing and gives you a hash table
|
|
32
|
+
of the result. So whatever fancy logic or constraints you need, you can
|
|
33
|
+
implement by operating on that hash table. Options that disable other
|
|
34
|
+
options, fancy constraints involving multiple sets of values across multiple
|
|
35
|
+
sets of options, etc. are all left for you to do manually.
|
|
36
|
+
|
|
37
|
+
(Trollop does support limited constraint setting (see #conflicts and
|
|
38
|
+
#depends), but any non-trivial program will need to get fancier.)
|
|
39
|
+
|
|
40
|
+
The result is that using Trollop is pretty simple, and whatever bizarre
|
|
41
|
+
logic you want, you can write yourself. And don't forget, you can call
|
|
42
|
+
Trollop::die to abort the program and give a fancy options-related error
|
|
43
|
+
message.
|
|
44
|
+
|
|
45
|
+
Q: What happens to the other stuff on the commandline?
|
|
46
|
+
A: Anything Trollop doesn't recognize as an option or as an option parameter is
|
|
47
|
+
left in ARGV for you to process.
|
|
48
|
+
|
|
49
|
+
Q: Does Trollop support multiple-value arguments?
|
|
50
|
+
A: Yes. If you set the :type of an option to something plural, like ":ints",
|
|
51
|
+
":strings", ":doubles", ":floats", ":ios", it will accept multiple arguments
|
|
52
|
+
on the commandline and the value will be an array of these.
|
|
53
|
+
|
|
54
|
+
Q: Does Trollop support arguments that can be given multiple times?
|
|
55
|
+
A: Yes. If you set :multi to true, then the argument can appear multiple times
|
|
56
|
+
on the commandline, and the value will be an array of the parameters.
|
|
57
|
+
|
|
58
|
+
Q: Does Trollop support subcommands?
|
|
59
|
+
A: Yes. You get subcommand support by adding a call #stop_on within the options
|
|
60
|
+
block, and passing the names of the subcommands to it. (See the third
|
|
61
|
+
example on the webpage.) When Trollop encounters one of these subcommands on
|
|
62
|
+
the commandline, it stops processing and returns.
|
|
63
|
+
|
|
64
|
+
ARGV at that point will contain the subcommand followed by any subcommand
|
|
65
|
+
options, since Trollop has contained the rest. So you can consume the
|
|
66
|
+
subcommand and call Trollop.options again with the particular options set
|
|
67
|
+
for that subcommand.
|
|
68
|
+
|
|
69
|
+
If you don't know the subcommands ahead of time, you can call
|
|
70
|
+
#stop_on_unknown, which will cause Trollop to stop when it encounters any
|
|
71
|
+
unknown token. This might be more trouble than its worth if you're also
|
|
72
|
+
passing filenames on the commandline.
|
|
73
|
+
|
|
74
|
+
It's probably easier to see the example on the webpage than to read all
|
|
75
|
+
that.
|
|
76
|
+
|
|
77
|
+
Q: Why does Trollop disallow numeric short argument names, like '-1' and '-9'?
|
|
78
|
+
A: Because it's ambiguous whether these are arguments or negative integer or
|
|
79
|
+
floating-point parameters to arguments. E.g., what about "-f -3". Is that a
|
|
80
|
+
negative three parameter to -f, or two separate parameters?
|
|
81
|
+
|
|
82
|
+
I could be very clever and detect when there are no arguments that require
|
|
83
|
+
floating-point parameters, and allow such short option names in those cases,
|
|
84
|
+
but opted for simplicity and consistency.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
== 1.14 / 2009-06-19
|
|
2
|
+
* Make :multi arguments default to [], not nil, when not set on the commandline.
|
|
3
|
+
* Minor commenting and error message improvements
|
|
4
|
+
|
|
5
|
+
== 1.13 / 2009-03-16
|
|
6
|
+
* Fix parsing of "--longarg=<value with spaces>".
|
|
7
|
+
|
|
8
|
+
== 1.12 / 2009-01-30
|
|
9
|
+
* Fix some unit test failures in the last release. Should be more careful.
|
|
10
|
+
* Make default short options only be assigned *after* all user-specified
|
|
11
|
+
short options. Now there's a little less juggling to do when you just
|
|
12
|
+
want to specify a few short options.
|
|
13
|
+
|
|
14
|
+
== 1.11 / 2009-01-29
|
|
15
|
+
* Set <opt>_given keys in the results hash for options that were specified
|
|
16
|
+
on the commandline.
|
|
17
|
+
|
|
18
|
+
== 1.10.2 / 2008-10-23
|
|
19
|
+
* No longer try `stty size` for screen size detection. Just use curses, and
|
|
20
|
+
screen users will have to deal with the screen clearing.
|
|
21
|
+
|
|
22
|
+
== 1.10.1 / 2008-10-22
|
|
23
|
+
* Options hash now responds to method calls as well as standard hash lookup.
|
|
24
|
+
* Default values for multi-occurrence parameters now autoboxed.
|
|
25
|
+
* The relationship between multi-value, multi-occurrence, and default values
|
|
26
|
+
improved and explained.
|
|
27
|
+
* Documentation improvements.
|
|
28
|
+
|
|
29
|
+
== 1.10 / 2008-10-21
|
|
30
|
+
* Added :io type for parameters that point to IO streams (filenames, URIs, etc).
|
|
31
|
+
* For screen size detection, first try `stty size` before loading Curses.
|
|
32
|
+
* Improved documentation.
|
|
33
|
+
|
|
34
|
+
== 1.9 / 2008-08-20
|
|
35
|
+
* Added 'stop_on_unknown' command to stop parsing on any unknown argument.
|
|
36
|
+
This is useful for handling sub-commands when you don't know the entire
|
|
37
|
+
set of commands up front. (E.g. if the initial arguments can change it.)
|
|
38
|
+
* Added a :multi option for parameters, signifying that they can be specified
|
|
39
|
+
multiple times.
|
|
40
|
+
* Added :ints, :strings, :doubles, and :floats option types, which can take
|
|
41
|
+
multiple arguments.
|
|
42
|
+
|
|
43
|
+
== 1.8.2 / 2008-06-25
|
|
44
|
+
* Bugfix for #conflicts and #depends error messages
|
|
45
|
+
|
|
46
|
+
== 1.8.1 / 2008-06-24
|
|
47
|
+
* Bugfix for short option autocreation
|
|
48
|
+
* More aggressive documentation
|
|
49
|
+
|
|
50
|
+
== 1.8 / 2008-06-16
|
|
51
|
+
* Sub-command support via Parser#stop_on
|
|
52
|
+
|
|
53
|
+
== 1.7.2 / 2008-01-16
|
|
54
|
+
* Ruby 1.9-ify. Apparently this means replacing :'s with ;'s.
|
|
55
|
+
|
|
56
|
+
== 1.7.1 / 2008-01-07
|
|
57
|
+
* Documentation improvements
|
|
58
|
+
|
|
59
|
+
== 1.7 / 2007-06-17
|
|
60
|
+
* Fix incorrect error message for multiple missing required arguments
|
|
61
|
+
(thanks to Neill Zero)
|
|
62
|
+
|
|
63
|
+
== 1.6 / 2007-04-01
|
|
64
|
+
* Don't attempt curses screen-width magic unless running on a terminal.
|
|
65
|
+
|
|
66
|
+
== 1.5 / 2007-03-31
|
|
67
|
+
* --help and --version do the right thing even if the rest of the
|
|
68
|
+
command line is incorrect.
|
|
69
|
+
* Added #conflicts and #depends to model dependencies and exclusivity
|
|
70
|
+
between arguments.
|
|
71
|
+
* Minor bugfixes.
|
|
72
|
+
|
|
73
|
+
== 1.4 / 2007-03-26
|
|
74
|
+
* Disable short options with :short => :none.
|
|
75
|
+
* Minor bugfixes and error message improvements.
|
|
76
|
+
|
|
77
|
+
== 1.3 / 2007-01-31
|
|
78
|
+
* Wrap at (screen width - 1) instead of screen width.
|
|
79
|
+
* User can override --help and --version.
|
|
80
|
+
* Bugfix in handling of -v and -h.
|
|
81
|
+
* More tests to confirm the above.
|
|
82
|
+
|
|
83
|
+
== 1.2 / 2007-01-31
|
|
84
|
+
* Minor documentation tweaks.
|
|
85
|
+
* Removed hoe dependency.
|
|
86
|
+
|
|
87
|
+
== 1.1 / 2007-01-30
|
|
88
|
+
* Trollop::options now passes any arguments as block arguments. Since
|
|
89
|
+
instance variables are not properly captured by the block, this
|
|
90
|
+
makes it slightly less noisy to pass them in as local variables.
|
|
91
|
+
(A real-life use for _why's cloaker!)
|
|
92
|
+
* Help display now preserves original argument order.
|
|
93
|
+
* Trollop::die now also has a single string form in case death is not
|
|
94
|
+
due to a single argument.
|
|
95
|
+
* Parser#text now an alias for Parser#banner, and can be called
|
|
96
|
+
multiple times, with the output being placed in the right position
|
|
97
|
+
in the help text.
|
|
98
|
+
* Slightly more indicative formatting for parameterized arguments.
|
|
99
|
+
|
|
100
|
+
== 1.0 / 2007-01-29
|
|
101
|
+
* Initial release.
|