poolparty 0.2.84 → 1.2.2
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/History.txt +7 -0
- data/License.txt +1 -1
- data/PostInstall.txt +1 -1
- data/README.txt +13 -22
- data/Rakefile +26 -35
- data/VERSION.yml +4 -0
- data/bin/cloud +24 -3
- data/bin/cloud-bootstrap +31 -0
- data/bin/cloud-configure +36 -20
- data/bin/{pool-console → cloud-console} +0 -0
- data/bin/cloud-contract +7 -7
- data/bin/cloud-describe +28 -0
- data/bin/cloud-expand +13 -6
- data/bin/cloud-handle-load +3 -3
- data/bin/cloud-list +9 -14
- data/bin/cloud-osxcopy +6 -5
- data/bin/cloud-provision +17 -22
- data/bin/cloud-setup-dev +11 -11
- data/bin/cloud-show +28 -0
- data/bin/cloud-spec +2 -2
- data/bin/cloud-ssh +10 -3
- data/bin/cloud-start +21 -23
- data/bin/cloud-terminate +15 -7
- data/bin/cloud-verify +32 -0
- data/bin/install-poolparty +216 -0
- data/bin/server-butterfly +25 -0
- data/bin/server-cloud-elections +37 -0
- data/bin/server-ensure-provisioning +33 -0
- data/bin/server-get-load +9 -12
- data/bin/server-list-active +25 -12
- data/bin/server-manage-election +67 -0
- data/bin/server-monitor.ru +42 -0
- data/bin/server-query-agent +15 -0
- data/bin/server-rerun +1 -1
- data/bin/server-write-new-nodes +2 -2
- data/config/jeweler.rb +52 -0
- data/config/requirements.rb +1 -9
- data/examples/basic.rb +10 -10
- data/examples/deploy.rb +5 -0
- data/examples/fairchild.rb +28 -0
- data/examples/fairchild_chef.rb +19 -0
- data/examples/maize.rb +37 -0
- data/examples/paparazzi.conf.erb +21 -0
- data/generators/poolspec/poolspec_generator.rb +1 -9
- data/generators/poolspec/templates/pool_spec_template.erb +0 -1
- data/lib/poolparty/{aska/aska.rb → aska.rb} +19 -28
- data/lib/poolparty/base_packages/haproxy.rb +48 -31
- data/lib/poolparty/base_packages/heartbeat.rb +6 -62
- data/lib/poolparty/base_packages/poolparty.rb +5 -105
- data/lib/poolparty/base_packages/ruby.rb +4 -4
- data/lib/poolparty/base_packages/runit.rb +1 -1
- data/lib/poolparty/core/array.rb +21 -3
- data/lib/poolparty/core/hash.rb +45 -10
- data/lib/poolparty/core/kernel.rb +30 -8
- data/lib/poolparty/core/nil.rb +8 -0
- data/lib/poolparty/core/object.rb +34 -25
- data/lib/poolparty/core/ordered_hash.rb +99 -0
- data/lib/poolparty/core/string.rb +112 -15
- data/lib/poolparty/core/symbol.rb +10 -0
- data/lib/poolparty/dependencies.rb +49 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +237 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +29 -0
- data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +34 -29
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +188 -0
- data/lib/poolparty/exceptions/MasterException.rb +2 -2
- data/lib/poolparty/exceptions/RemoteException.rb +1 -1
- data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
- data/lib/poolparty/exceptions/package_exception.rb +7 -0
- data/lib/poolparty/extra/deployments.rb +7 -7
- data/lib/poolparty/helpers/binary.rb +26 -32
- data/lib/poolparty/helpers/console.rb +1 -1
- data/lib/poolparty/helpers/display.rb +1 -5
- data/lib/poolparty/helpers/hash_printer.rb +44 -0
- data/lib/poolparty/helpers/loading.rb +4 -0
- data/lib/poolparty/helpers/optioner.rb +39 -25
- data/lib/poolparty/lite.rb +30 -0
- data/lib/poolparty/modules/callbacks.rb +44 -0
- data/lib/poolparty/modules/cloud_dsl.rb +38 -8
- data/lib/poolparty/modules/cloud_resourcer.rb +67 -97
- data/lib/poolparty/modules/daemonizable.rb +141 -0
- data/lib/poolparty/modules/definable_resource.rb +8 -14
- data/lib/poolparty/modules/file_writer.rb +25 -17
- data/lib/poolparty/modules/pinger.rb +28 -0
- data/lib/poolparty/modules/pretty_printer.rb +1 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +55 -40
- data/lib/poolparty/modules/searchable_paths.rb +91 -0
- data/lib/poolparty/modules/thread_pool.rb +107 -106
- data/lib/poolparty/modules/user_helpers.rb +20 -0
- data/lib/poolparty/monitors/base_monitor.rb +18 -75
- data/lib/poolparty/monitors/monitor_rack.rb +123 -0
- data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
- data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -0
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +9 -9
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
- data/lib/poolparty/monitors/monitors/stats_monitor.rb +187 -0
- data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
- data/lib/poolparty/net/init.rb +10 -0
- data/lib/poolparty/net/remote_bases.rb +20 -0
- data/lib/poolparty/net/remote_instance.rb +26 -44
- data/lib/poolparty/net/remoter/cloud_control.rb +24 -0
- data/lib/poolparty/net/remoter/connections.rb +172 -0
- data/lib/poolparty/net/remoter/interactive.rb +45 -0
- data/lib/poolparty/net/remoter_base.rb +116 -111
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +245 -0
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
- data/lib/poolparty/net/{remote_bases → remoter_bases}/ec2/ec2_response_object.rb +2 -4
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
- data/lib/poolparty/plugins/apache2/apache.rb +340 -0
- data/lib/poolparty/plugins/bind.rb +11 -0
- data/lib/poolparty/plugins/chef.rb +173 -0
- data/lib/poolparty/plugins/chef_deploy.rb +58 -0
- data/lib/poolparty/plugins/deploy_directory.rb +49 -0
- data/lib/poolparty/plugins/gem_package.rb +61 -0
- data/lib/poolparty/plugins/git.rb +41 -24
- data/lib/poolparty/plugins/line_in_file.rb +30 -0
- data/lib/poolparty/plugins/nanite.rb +41 -0
- data/lib/poolparty/plugins/rails_deploy.rb +76 -0
- data/lib/poolparty/plugins/svn.rb +56 -39
- data/lib/poolparty/poolparty/cloud.rb +137 -167
- data/lib/poolparty/poolparty/{base.rb → default.rb} +62 -25
- data/lib/poolparty/poolparty/key.rb +78 -0
- data/lib/poolparty/poolparty/loggable.rb +28 -27
- data/lib/poolparty/poolparty/neighborhoods.rb +102 -0
- data/lib/poolparty/poolparty/plugin.rb +53 -18
- data/lib/poolparty/poolparty/plugin_model.rb +20 -23
- data/lib/poolparty/poolparty/pool.rb +34 -26
- data/lib/poolparty/poolparty/poolparty_base_class.rb +190 -0
- data/lib/poolparty/poolparty/resource.rb +92 -178
- data/lib/poolparty/poolparty/script.rb +32 -20
- data/lib/poolparty/poolparty/service.rb +44 -0
- data/lib/poolparty/poolparty/template.rb +27 -0
- data/lib/poolparty/provision/boot_strapper.rb +164 -0
- data/lib/poolparty/provision/configurations/chef.rb +26 -0
- data/lib/poolparty/provision/configurations/puppet.rb +28 -0
- data/lib/poolparty/provision/dr_configure.rb +142 -0
- data/lib/poolparty/resources/cron.rb +51 -0
- data/lib/poolparty/resources/directory.rb +36 -0
- data/lib/poolparty/resources/exec.rb +47 -0
- data/lib/poolparty/resources/file.rb +73 -0
- data/lib/poolparty/resources/host.rb +37 -0
- data/lib/poolparty/resources/mount.rb +45 -0
- data/lib/poolparty/resources/package.rb +41 -0
- data/lib/poolparty/resources/remote_file.rb +52 -0
- data/lib/poolparty/resources/service.rb +41 -0
- data/lib/poolparty/resources/sshkey.rb +49 -0
- data/lib/poolparty/resources/symlink.rb +43 -0
- data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
- data/lib/poolparty/resources/variable.rb +34 -0
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/schema.rb +79 -0
- data/lib/poolparty/templates/apache2/apache2.conf +14 -0
- data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
- data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
- data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
- data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
- data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
- data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
- data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
- data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
- data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
- data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
- data/lib/poolparty/templates/apache2/server-status.erb +19 -0
- data/lib/poolparty/templates/erlang_cookie_maker +6 -0
- data/lib/poolparty/templates/gemrc_template +11 -0
- data/lib/poolparty/templates/ha.cf +1 -1
- data/lib/poolparty/templates/haproxy.conf +29 -27
- data/lib/poolparty/templates/haresources +2 -2
- data/lib/poolparty/templates/monitor.ru +16 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
- data/lib/poolparty/templates/puppet/puppet.conf +2 -0
- data/lib/poolparty/templates/puppet/puppetrunner +14 -0
- data/lib/poolparty/templates/puppet/site.pp +4 -0
- data/lib/poolparty/templates/puppetrunner +11 -5
- data/lib/poolparty/verification/verifier_base.rb +17 -0
- data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
- data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
- data/lib/poolparty/verification/verifiers/ping.rb +34 -0
- data/lib/poolparty/verification/verify.rb +76 -0
- data/lib/poolparty.rb +76 -22
- data/lib/poolpartycl.rb +66 -1
- data/script/destroy +1 -1
- data/script/generate +1 -1
- data/spec/bin/bin_spec_helper.rb +7 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +13 -0
- data/spec/bin/server-list-active_spec.rb +24 -0
- data/spec/poolparty/aska/aska_spec.rb +5 -5
- data/spec/poolparty/base_packages/haproxy_spec.rb +2 -8
- data/spec/poolparty/base_packages/heartbeat_spec.rb +3 -26
- data/spec/poolparty/bin/console_spec.rb +11 -29
- data/spec/poolparty/core/array_spec.rb +20 -3
- data/spec/poolparty/core/hash_spec.rb +30 -28
- data/spec/poolparty/core/object_spec.rb +2 -3
- data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
- data/spec/poolparty/core/string_spec.rb +1 -27
- data/spec/poolparty/dependencies_spec.rb +11 -0
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +107 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +122 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
- data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -0
- data/spec/poolparty/extra/deployments_spec.rb +9 -5
- data/spec/poolparty/fixtures/clouds.json +128 -0
- data/spec/poolparty/fixtures/test_template.erb +1 -0
- data/spec/poolparty/helpers/binary_spec.rb +1 -1
- data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
- data/spec/poolparty/helpers/optioner_spec.rb +1 -1
- data/spec/poolparty/id_rsa +27 -0
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +26 -111
- data/spec/poolparty/modules/definable_resource.rb +1 -1
- data/spec/poolparty/modules/file_writer_spec.rb +10 -4
- data/spec/poolparty/modules/searchable_paths_spec.rb +76 -0
- data/spec/poolparty/monitors/base_monitor_spec.rb +112 -111
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -16
- data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -47
- data/spec/poolparty/net/remote_instance_spec.rb +9 -73
- data/spec/poolparty/net/remote_spec.rb +287 -310
- data/spec/poolparty/net/remoter_base_spec.rb +3 -56
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +114 -0
- data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +51 -53
- data/spec/poolparty/net/remoter_spec.rb +96 -86
- data/spec/poolparty/plugins/chef_spec.rb +7 -0
- data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -52
- data/spec/poolparty/plugins/git_spec.rb +16 -20
- data/spec/poolparty/plugins/line_spec.rb +14 -8
- data/spec/poolparty/poolparty/cloud_spec.rb +85 -183
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +3 -4
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +7 -23
- data/spec/poolparty/poolparty/{base_spec.rb → default_spec.rb} +44 -41
- data/spec/poolparty/poolparty/example_spec.rb +43 -11
- data/spec/poolparty/poolparty/key_spec.rb +42 -0
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +65 -0
- data/spec/poolparty/poolparty/plugin_model_spec.rb +14 -24
- data/spec/poolparty/poolparty/plugin_spec.rb +25 -96
- data/spec/poolparty/poolparty/pool_spec.rb +3 -1
- data/spec/poolparty/poolparty/resource_spec.rb +70 -270
- data/spec/poolparty/poolparty/script_spec.rb +30 -53
- data/spec/poolparty/poolparty/service_spec.rb +5 -0
- data/spec/poolparty/poolparty/template_spec.rb +26 -0
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +8 -25
- data/spec/poolparty/poolparty_base_class_spec.rb +84 -0
- data/spec/poolparty/poolparty_spec.rb +7 -4
- data/spec/poolparty/resources/cron_spec.rb +44 -0
- data/spec/poolparty/resources/directory_spec.rb +40 -0
- data/spec/poolparty/resources/exec_spec.rb +37 -0
- data/spec/poolparty/resources/file_spec.rb +64 -0
- data/spec/poolparty/resources/gem_spec.rb +7 -0
- data/spec/poolparty/resources/host_spec.rb +35 -0
- data/spec/poolparty/resources/package_spec.rb +26 -0
- data/spec/poolparty/resources/service_spec.rb +29 -0
- data/spec/poolparty/resources/sshkey_spec.rb +40 -0
- data/spec/poolparty/resources/symlink_spec.rb +29 -0
- data/spec/poolparty/resources/user_spec.rb +48 -0
- data/spec/poolparty/resources/variable_spec.rb +26 -0
- data/spec/poolparty/schema_spec.rb +53 -0
- data/spec/poolparty/spec_helper.rb +107 -23
- data/spec/poolparty/test_spec_helper.rb +13 -0
- data/tasks/development.rake +85 -69
- data/tasks/poolparty.rake +54 -0
- data/tasks/server.rake +41 -39
- data/tasks/spec.rake +35 -1
- data/test/fixtures/test_template.erb +1 -0
- data/test/poolparty/core/array_test.rb +21 -0
- data/test/poolparty/core/hash_test.rb +34 -0
- data/test/poolparty/core/string_test.rb +29 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +90 -0
- data/test/poolparty/modules/callbacks_test.rb +40 -0
- data/test/poolparty/modules/cloud_dsl_test.rb +60 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
- data/test/poolparty/net/remoter_test.rb +14 -0
- data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
- data/test/poolparty/poolparty/template_test.rb +31 -0
- data/test/poolparty/provision/boot_strapper_test.rb +6 -0
- data/test/poolparty/provision/dr_configure_test.rb +6 -0
- data/test/poolparty/verification/verify_test.rb +49 -0
- data/test/test_helper.rb +8 -2
- data/test/test_poolparty.rb +6 -5
- data/vendor/chef/apache2/README.rdoc +59 -0
- data/vendor/chef/apache2/attributes/apache.rb +72 -0
- data/vendor/chef/apache2/definitions/apache_module.rb +36 -0
- data/vendor/chef/apache2/definitions/apache_site.rb +36 -0
- data/vendor/chef/apache2/definitions/web_app.rb +45 -0
- data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +41 -0
- data/vendor/chef/apache2/recipes/default.rb +132 -0
- data/vendor/chef/apache2/recipes/mod_alias.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_auth_basic.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_auth_digest.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authn_file.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_default.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_host.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_user.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_autoindex.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_cgi.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dav.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dav_svn.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_deflate.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dir.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_env.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_expires.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_fcgid.rb +35 -0
- data/vendor/chef/apache2/recipes/mod_headers.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_ldap.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_log_config.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_mime.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_negotiation.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_php5.rb +27 -0
- data/vendor/chef/apache2/recipes/mod_proxy.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_proxy_http.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_python.rb +22 -0
- data/vendor/chef/apache2/recipes/mod_rewrite.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_setenvif.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_ssl.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_status.rb +20 -0
- data/vendor/chef/apache2/templates/default/a2dismod.erb +22 -0
- data/vendor/chef/apache2/templates/default/a2dissite.erb +29 -0
- data/vendor/chef/apache2/templates/default/a2enmod.erb +37 -0
- data/vendor/chef/apache2/templates/default/a2ensite.erb +38 -0
- data/vendor/chef/apache2/templates/default/apache2.conf.erb +630 -0
- data/vendor/chef/apache2/templates/default/default-site.erb +45 -0
- data/vendor/chef/apache2/templates/default/port_apache.erb +2 -0
- data/vendor/chef/apache2/templates/default/ports.conf.erb +6 -0
- data/vendor/chef/apache2/templates/default/web_app.conf.erb +43 -0
- data/vendor/chef/chef-deploy/LICENSE +201 -0
- data/vendor/chef/chef-deploy/README.rdoc +24 -0
- data/vendor/chef/chef-deploy/Rakefile +57 -0
- data/vendor/chef/chef-deploy/TODO +4 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
- data/vendor/gems/butterfly/History.txt +4 -0
- data/vendor/gems/butterfly/PostInstall.txt +2 -0
- data/vendor/gems/butterfly/README.rdoc +48 -0
- data/vendor/gems/butterfly/Rakefile +62 -0
- data/vendor/gems/butterfly/VERSION.yml +4 -0
- data/vendor/gems/butterfly/bin/flutter +4 -0
- data/vendor/gems/butterfly/butterfly.gemspec +37 -0
- data/vendor/gems/butterfly/examples/config.ru +15 -0
- data/vendor/gems/butterfly/examples/my_app.rb +12 -0
- data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
- data/vendor/gems/butterfly/lib/handler.rb +48 -0
- data/vendor/gems/butterfly/lib/request.rb +29 -0
- data/vendor/gems/butterfly/lib/response.rb +49 -0
- data/vendor/gems/butterfly/script/console +10 -0
- data/vendor/gems/butterfly/script/destroy +14 -0
- data/vendor/gems/butterfly/script/generate +14 -0
- data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
- data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
- data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
- data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
- data/vendor/gems/butterfly/test/test_default.rb +12 -0
- data/vendor/gems/butterfly/test/test_helper.rb +6 -0
- data/vendor/gems/dslify/History.txt +4 -0
- data/vendor/gems/dslify/Manifest.txt +25 -0
- data/vendor/gems/dslify/PostInstall.txt +5 -0
- data/vendor/gems/dslify/README.txt +60 -0
- data/vendor/gems/dslify/Rakefile +56 -0
- data/{config → vendor/gems/dslify/config}/hoe.rb +12 -55
- data/vendor/gems/dslify/config/requirements.rb +15 -0
- data/vendor/gems/dslify/dslify.gemspec +40 -0
- data/vendor/gems/dslify/lib/dslify/dslify.rb +76 -0
- data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
- data/vendor/gems/dslify/lib/dslify.rb +7 -0
- data/vendor/gems/dslify/script/console +10 -0
- data/vendor/gems/dslify/script/destroy +14 -0
- data/vendor/gems/dslify/script/generate +14 -0
- data/{script → vendor/gems/dslify/script}/txt2html +4 -4
- data/{setup.rb → vendor/gems/dslify/setup.rb} +3 -3
- data/{tasks → vendor/gems/dslify/tasks}/deployment.rake +4 -18
- data/vendor/gems/dslify/tasks/environment.rake +7 -0
- data/{tasks → vendor/gems/dslify/tasks}/website.rake +0 -0
- data/vendor/gems/dslify/test/test_dslify.rb +138 -0
- data/vendor/gems/dslify/website/index.html +86 -0
- data/vendor/gems/dslify/website/index.txt +83 -0
- data/{website → vendor/gems/dslify/website}/javascripts/rounded_corners_lite.inc.js +0 -0
- data/{website → vendor/gems/dslify/website}/stylesheets/screen.css +18 -27
- data/{website → vendor/gems/dslify/website}/template.html.erb +1 -2
- data/vendor/gems/parenting/History.txt +4 -0
- data/vendor/gems/parenting/Manifest.txt +14 -0
- data/vendor/gems/parenting/PostInstall.txt +2 -0
- data/vendor/gems/parenting/README.rdoc +47 -0
- data/vendor/gems/parenting/Rakefile +28 -0
- data/vendor/gems/parenting/lib/parenting/parenting.rb +61 -0
- data/vendor/gems/parenting/lib/parenting.rb +10 -0
- data/vendor/gems/parenting/parenting.gemspec +39 -0
- data/vendor/gems/parenting/script/console +10 -0
- data/vendor/gems/parenting/script/destroy +14 -0
- data/vendor/gems/parenting/script/generate +14 -0
- data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
- data/vendor/gems/parenting/test/test_helper.rb +5 -0
- data/vendor/gems/parenting/test/test_parenting.rb +117 -0
- data/vendor/gems/suitcase/LICENSE +20 -0
- data/vendor/gems/suitcase/README.rdoc +31 -0
- data/vendor/gems/suitcase/Rakefile +57 -0
- data/vendor/gems/suitcase/VERSION.yml +4 -0
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +119 -0
- data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
- data/vendor/gems/suitcase/suitcase.gemspec +32 -0
- data/vendor/gems/suitcase/test/suitcase_test.rb +102 -0
- data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
- data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
- data/vendor/gems/suitcase/test/test_helper.rb +12 -0
- metadata +370 -343
- data/Capfile +0 -1
- data/Manifest.txt +0 -414
- data/bin/cloud-add-keypair +0 -28
- data/bin/cloud-ensure-provisioning +0 -39
- data/bin/cloud-maintain +0 -30
- data/bin/cloud-refresh +0 -17
- data/bin/cloud-run +0 -18
- data/bin/cloud-stats +0 -17
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/pool +0 -31
- data/bin/pool-describe +0 -8
- data/bin/pool-generate +0 -18
- data/bin/pool-init +0 -28
- data/bin/pool-list +0 -30
- data/bin/pool-start +0 -26
- data/bin/server-build-messenger +0 -27
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-list-responding +0 -24
- data/bin/server-start-client +0 -29
- data/bin/server-start-master +0 -26
- data/bin/server-start-node +0 -32
- data/bin/server-stop-client +0 -3
- data/bin/server-stop-master +0 -3
- data/bin/server-stop-node +0 -3
- data/bin/server-update-hosts +0 -49
- data/lib/erlang/messenger/Emakefile +0 -1
- data/lib/erlang/messenger/Makefile +0 -15
- data/lib/erlang/messenger/README +0 -5
- data/lib/erlang/messenger/Rakefile +0 -72
- data/lib/erlang/messenger/control +0 -11
- data/lib/erlang/messenger/ebin/client.app +0 -19
- data/lib/erlang/messenger/ebin/client_app.beam +0 -0
- data/lib/erlang/messenger/ebin/client_server.beam +0 -0
- data/lib/erlang/messenger/ebin/erl_crash.dump +0 -10326
- data/lib/erlang/messenger/ebin/master.app +0 -19
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node.app +0 -19
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/packager.app +0 -19
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/include/defines.hrl +0 -27
- data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
- data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
- data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
- data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
- data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
- data/lib/erlang/messenger/lib/eunit/README +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
- data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
- data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
- data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
- data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
- data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
- data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
- data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
- data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
- data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
- data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
- data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
- data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
- data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
- data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
- data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
- data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
- data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
- data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
- data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
- data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
- data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
- data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
- data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
- data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
- data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
- data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
- data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
- data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
- data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
- data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
- data/lib/erlang/messenger/src/client_app.erl +0 -39
- data/lib/erlang/messenger/src/client_server.erl +0 -60
- data/lib/erlang/messenger/src/master_app.erl +0 -39
- data/lib/erlang/messenger/src/node_app.erl +0 -39
- data/lib/erlang/messenger/src/pm_client.erl +0 -49
- data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
- data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
- data/lib/erlang/messenger/src/pm_master.erl +0 -215
- data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
- data/lib/erlang/messenger/src/pm_node.erl +0 -200
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_packager.erl +0 -76
- data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
- data/lib/erlang/messenger/src/pm_strings.erl +0 -11
- data/lib/erlang/messenger/src/utils.erl +0 -73
- data/lib/erlang/messenger/useful_snippets +0 -17
- data/lib/poolparty/capistrano.rb +0 -18
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/dependency_resolutions/base.rb +0 -12
- data/lib/poolparty/modules/configurable.rb +0 -36
- data/lib/poolparty/modules/method_missing_sugar.rb +0 -58
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +0 -15
- data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
- data/lib/poolparty/net/messenger.rb +0 -72
- data/lib/poolparty/net/remote.rb +0 -38
- data/lib/poolparty/net/remote_bases/ec2.rb +0 -190
- data/lib/poolparty/net/remoter.rb +0 -343
- data/lib/poolparty/plugins/deploydirectory.rb +0 -71
- data/lib/poolparty/plugins/line.rb +0 -77
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -26
- data/lib/poolparty/poolparty/custom_resource.rb +0 -45
- data/lib/poolparty/poolparty/resources/class_package.rb +0 -105
- data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
- data/lib/poolparty/poolparty/resources/cron.rb +0 -14
- data/lib/poolparty/poolparty/resources/custom_service.rb +0 -30
- data/lib/poolparty/poolparty/resources/directory.rb +0 -26
- data/lib/poolparty/poolparty/resources/exec.rb +0 -28
- data/lib/poolparty/poolparty/resources/file.rb +0 -23
- data/lib/poolparty/poolparty/resources/gem_package.rb +0 -52
- data/lib/poolparty/poolparty/resources/host.rb +0 -14
- data/lib/poolparty/poolparty/resources/mount.rb +0 -22
- data/lib/poolparty/poolparty/resources/package.rb +0 -24
- data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
- data/lib/poolparty/poolparty/resources/service.rb +0 -21
- data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
- data/lib/poolparty/poolparty/resources/symlink.rb +0 -25
- data/lib/poolparty/poolparty/resources/variable.rb +0 -32
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +0 -127
- data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +0 -58
- data/lib/poolparty/provisioners/capistrano/recipies/base.rb +0 -104
- data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -121
- data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +0 -12
- data/lib/poolparty/provisioners/provisioner_base.rb +0 -204
- data/lib/poolparty/spec/core/string.rb +0 -16
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
- data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
- data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
- data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
- data/lib/poolparty/spec/matchers/have_file.rb +0 -28
- data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
- data/lib/poolparty/spec/matchers/have_git.rb +0 -28
- data/lib/poolparty/spec/matchers/have_host.rb +0 -28
- data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
- data/lib/poolparty/spec/matchers/have_package.rb +0 -28
- data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
- data/lib/poolparty/spec/matchers/have_service.rb +0 -28
- data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
- data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
- data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
- data/lib/poolparty/spec/templates/have_base.rb +0 -28
- data/lib/poolparty/templates/puppet.conf +0 -26
- data/lib/poolparty/templates/puppetcleaner +0 -12
- data/lib/poolparty/templates/puppetrerun +0 -22
- data/lib/poolparty/version.rb +0 -9
- data/lib/poolpartyspec.rb +0 -34
- data/log/pool.log +0 -0
- data/poolparty.gemspec +0 -580
- data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
- data/spec/poolparty/modules/configurable_spec.rb +0 -29
- data/spec/poolparty/net/log/pool.log +0 -0
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/plugins/svn_spec.rb +0 -16
- data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -120
- data/spec/poolparty/poolparty/resources/class_package_spec.rb +0 -120
- data/spec/poolparty/poolparty/resources/conditional_spec.rb +0 -77
- data/spec/poolparty/poolparty/resources/cron_spec.rb +0 -50
- data/spec/poolparty/poolparty/resources/directory_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/exec_spec.rb +0 -37
- data/spec/poolparty/poolparty/resources/file_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/gem_spec.rb +0 -46
- data/spec/poolparty/poolparty/resources/host_spec.rb +0 -28
- data/spec/poolparty/poolparty/resources/package_spec.rb +0 -44
- data/spec/poolparty/poolparty/resources/remote_file_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/service_spec.rb +0 -45
- data/spec/poolparty/poolparty/resources/sshkey_spec.rb +0 -48
- data/spec/poolparty/poolparty/resources/symlink_spec.rb +0 -22
- data/spec/poolparty/poolparty/resources/user_spec.rb +0 -38
- data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
- data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +0 -27
- data/spec/poolparty/provisioners/provisioner_base_spec.rb +0 -120
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
- data/website/index.html +0 -107
- data/website/index.txt +0 -95
- data/website/stylesheets/code.css +0 -29
|
@@ -7,10 +7,8 @@ task :deploy => [:check_version, :website, :release] do
|
|
|
7
7
|
puts "Tagging release #{CHANGES}"
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
desc "Deploy the gem locally"
|
|
13
|
-
task :local_deploy => [:website_generate, :build_local_gem, :install_gem_no_doc]
|
|
10
|
+
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
|
11
|
+
task :local_deploy => [:website_generate, :install_gem]
|
|
14
12
|
|
|
15
13
|
task :check_version do
|
|
16
14
|
unless ENV['VERSION']
|
|
@@ -24,25 +22,13 @@ task :check_version do
|
|
|
24
22
|
end
|
|
25
23
|
|
|
26
24
|
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
|
27
|
-
task :install_gem_no_doc do
|
|
25
|
+
task :install_gem_no_doc => [:clean, :package] do
|
|
28
26
|
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
|
29
27
|
end
|
|
30
28
|
|
|
31
|
-
desc "Ensure .hoerc exists in the homedirectory. Create it if it doesn't"
|
|
32
|
-
task :hoerc do
|
|
33
|
-
str =<<-EOE
|
|
34
|
-
---
|
|
35
|
-
publish_on_announce: true
|
|
36
|
-
exclude: !ruby/regexp
|
|
37
|
-
/tmp$|\.git$|log$|local/.*\.rb$|Makefile|\.beam$/
|
|
38
|
-
EOE
|
|
39
|
-
hoerc_path = ::File.join( ENV["HOME"], ".hoerc" )
|
|
40
|
-
::File.open(hoerc_path, "w+") {|f| f << str } unless ::File.file?(hoerc_path)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
29
|
namespace :manifest do
|
|
44
30
|
desc 'Recreate Manifest.txt to include ALL files'
|
|
45
|
-
task :refresh
|
|
31
|
+
task :refresh do
|
|
46
32
|
`rake check_manifest | patch -p0 > Manifest.txt`
|
|
47
33
|
end
|
|
48
34
|
end
|
|
File without changes
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
require "rubygems"
|
|
2
|
+
require "#{::File.dirname(__FILE__)}/../lib/dslify"
|
|
3
|
+
require "matchy"
|
|
4
|
+
require "context"
|
|
5
|
+
|
|
6
|
+
class Quickie
|
|
7
|
+
include Dslify
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class QuickieTest < Test::Unit::TestCase
|
|
11
|
+
context "setting" do
|
|
12
|
+
before do
|
|
13
|
+
@q = Quickie.new
|
|
14
|
+
end
|
|
15
|
+
it "should be able to set methods on self" do
|
|
16
|
+
lambda{@q.bank "bobs"}.should_not raise_error
|
|
17
|
+
end
|
|
18
|
+
it "should set and then retrieve the same value back" do
|
|
19
|
+
@q.snobs "are mean"
|
|
20
|
+
@q.snobs.should == "are mean"
|
|
21
|
+
end
|
|
22
|
+
it "should set and retrieve values back with an = sign" do
|
|
23
|
+
@q.author = "Ari Lerner"
|
|
24
|
+
@q.author.should == "Ari Lerner"
|
|
25
|
+
end
|
|
26
|
+
it "should set these values in the h Hash on the object" do
|
|
27
|
+
@q.movies "can be fun"
|
|
28
|
+
@q.dsl_options.keys.should == [:movies]
|
|
29
|
+
end
|
|
30
|
+
it "should set multiple keys with set_vars_from_options" do
|
|
31
|
+
@q.set_vars_from_options({:a => "a", :b => "b"})
|
|
32
|
+
@q.a.should == "a"
|
|
33
|
+
@q.b.should == "b"
|
|
34
|
+
end
|
|
35
|
+
it "should set methods even when they are called with a block" do
|
|
36
|
+
@q.bobs Quickie.new do
|
|
37
|
+
end
|
|
38
|
+
@q.bobs.class.should == Quickie
|
|
39
|
+
end
|
|
40
|
+
it "should set the methods on the inner block" do
|
|
41
|
+
@q.bobs Quickie.new do
|
|
42
|
+
franks "franke"
|
|
43
|
+
end
|
|
44
|
+
@q.bobs.franks.should == "franke"
|
|
45
|
+
end
|
|
46
|
+
it "should not blow up when called with a ? at the end of the method" do
|
|
47
|
+
@q.set_vars_from_options({:pete => "and pete"})
|
|
48
|
+
lambda{@q.pete?}.should_not raise_error
|
|
49
|
+
end
|
|
50
|
+
it "should return false if the method exists" do
|
|
51
|
+
@q.bones "is a tv show"
|
|
52
|
+
@q.bops?.should == false
|
|
53
|
+
end
|
|
54
|
+
it "should return true if the option is set" do
|
|
55
|
+
@q.bones "is a tv show"
|
|
56
|
+
@q.bones?.should == true
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context "default options" do
|
|
61
|
+
setup do
|
|
62
|
+
class Bang
|
|
63
|
+
include Dslify
|
|
64
|
+
default_options(
|
|
65
|
+
:says => 'vmrun'
|
|
66
|
+
)
|
|
67
|
+
def initialize(opts={}, &block)
|
|
68
|
+
instance_eval &block if block
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
@bang = Bang.new
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
should "overwrite the default dsl option in instance_eval" do
|
|
75
|
+
@bang.says.should == "vmrun"
|
|
76
|
+
@bang = Bang.new do
|
|
77
|
+
says "snake"
|
|
78
|
+
end
|
|
79
|
+
@bang.says.should == "snake"
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
context "with inheritance and classes" do
|
|
85
|
+
before do
|
|
86
|
+
class Pop
|
|
87
|
+
include Dslify
|
|
88
|
+
def initialize(h={})
|
|
89
|
+
dsl_options h
|
|
90
|
+
end
|
|
91
|
+
default_options :name => "pop"
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
class Foo < Pop
|
|
95
|
+
default_options :name=>'fooey'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
class Bar < Pop
|
|
99
|
+
default_options :name=>'pangy', :taste => "spicy"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class Dad < Pop
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
@pop = Pop.new
|
|
106
|
+
@poptart = Pop.new :name => "Cinnamon"
|
|
107
|
+
@foo = Foo.new
|
|
108
|
+
@bar = Bar.new
|
|
109
|
+
end
|
|
110
|
+
it "should take the default options set on the class" do
|
|
111
|
+
@pop.dsl_options[:name].should == "pop"
|
|
112
|
+
end
|
|
113
|
+
it "should allow us to add defaults on the instance by calling dsl_options" do
|
|
114
|
+
@poptart.name.should == "Cinnamon"
|
|
115
|
+
end
|
|
116
|
+
it "should take the default options on a second class that inherits from the base" do
|
|
117
|
+
@foo.name.should == "fooey"
|
|
118
|
+
end
|
|
119
|
+
it "should take the default options on a third inheriting class" do
|
|
120
|
+
@bar.name.should == "pangy"
|
|
121
|
+
end
|
|
122
|
+
it "should not add a method not in the default_dsl_options" do
|
|
123
|
+
@bar.respond_to?(:boat).should == false
|
|
124
|
+
end
|
|
125
|
+
it "should return the original default options test" do
|
|
126
|
+
@bar.default_dsl_options[:taste].should == "spicy"
|
|
127
|
+
@bar.default_dsl_options[:name].should == "pangy"
|
|
128
|
+
end
|
|
129
|
+
it "should set the default options of the child to the superclass's if it doesn't exist" do
|
|
130
|
+
Dad.new.name.should == "pop"
|
|
131
|
+
end
|
|
132
|
+
it "should raise if the method isn't found on itself, the parent or in the rest of the method missing chain" do
|
|
133
|
+
lambda {
|
|
134
|
+
Class.new.sanitorium
|
|
135
|
+
}.should raise_error
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
7
|
+
<title>
|
|
8
|
+
dslify
|
|
9
|
+
</title>
|
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
|
11
|
+
<style>
|
|
12
|
+
|
|
13
|
+
</style>
|
|
14
|
+
<script type="text/javascript">
|
|
15
|
+
window.onload = function() {
|
|
16
|
+
settings = {
|
|
17
|
+
tl: { radius: 10 },
|
|
18
|
+
tr: { radius: 10 },
|
|
19
|
+
bl: { radius: 10 },
|
|
20
|
+
br: { radius: 10 },
|
|
21
|
+
antiAlias: true,
|
|
22
|
+
autoPad: true,
|
|
23
|
+
validTags: ["div"]
|
|
24
|
+
}
|
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
|
26
|
+
versionBox.applyCornersToAll();
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
</head>
|
|
30
|
+
<body>
|
|
31
|
+
<div id="main">
|
|
32
|
+
|
|
33
|
+
<h1>dslify</h1>
|
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/dslify"; return false'>
|
|
35
|
+
<p>Get Version</p>
|
|
36
|
+
<a href="http://rubyforge.org/projects/dslify" class="numbers">0.0.4</a>
|
|
37
|
+
</div>
|
|
38
|
+
<h1>&#x2192; ‘dslify’</h1>
|
|
39
|
+
<h2>What</h2>
|
|
40
|
+
<h2>Installing</h2>
|
|
41
|
+
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">dslify</span></pre></p>
|
|
42
|
+
<h2>The basics</h2>
|
|
43
|
+
<h2>Demonstration of usage</h2>
|
|
44
|
+
<h2>Forum</h2>
|
|
45
|
+
<p><a href="http://groups.google.com/group/dslify">http://groups.google.com/group/dslify</a></p>
|
|
46
|
+
<p><span class="caps">TODO</span> – create Google Group – dslify</p>
|
|
47
|
+
<h2>How to submit patches</h2>
|
|
48
|
+
<p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people’s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
|
|
49
|
+
<p><span class="caps">TODO</span> – pick <span class="caps">SVN</span> or Git instructions</p>
|
|
50
|
+
<p>The trunk repository is <code>svn://rubyforge.org/var/svn/dslify/trunk</code> for anonymous access.</p>
|
|
51
|
+
<p><span class="caps">OOOORRRR</span></p>
|
|
52
|
+
<p>You can fetch the source from either:</p>
|
|
53
|
+
<ul>
|
|
54
|
+
<li>rubyforge: <span class="caps">MISSING</span> IN <span class="caps">ACTION</span></li>
|
|
55
|
+
</ul>
|
|
56
|
+
<p><span class="caps">TODO</span> – You can not created a RubyForge project, OR have not run <code>rubyforge config</code><br />
|
|
57
|
+
yet to refresh your local rubyforge data with this projects’ id information.</p>
|
|
58
|
+
<p>When you do this, this message will magically disappear!</p>
|
|
59
|
+
<p>Or you can hack website/index.txt and make it all go away!!</p>
|
|
60
|
+
<ul>
|
|
61
|
+
<li>github: <a href="http://github.com/GITHUB_USERNAME/dslify/tree/master">http://github.com/GITHUB_USERNAME/dslify/tree/master</a></li>
|
|
62
|
+
</ul>
|
|
63
|
+
<pre>git clone git://github.com/GITHUB_USERNAME/dslify.git</pre>
|
|
64
|
+
<p><span class="caps">TODO</span> – add “github_username: username” to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.</p>
|
|
65
|
+
<ul>
|
|
66
|
+
<li>gitorious: <a href="git://gitorious.org/dslify/mainline.git">git://gitorious.org/dslify/mainline.git</a></li>
|
|
67
|
+
</ul>
|
|
68
|
+
<pre>git clone git://gitorious.org/dslify/mainline.git</pre>
|
|
69
|
+
<h3>Build and test instructions</h3>
|
|
70
|
+
<pre>cd dslify
|
|
71
|
+
rake test
|
|
72
|
+
rake install_gem</pre>
|
|
73
|
+
<h2>License</h2>
|
|
74
|
+
<p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
|
|
75
|
+
<h2>Contact</h2>
|
|
76
|
+
<p>Comments are welcome. Send an email to <a href="mailto:FIXME"><span class="caps">FIXME</span> full name</a> email via the <a href="http://groups.google.com/group/dslify">forum</a></p>
|
|
77
|
+
<p class="coda">
|
|
78
|
+
<a href="FIXME email">FIXME full name</a>, 26th January 2009<br>
|
|
79
|
+
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
|
80
|
+
</p>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
|
84
|
+
|
|
85
|
+
</body>
|
|
86
|
+
</html>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
h1. dslify
|
|
2
|
+
|
|
3
|
+
h1. → 'dslify'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
h2. What
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
h2. Installing
|
|
10
|
+
|
|
11
|
+
<pre syntax="ruby">sudo gem install dslify</pre>
|
|
12
|
+
|
|
13
|
+
h2. The basics
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
h2. Demonstration of usage
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
h2. Forum
|
|
21
|
+
|
|
22
|
+
"http://groups.google.com/group/dslify":http://groups.google.com/group/dslify
|
|
23
|
+
|
|
24
|
+
TODO - create Google Group - dslify
|
|
25
|
+
|
|
26
|
+
h2. How to submit patches
|
|
27
|
+
|
|
28
|
+
Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
|
|
29
|
+
|
|
30
|
+
TODO - pick SVN or Git instructions
|
|
31
|
+
|
|
32
|
+
The trunk repository is <code>svn://rubyforge.org/var/svn/dslify/trunk</code> for anonymous access.
|
|
33
|
+
|
|
34
|
+
OOOORRRR
|
|
35
|
+
|
|
36
|
+
You can fetch the source from either:
|
|
37
|
+
|
|
38
|
+
<% if rubyforge_project_id %>
|
|
39
|
+
|
|
40
|
+
* rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
|
|
41
|
+
|
|
42
|
+
<pre>git clone git://rubyforge.org/dslify.git</pre>
|
|
43
|
+
|
|
44
|
+
<% else %>
|
|
45
|
+
|
|
46
|
+
* rubyforge: MISSING IN ACTION
|
|
47
|
+
|
|
48
|
+
TODO - You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
|
|
49
|
+
yet to refresh your local rubyforge data with this projects' id information.
|
|
50
|
+
|
|
51
|
+
When you do this, this message will magically disappear!
|
|
52
|
+
|
|
53
|
+
Or you can hack website/index.txt and make it all go away!!
|
|
54
|
+
|
|
55
|
+
<% end %>
|
|
56
|
+
|
|
57
|
+
* github: "http://github.com/GITHUB_USERNAME/dslify/tree/master":http://github.com/GITHUB_USERNAME/dslify/tree/master
|
|
58
|
+
|
|
59
|
+
<pre>git clone git://github.com/GITHUB_USERNAME/dslify.git</pre>
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
TODO - add "github_username: username" to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
* gitorious: "git://gitorious.org/dslify/mainline.git":git://gitorious.org/dslify/mainline.git
|
|
66
|
+
|
|
67
|
+
<pre>git clone git://gitorious.org/dslify/mainline.git</pre>
|
|
68
|
+
|
|
69
|
+
h3. Build and test instructions
|
|
70
|
+
|
|
71
|
+
<pre>cd dslify
|
|
72
|
+
rake test
|
|
73
|
+
rake install_gem</pre>
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
h2. License
|
|
77
|
+
|
|
78
|
+
This code is free to use under the terms of the MIT license.
|
|
79
|
+
|
|
80
|
+
h2. Contact
|
|
81
|
+
|
|
82
|
+
Comments are welcome. Send an email to "FIXME full name":mailto:FIXME email via the "forum":http://groups.google.com/group/dslify
|
|
83
|
+
|
|
File without changes
|
|
@@ -77,34 +77,24 @@ td {
|
|
|
77
77
|
.unknown {
|
|
78
78
|
color: #995000;
|
|
79
79
|
}
|
|
80
|
-
pre {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
pre, code {
|
|
81
|
+
font-family: monospace;
|
|
82
|
+
font-size: 90%;
|
|
83
|
+
line-height: 1.4em;
|
|
84
|
+
color: #ff8;
|
|
85
|
+
background-color: #111;
|
|
86
|
+
padding: 2px 10px 2px 10px;
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
pre .string { color: #944; }
|
|
99
|
-
pre .char { color: #F07; }
|
|
100
|
-
pre .ident { color: #004; }
|
|
101
|
-
pre .constant { color: #07F; }
|
|
102
|
-
pre .regex { color: #B66; background: #FEF; }
|
|
103
|
-
pre .number { color: #A11; }
|
|
104
|
-
pre .attribute { color: #5bb; }
|
|
105
|
-
pre .global { color: #7FB; }
|
|
106
|
-
pre .expr { color: #227; }
|
|
107
|
-
pre .escape { color: #277; }
|
|
88
|
+
.comment { color: #aaa; font-style: italic; }
|
|
89
|
+
.keyword { color: #eff; font-weight: bold; }
|
|
90
|
+
.punct { color: #eee; font-weight: bold; }
|
|
91
|
+
.symbol { color: #0bb; }
|
|
92
|
+
.string { color: #6b4; }
|
|
93
|
+
.ident { color: #ff8; }
|
|
94
|
+
.constant { color: #66f; }
|
|
95
|
+
.regex { color: #ec6; }
|
|
96
|
+
.number { color: #F99; }
|
|
97
|
+
.expr { color: #227; }
|
|
108
98
|
|
|
109
99
|
#version {
|
|
110
100
|
float: right;
|
|
@@ -145,3 +135,4 @@ pre .escape { color: #277; }
|
|
|
145
135
|
cursor: pointer;
|
|
146
136
|
cursor: hand;
|
|
147
137
|
}
|
|
138
|
+
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
<%= title %>
|
|
9
9
|
</title>
|
|
10
10
|
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
|
11
|
-
<link href="stylesheets/code.css" media="screen" rel="stylesheet" type="text/css" />
|
|
12
11
|
<style>
|
|
13
12
|
|
|
14
13
|
</style>
|
|
@@ -38,7 +37,7 @@
|
|
|
38
37
|
</div>
|
|
39
38
|
<%= body %>
|
|
40
39
|
<p class="coda">
|
|
41
|
-
<a href="
|
|
40
|
+
<a href="FIXME email">FIXME full name</a>, <%= modified.pretty %><br>
|
|
42
41
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
|
43
42
|
</p>
|
|
44
43
|
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
History.txt
|
|
2
|
+
Manifest.txt
|
|
3
|
+
PostInstall.txt
|
|
4
|
+
README.rdoc
|
|
5
|
+
Rakefile
|
|
6
|
+
lib/parenting.rb
|
|
7
|
+
lib/parenting/parenting.rb
|
|
8
|
+
parenting.gemspec
|
|
9
|
+
script/console
|
|
10
|
+
script/destroy
|
|
11
|
+
script/generate
|
|
12
|
+
test/file_to_eval.rb
|
|
13
|
+
test/test_helper.rb
|
|
14
|
+
test/test_parenting.rb
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
= Parenting
|
|
2
|
+
|
|
3
|
+
http://poolpartyrb.com
|
|
4
|
+
|
|
5
|
+
== DESCRIPTION:
|
|
6
|
+
|
|
7
|
+
Easily add parents to classes
|
|
8
|
+
|
|
9
|
+
== SYNOPSIS:
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
|
|
13
|
+
Subclass parenting::base:
|
|
14
|
+
|
|
15
|
+
class Quickie < Parenting::Base
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Then, use to your heart's content! When you instance_eval in a block, your parent will be set with parent. This is handled with a context stack that is globally accessible. You can get the object's current context by calling current_context on an object (at runtime).
|
|
19
|
+
|
|
20
|
+
== INSTALL:
|
|
21
|
+
|
|
22
|
+
sudo gem install auser-parenting
|
|
23
|
+
|
|
24
|
+
== LICENSE:
|
|
25
|
+
|
|
26
|
+
(The MIT License)
|
|
27
|
+
|
|
28
|
+
Copyright (c) 2009 Ari Lerner, Michael Fairchild, CloudTeam @ AT&T interactive
|
|
29
|
+
|
|
30
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
31
|
+
a copy of this software and associated documentation files (the
|
|
32
|
+
'Software'), to deal in the Software without restriction, including
|
|
33
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
34
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
35
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
36
|
+
the following conditions:
|
|
37
|
+
|
|
38
|
+
The above copyright notice and this permission notice shall be
|
|
39
|
+
included in all copies or substantial portions of the Software.
|
|
40
|
+
|
|
41
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
42
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
43
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
44
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
45
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
46
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
47
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
%w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
|
2
|
+
require File.dirname(__FILE__) + '/lib/parenting'
|
|
3
|
+
|
|
4
|
+
# Generate all the Rake tasks
|
|
5
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
|
6
|
+
$hoe = Hoe.new('parenting', Parenting::VERSION) do |p|
|
|
7
|
+
p.developer('Ari Lerner', 'arilerner@mac.com')
|
|
8
|
+
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
|
9
|
+
p.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
|
|
10
|
+
p.rubyforge_name = p.name # TODO this is default value
|
|
11
|
+
# p.extra_deps = [
|
|
12
|
+
# ['activesupport','>= 2.0.2'],
|
|
13
|
+
# ]
|
|
14
|
+
p.extra_dev_deps = [
|
|
15
|
+
['newgem', ">= #{::Newgem::VERSION}"]
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
|
19
|
+
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
|
20
|
+
p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
|
|
21
|
+
p.rsync_args = '-av --delete --ignore-errors'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
require 'newgem/tasks' # load /tasks/*.rake
|
|
25
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
|
26
|
+
|
|
27
|
+
# TODO - want other tests/tasks run by default? Add them to the list
|
|
28
|
+
# task :default => [:spec, :features]
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module Parenting
|
|
2
|
+
module ClassMethods
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
module InstanceMethods
|
|
6
|
+
def context_stack
|
|
7
|
+
$context_stack ||= []
|
|
8
|
+
end
|
|
9
|
+
def run_in_context(&block)
|
|
10
|
+
@parent = parent
|
|
11
|
+
|
|
12
|
+
context_stack.push self
|
|
13
|
+
this_context.instance_eval(&block) if block
|
|
14
|
+
context_stack.pop
|
|
15
|
+
head
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def head
|
|
19
|
+
context_stack.first
|
|
20
|
+
end
|
|
21
|
+
def this_context
|
|
22
|
+
# @this_context ||= context_stack.last
|
|
23
|
+
context_stack.last
|
|
24
|
+
end
|
|
25
|
+
def parent
|
|
26
|
+
@parent ||= current_context[-1] == self ? current_context[-2] : current_context[-1]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def current_context
|
|
30
|
+
@current_context ||= context_stack[0..depth]
|
|
31
|
+
end
|
|
32
|
+
def depth
|
|
33
|
+
@depth ||= context_stack.size
|
|
34
|
+
end
|
|
35
|
+
def this
|
|
36
|
+
@this ||= self
|
|
37
|
+
end
|
|
38
|
+
def method_missing(m,*args,&block)
|
|
39
|
+
if block
|
|
40
|
+
if args.empty?
|
|
41
|
+
super
|
|
42
|
+
else
|
|
43
|
+
inst = args[0]
|
|
44
|
+
context_stack.push self
|
|
45
|
+
inst.instance_eval(&block)
|
|
46
|
+
context_stack.pop
|
|
47
|
+
end
|
|
48
|
+
else
|
|
49
|
+
if respond_to?(:parent) && parent != self && parent.respond_to?(m)
|
|
50
|
+
parent.send(m,*args,&block)
|
|
51
|
+
else
|
|
52
|
+
super
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
def self.included(receiver)
|
|
58
|
+
receiver.extend ClassMethods
|
|
59
|
+
receiver.send :include, InstanceMethods
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
module Parenting
|
|
5
|
+
VERSION = '0.0.4' unless const_defined?(:VERSION)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# Dir["parenting/core/*.rb"].each {|lib| require lib }
|
|
9
|
+
|
|
10
|
+
require "parenting/parenting"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = %q{parenting}
|
|
5
|
+
s.version = "0.0.4"
|
|
6
|
+
|
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
|
+
s.authors = ["Ari Lerner"]
|
|
9
|
+
s.date = %q{2009-04-30}
|
|
10
|
+
s.description = %q{Easily add parents to classes}
|
|
11
|
+
s.email = ["arilerner@mac.com"]
|
|
12
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc"]
|
|
13
|
+
s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "lib/parenting.rb", "lib/parenting/parenting.rb", "parenting.gemspec", "script/console", "script/destroy", "script/generate", "test/file_to_eval.rb", "test/test_helper.rb", "test/test_parenting.rb"]
|
|
14
|
+
s.has_rdoc = true
|
|
15
|
+
s.homepage = %q{http://poolpartyrb.com}
|
|
16
|
+
s.post_install_message = %q{PostInstall.txt}
|
|
17
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
|
18
|
+
s.require_paths = ["lib"]
|
|
19
|
+
s.rubyforge_project = %q{parenting}
|
|
20
|
+
s.rubygems_version = %q{1.3.2}
|
|
21
|
+
s.summary = %q{Easily add parents to classes}
|
|
22
|
+
s.test_files = ["test/test_helper.rb", "test/test_parenting.rb"]
|
|
23
|
+
|
|
24
|
+
if s.respond_to? :specification_version then
|
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
26
|
+
s.specification_version = 3
|
|
27
|
+
|
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
29
|
+
s.add_development_dependency(%q<newgem>, [">= 1.2.3"])
|
|
30
|
+
s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
|
|
31
|
+
else
|
|
32
|
+
s.add_dependency(%q<newgem>, [">= 1.2.3"])
|
|
33
|
+
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
|
34
|
+
end
|
|
35
|
+
else
|
|
36
|
+
s.add_dependency(%q<newgem>, [">= 1.2.3"])
|
|
37
|
+
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# File: script/console
|
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
|
4
|
+
|
|
5
|
+
libs = " -r irb/completion"
|
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/parenting.rb'}"
|
|
9
|
+
puts "Loading parenting gem"
|
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|