rango 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +22 -8
- data/README.textile +2 -2
- data/Rakefile +79 -0
- data/bin/rango +54 -22
- data/deps.rip +8 -0
- data/lib/rango.rb +4 -4
- data/lib/rango/boot.rb +4 -14
- data/lib/rango/contrib/pagination.rb +6 -8
- data/lib/rango/contrib/pagination/README.textile +2 -2
- data/lib/rango/contrib/pagination/_pagination.html.haml +4 -4
- data/lib/rango/contrib/pagination/adapters/datamapper.rb +16 -17
- data/lib/rango/contrib/pagination/helpers.rb +10 -0
- data/lib/rango/contrib/pagination/strategies.rb +1 -1
- data/lib/rango/controller.rb +40 -43
- data/lib/rango/exceptions.rb +49 -49
- data/lib/rango/gv.rb +93 -0
- data/lib/rango/helpers.rb +4 -4
- data/lib/rango/helpers/assets.rb +11 -2
- data/lib/rango/helpers/merb-helpers/core_ext/numeric.rb +1 -0
- data/lib/rango/helpers/merb-helpers/date_time_formatting.rb +5 -19
- data/lib/rango/helpers/merb-helpers/form/builder.rb +427 -424
- data/lib/rango/helpers/merb-helpers/form/helpers.rb +420 -418
- data/lib/rango/helpers/merb-helpers/form_helpers.rb +4 -2
- data/lib/rango/helpers/merb-helpers/text_helpers.rb +64 -54
- data/lib/rango/mixins/application.rb +1 -1
- data/lib/rango/mixins/configurable.rb +3 -4
- data/lib/rango/mixins/http_caching.rb +78 -0
- data/lib/rango/mixins/mini.rb +2 -2
- data/lib/rango/mixins/render.rb +152 -0
- data/lib/rango/orm/adapter.rb +46 -0
- data/lib/rango/orm/adapters/datamapper.rb +18 -0
- data/lib/rango/orm/adapters/sequel.rb +18 -0
- data/lib/rango/orm/orm.txt +11 -0
- data/lib/rango/orm/{adapters → support}/datamapper/fields.rb +0 -0
- data/lib/rango/orm/{adapters → support}/datamapper/support.rb +0 -0
- data/lib/rango/orm/tasks/datamapper.rake +34 -0
- data/{features/auth/warden.feature → lib/rango/orm/tasks/sequel.rake} +0 -0
- data/lib/rango/project.rb +8 -9
- data/lib/rango/rack/middlewares/basic.rb +50 -22
- data/lib/rango/rango.rb +29 -25
- data/lib/rango/router.rb +9 -0
- data/lib/rango/router/adapters/rack_mount.rb +17 -0
- data/lib/rango/router/adapters/usher.rb +9 -0
- data/lib/rango/settings.rb +13 -3
- data/lib/rango/settings/erubis.rb +2 -0
- data/lib/rango/settings/framework.rb +4 -10
- data/lib/rango/settings/haml.rb +6 -0
- data/lib/rango/settings/template.rb +3 -1
- data/lib/rango/tasks/spec.rake +7 -0
- data/lib/rango/templates/adapter.rb +1 -1
- data/lib/rango/templates/adapters/erb.rb +2 -2
- data/lib/rango/templates/adapters/erubis.rb +1 -1
- data/lib/rango/templates/adapters/haml.rb +1 -1
- data/lib/rango/templates/erubis.rb +84 -0
- data/lib/rango/templates/template.rb +33 -16
- data/lib/rango/templates/templates.txt +39 -0
- data/lib/rango/utils.rb +13 -0
- data/rango.gemspec +20 -15
- data/runcoderun.sh +19 -0
- data/script/erubis +11 -0
- data/script/rackup +2 -0
- data/script/rake2thor +86 -0
- data/script/spec +12 -0
- data/script/thor +12 -0
- data/simple-templater.scope +6 -0
- data/spec/factories.rb +4 -4
- data/spec/rango/controller_spec.rb +2 -2
- data/spec/rango/exceptions_spec.rb +3 -1
- data/{features/generators/bigapp.feature → spec/rango/gv_spec.rb} +0 -0
- data/{features/generators/features.feature → spec/rango/helpers/merb-helpers/core_ext/numeric_spec.rb} +0 -0
- data/{features/generators/flat.feature → spec/rango/helpers/merb-helpers/date_time_formatting_spec.rb} +0 -0
- data/{features/generators/project.feature → spec/rango/helpers/merb-helpers/date_time_helpers_spec.rb} +0 -0
- data/{features/generators/pupu.feature → spec/rango/helpers/merb-helpers/form/builder_spec.rb} +0 -0
- data/{features/generators/stub.feature → spec/rango/helpers/merb-helpers/form/helpers_spec.rb} +0 -0
- data/{features/routers/rack-router.feature → spec/rango/helpers/merb-helpers/form_helpers_spec.rb} +0 -0
- data/spec/rango/helpers/merb-helpers/merb_helpers_config_spec.rb +1 -0
- data/spec/rango/helpers/merb-helpers/merb_helpers_date_time_spec.rb +2 -0
- data/spec/rango/helpers/merb-helpers/merb_helpers_form_spec.rb +5 -3
- data/spec/rango/helpers/merb-helpers/merb_helpers_tag_helper_spec.rb +4 -0
- data/spec/rango/helpers/merb-helpers/merb_helpers_text_spec.rb +1 -0
- data/spec/rango/helpers/merb-helpers/numeric_extlib_spec.rb +8 -7
- data/spec/rango/helpers/merb-helpers/ordinalize_spec.rb +1 -0
- data/{features/routers/rack.feature → spec/rango/helpers/merb-helpers/tag_helpers_spec.rb} +0 -0
- data/{features/routers/urlmap.feature → spec/rango/helpers/merb-helpers/text_helpers_spec.rb} +0 -0
- data/{lib/rango/orm/adapters/sequel/tasks.thor → spec/rango/mixins/chainable_spec.rb} +0 -0
- data/spec/rango/{cli/generator_spec.rb → mixins/hookable_spec.rb} +0 -0
- data/spec/rango/{cli/templater_spec.rb → mixins/http_caching_spec.rb} +0 -0
- data/spec/rango/{generic_views_spec.rb → mixins/render_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/core_ext_spec_spec.rb → orm/adapter_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/fixture/app/controllers/application_spec.rb → orm/adapters/datamapper_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/fixture/app/controllers/bound_check_box_spec.rb → orm/adapters/sequel_spec.rb} +0 -0
- data/spec/rango/orm/{adapters → support}/datamapper/fields_spec.rb +0 -0
- data/spec/rango/orm/{adapters → support}/datamapper/support_spec.rb +0 -0
- data/spec/rango/project_spec.rb +1 -4
- data/spec/rango/rack/request_spec.rb +2 -13
- data/spec/rango/{helpers/spec/fixture/app/controllers/bound_file_field_spec.rb → router/adapters/rack_router_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/fixture/app/controllers/bound_hidden_field_spec.rb → router/adapters/urlmap_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/fixture/app/controllers/bound_option_tag_spec.rb → router/adapters/usher_spec.rb} +0 -0
- data/spec/rango/{helpers/spec/fixture/config/router_spec.rb → router_spec.rb} +0 -0
- data/spec/rango/settings_spec.rb +2 -1
- data/spec/rango_spec.rb +3 -4
- data/stubs/app/content/init.rb.rbt +4 -1
- data/stubs/app/content/models.rb.rbt +9 -1
- data/stubs/app/content/views.rb.rbt +14 -4
- data/stubs/app/metadata.yml +1 -2
- data/stubs/app/setup.rb +13 -0
- data/stubs/bigapp/content/models/%model%.rb.rbt +6 -0
- data/stubs/bigapp/content/views/%controller%.rb.rbt +8 -0
- data/stubs/bigapp/metadata.yml +1 -2
- data/stubs/bigapp/setup.rb +12 -0
- data/stubs/features/metadata.yml +1 -2
- data/stubs/flat/content/flat.ru +21 -0
- data/stubs/flat/content/flat.ru.rbt +3 -2
- data/stubs/flat/metadata.yml +2 -3
- data/stubs/flat/postprocess.rb +12 -0
- data/stubs/flat/setup.rb +13 -0
- data/stubs/project/content/Gemfile.rbt +108 -0
- data/stubs/project/content/Rakefile.rbt +12 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_password_field_spec.rb → stubs/project/content/TODO.txt} +0 -0
- data/stubs/project/content/config.ru.rbt +62 -0
- data/stubs/project/content/init.rb.rbt +49 -0
- data/stubs/project/content/settings.rb +15 -0
- data/stubs/project/content/spec/%name%/init_spec.rb.rbt +7 -0
- data/stubs/project/content/spec/%name%/models_spec.rb.rbt +10 -0
- data/stubs/project/content/spec/%name%/views_spec.rb.rbt +22 -0
- data/stubs/project/content/spec/spec.opts +5 -0
- data/stubs/project/content/spec/spec_helper.rb +27 -0
- data/stubs/project/content/templates/base.html.haml.rbt +9 -22
- data/stubs/project/content/templates/index.html.haml +24 -0
- data/stubs/project/metadata.yml +1 -2
- data/stubs/project/postprocess.rb +18 -4
- data/stubs/project/setup.rb +15 -0
- data/tasks/package.thor +0 -31
- data/tasks/prerelease.thor +34 -0
- data/tasks/release.thor +14 -3
- data/tasks/repair.thor +1 -1
- data/tasks/spec.thor +1 -0
- data/tasks/stats.thor +1 -1
- data/tasks/system.thor +158 -0
- data/vendor/abstract/ChangeLog +3 -0
- data/vendor/abstract/README.txt +57 -0
- data/vendor/abstract/abstract.gemspec +48 -0
- data/vendor/abstract/doc/classes/Kernel.html +134 -0
- data/vendor/abstract/doc/classes/Kernel.src/M000002.html +24 -0
- data/vendor/abstract/doc/classes/Module.html +140 -0
- data/vendor/abstract/doc/classes/Module.src/M000001.html +20 -0
- data/vendor/abstract/doc/created.rid +1 -0
- data/vendor/abstract/doc/files/README_txt.html +173 -0
- data/vendor/abstract/doc/files/lib/abstract_rb.html +137 -0
- data/vendor/abstract/doc/fr_class_index.html +28 -0
- data/vendor/abstract/doc/fr_file_index.html +28 -0
- data/vendor/abstract/doc/fr_method_index.html +28 -0
- data/vendor/abstract/doc/index.html +24 -0
- data/vendor/abstract/doc/rdoc-style.css +208 -0
- data/vendor/abstract/lib/abstract.rb +75 -0
- data/vendor/abstract/setup.rb +1331 -0
- data/vendor/abstract/test/test.rb +91 -0
- data/vendor/cli/CHANGELOG +2 -0
- data/vendor/cli/LICENSE +20 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_radio_button_spec.rb → vendor/cli/README.textile} +0 -0
- data/vendor/cli/Rakefile +79 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_radio_group_spec.rb → vendor/cli/TODO.txt} +0 -0
- data/vendor/cli/cli.gemspec +42 -0
- data/vendor/cli/deps.rip +5 -0
- data/vendor/cli/lib/cli.rb +33 -0
- data/vendor/cli/script/spec +12 -0
- data/vendor/cli/spec/cli_spec.rb +56 -0
- data/vendor/cli/spec/spec.opts +5 -0
- data/vendor/cli/spec/spec_helper.rb +18 -0
- data/vendor/erubis/CHANGES.txt +717 -0
- data/vendor/erubis/MIT-LICENSE +20 -0
- data/vendor/erubis/README.txt +102 -0
- data/vendor/erubis/benchmark/Makefile +6 -0
- data/vendor/erubis/benchmark/bench.rb +314 -0
- data/vendor/erubis/benchmark/bench_context.yaml +141 -0
- data/vendor/erubis/benchmark/templates/_footer.html +4 -0
- data/vendor/erubis/benchmark/templates/_header.html +52 -0
- data/vendor/erubis/benchmark/templates/bench_erb.rhtml +29 -0
- data/vendor/erubis/benchmark/templates/bench_erubis.rhtml +29 -0
- data/vendor/erubis/benchmark/templates/bench_eruby.rhtml +29 -0
- data/vendor/erubis/bin/erubis +11 -0
- data/vendor/erubis/contrib/erubis +11 -0
- data/vendor/erubis/contrib/erubis-run.rb +132 -0
- data/vendor/erubis/contrib/inline-require +153 -0
- data/vendor/erubis/doc-api/classes/ActionView.html +105 -0
- data/vendor/erubis/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +181 -0
- data/vendor/erubis/doc-api/classes/ERB.html +101 -0
- data/vendor/erubis/doc-api/classes/Erubis.html +353 -0
- data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
- data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
- data/vendor/erubis/doc-api/classes/Erubis/ArrayEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/Basic.html +112 -0
- data/vendor/erubis/doc-api/classes/Erubis/Basic/Converter.html +327 -0
- data/vendor/erubis/doc-api/classes/Erubis/Basic/Engine.html +130 -0
- data/vendor/erubis/doc-api/classes/Erubis/BiPatternEnhancer.html +215 -0
- data/vendor/erubis/doc-api/classes/Erubis/BiPatternEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/CGenerator.html +386 -0
- data/vendor/erubis/doc-api/classes/Erubis/CommandOptionError.html +113 -0
- data/vendor/erubis/doc-api/classes/Erubis/Context.html +344 -0
- data/vendor/erubis/doc-api/classes/Erubis/Converter.html +283 -0
- data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
- data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/Ec.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/Ejava.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/Ejavascript.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/Engine.html +305 -0
- data/vendor/erubis/doc-api/classes/Erubis/Eperl.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/Ephp.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
- data/vendor/erubis/doc-api/classes/Erubis/ErboutEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/ErubisError.html +117 -0
- data/vendor/erubis/doc-api/classes/Erubis/Eruby.html +132 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapeEnhancer.html +165 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEc.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEjava.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEjavascript.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEperl.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEphp.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEruby.html +127 -0
- data/vendor/erubis/doc-api/classes/Erubis/EscapedEscheme.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/Escheme.html +126 -0
- data/vendor/erubis/doc-api/classes/Erubis/Evaluator.html +212 -0
- data/vendor/erubis/doc-api/classes/Erubis/FastEruby.html +131 -0
- data/vendor/erubis/doc-api/classes/Erubis/Generator.html +416 -0
- data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEnhancer.html +267 -0
- data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/Helpers.html +116 -0
- data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
- data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper.html +349 -0
- data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +164 -0
- data/vendor/erubis/doc-api/classes/Erubis/InterpolationEnhancer.html +306 -0
- data/vendor/erubis/doc-api/classes/Erubis/InterpolationEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/JavaGenerator.html +359 -0
- data/vendor/erubis/doc-api/classes/Erubis/JavascriptGenerator.html +386 -0
- data/vendor/erubis/doc-api/classes/Erubis/Main.html +340 -0
- data/vendor/erubis/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
- data/vendor/erubis/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
- data/vendor/erubis/doc-api/classes/Erubis/NoTextEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/NotSupportedError.html +119 -0
- data/vendor/erubis/doc-api/classes/Erubis/OptimizedEruby.html +163 -0
- data/vendor/erubis/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
- data/vendor/erubis/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI.html +124 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Converter.html +266 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Ec.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Ejava.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Engine.html +122 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Eperl.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Ephp.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Eruby.html +155 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/Escheme.html +166 -0
- data/vendor/erubis/doc-api/classes/Erubis/PI/TinyEruby.html +293 -0
- data/vendor/erubis/doc-api/classes/Erubis/PercentLineEnhancer.html +179 -0
- data/vendor/erubis/doc-api/classes/Erubis/PercentLineEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/PerlGenerator.html +344 -0
- data/vendor/erubis/doc-api/classes/Erubis/PhpGenerator.html +350 -0
- data/vendor/erubis/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
- data/vendor/erubis/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
- data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
- data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
- data/vendor/erubis/doc-api/classes/Erubis/PrintOutEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +121 -0
- data/vendor/erubis/doc-api/classes/Erubis/RubyEvaluator.html +227 -0
- data/vendor/erubis/doc-api/classes/Erubis/RubyGenerator.html +327 -0
- data/vendor/erubis/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
- data/vendor/erubis/doc-api/classes/Erubis/SimplifiedEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/SimplifyEnhancer.html +191 -0
- data/vendor/erubis/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
- data/vendor/erubis/doc-api/classes/Erubis/StdoutEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +121 -0
- data/vendor/erubis/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
- data/vendor/erubis/doc-api/classes/Erubis/StringBufferEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/StringIOEruby.html +120 -0
- data/vendor/erubis/doc-api/classes/Erubis/TinyEruby.html +299 -0
- data/vendor/erubis/doc-api/classes/Erubis/XmlEruby.html +130 -0
- data/vendor/erubis/doc-api/classes/Erubis/XmlHelper.html +255 -0
- data/vendor/erubis/doc-api/created.rid +1 -0
- data/vendor/erubis/doc-api/files/README_txt.html +247 -0
- data/vendor/erubis/doc-api/files/erubis/context_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/converter_rb.html +114 -0
- data/vendor/erubis/doc-api/files/erubis/engine/ec_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/ejava_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/eperl_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/ephp_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/eruby_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/escheme_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/engine/optimized_rb.html +114 -0
- data/vendor/erubis/doc-api/files/erubis/engine_rb.html +117 -0
- data/vendor/erubis/doc-api/files/erubis/enhancer_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/error_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/evaluator_rb.html +115 -0
- data/vendor/erubis/doc-api/files/erubis/generator_rb.html +114 -0
- data/vendor/erubis/doc-api/files/erubis/helper_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/helpers/rails_helper_rb.html +116 -0
- data/vendor/erubis/doc-api/files/erubis/local-setting_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis/main_rb.html +127 -0
- data/vendor/erubis/doc-api/files/erubis/preprocessing_rb.html +114 -0
- data/vendor/erubis/doc-api/files/erubis/tiny_rb.html +107 -0
- data/vendor/erubis/doc-api/files/erubis_rb.html +118 -0
- data/vendor/erubis/doc-api/fr_class_index.html +122 -0
- data/vendor/erubis/doc-api/fr_file_index.html +51 -0
- data/vendor/erubis/doc-api/fr_method_index.html +248 -0
- data/vendor/erubis/doc-api/index.html +24 -0
- data/vendor/erubis/doc-api/rdoc-style.css +208 -0
- data/vendor/erubis/doc/docstyle.css +188 -0
- data/vendor/erubis/doc/users-guide.html +3285 -0
- data/vendor/erubis/erubis.gemspec +66 -0
- data/vendor/erubis/examples/basic/Makefile +53 -0
- data/vendor/erubis/examples/basic/example.ec +42 -0
- data/vendor/erubis/examples/basic/example.ejava +45 -0
- data/vendor/erubis/examples/basic/example.ejs +16 -0
- data/vendor/erubis/examples/basic/example.eperl +16 -0
- data/vendor/erubis/examples/basic/example.ephp +17 -0
- data/vendor/erubis/examples/basic/example.eruby +15 -0
- data/vendor/erubis/examples/basic/example.escheme +26 -0
- data/vendor/erubis/examples/pi/Makefile +54 -0
- data/vendor/erubis/examples/pi/example.ec +42 -0
- data/vendor/erubis/examples/pi/example.ejava +45 -0
- data/vendor/erubis/examples/pi/example.ejs +16 -0
- data/vendor/erubis/examples/pi/example.eperl +16 -0
- data/vendor/erubis/examples/pi/example.ephp +17 -0
- data/vendor/erubis/examples/pi/example.eruby +15 -0
- data/vendor/erubis/examples/pi/example.escheme +26 -0
- data/vendor/erubis/lib/erubis.rb +73 -0
- data/vendor/erubis/lib/erubis/context.rb +84 -0
- data/vendor/erubis/lib/erubis/converter.rb +358 -0
- data/vendor/erubis/lib/erubis/engine.rb +121 -0
- data/vendor/erubis/lib/erubis/engine/ec.rb +118 -0
- data/vendor/erubis/lib/erubis/engine/ejava.rb +111 -0
- data/vendor/erubis/lib/erubis/engine/ejavascript.rb +120 -0
- data/vendor/erubis/lib/erubis/engine/enhanced.rb +122 -0
- data/vendor/erubis/lib/erubis/engine/eperl.rb +96 -0
- data/vendor/erubis/lib/erubis/engine/ephp.rb +100 -0
- data/vendor/erubis/lib/erubis/engine/eruby.rb +125 -0
- data/vendor/erubis/lib/erubis/engine/escheme.rb +115 -0
- data/vendor/erubis/lib/erubis/engine/optimized.rb +128 -0
- data/vendor/erubis/lib/erubis/enhancer.rb +681 -0
- data/vendor/erubis/lib/erubis/error.rb +24 -0
- data/vendor/erubis/lib/erubis/evaluator.rb +89 -0
- data/vendor/erubis/lib/erubis/generator.rb +86 -0
- data/vendor/erubis/lib/erubis/helper.rb +48 -0
- data/vendor/erubis/lib/erubis/helpers/rails_form_helper.rb +198 -0
- data/vendor/erubis/lib/erubis/helpers/rails_helper.rb +325 -0
- data/vendor/erubis/lib/erubis/local-setting.rb +10 -0
- data/vendor/erubis/lib/erubis/main.rb +491 -0
- data/vendor/erubis/lib/erubis/preprocessing.rb +59 -0
- data/vendor/erubis/lib/erubis/tiny.rb +146 -0
- data/vendor/erubis/setup.rb +1331 -0
- data/vendor/erubis/test/assert-text-equal.rb +45 -0
- data/vendor/erubis/test/assert-text-equal.rbc +0 -0
- data/vendor/erubis/test/data/users-guide/Example.ejava +55 -0
- data/vendor/erubis/test/data/users-guide/array_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/arraybuffer_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/bipattern-example.rhtml +4 -0
- data/vendor/erubis/test/data/users-guide/bipattern_example.result +6 -0
- data/vendor/erubis/test/data/users-guide/context.rb +6 -0
- data/vendor/erubis/test/data/users-guide/context.yaml +8 -0
- data/vendor/erubis/test/data/users-guide/def_method.rb +14 -0
- data/vendor/erubis/test/data/users-guide/def_method.result +3 -0
- data/vendor/erubis/test/data/users-guide/escape_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/example.ec +27 -0
- data/vendor/erubis/test/data/users-guide/example.ejs +20 -0
- data/vendor/erubis/test/data/users-guide/example.eperl +18 -0
- data/vendor/erubis/test/data/users-guide/example.ephp +18 -0
- data/vendor/erubis/test/data/users-guide/example.eruby +6 -0
- data/vendor/erubis/test/data/users-guide/example.escheme +28 -0
- data/vendor/erubis/test/data/users-guide/example1.eruby +6 -0
- data/vendor/erubis/test/data/users-guide/example1.rb +17 -0
- data/vendor/erubis/test/data/users-guide/example1.result +16 -0
- data/vendor/erubis/test/data/users-guide/example10.rb +4 -0
- data/vendor/erubis/test/data/users-guide/example10.result +17 -0
- data/vendor/erubis/test/data/users-guide/example10.xhtml +14 -0
- data/vendor/erubis/test/data/users-guide/example10_x.result +17 -0
- data/vendor/erubis/test/data/users-guide/example11.php +20 -0
- data/vendor/erubis/test/data/users-guide/example11.result +23 -0
- data/vendor/erubis/test/data/users-guide/example11.rhtml +21 -0
- data/vendor/erubis/test/data/users-guide/example11_C.result +10 -0
- data/vendor/erubis/test/data/users-guide/example11_N.result +16 -0
- data/vendor/erubis/test/data/users-guide/example11_U.result +16 -0
- data/vendor/erubis/test/data/users-guide/example11_php.result +15 -0
- data/vendor/erubis/test/data/users-guide/example1_x.result +9 -0
- data/vendor/erubis/test/data/users-guide/example2.eruby +7 -0
- data/vendor/erubis/test/data/users-guide/example2.rb +10 -0
- data/vendor/erubis/test/data/users-guide/example2.result +27 -0
- data/vendor/erubis/test/data/users-guide/example2_trim.result +10 -0
- data/vendor/erubis/test/data/users-guide/example2_x.result +10 -0
- data/vendor/erubis/test/data/users-guide/example3.eruby +6 -0
- data/vendor/erubis/test/data/users-guide/example3.rb +10 -0
- data/vendor/erubis/test/data/users-guide/example31.result +22 -0
- data/vendor/erubis/test/data/users-guide/example32.result +4 -0
- data/vendor/erubis/test/data/users-guide/example3_e.result +8 -0
- data/vendor/erubis/test/data/users-guide/example4.eruby +3 -0
- data/vendor/erubis/test/data/users-guide/example4.rb +11 -0
- data/vendor/erubis/test/data/users-guide/example4.result +10 -0
- data/vendor/erubis/test/data/users-guide/example4_x.result +5 -0
- data/vendor/erubis/test/data/users-guide/example5.eruby +6 -0
- data/vendor/erubis/test/data/users-guide/example5.rb +16 -0
- data/vendor/erubis/test/data/users-guide/example5.result +7 -0
- data/vendor/erubis/test/data/users-guide/example6.rb +12 -0
- data/vendor/erubis/test/data/users-guide/example6.result +7 -0
- data/vendor/erubis/test/data/users-guide/example7.eruby +8 -0
- data/vendor/erubis/test/data/users-guide/example71.result +13 -0
- data/vendor/erubis/test/data/users-guide/example72.result +13 -0
- data/vendor/erubis/test/data/users-guide/example8.eruby +6 -0
- data/vendor/erubis/test/data/users-guide/example8_ruby.result +7 -0
- data/vendor/erubis/test/data/users-guide/example8_yaml.result +7 -0
- data/vendor/erubis/test/data/users-guide/example9.eruby +3 -0
- data/vendor/erubis/test/data/users-guide/example9.rb +8 -0
- data/vendor/erubis/test/data/users-guide/example9.result +9 -0
- data/vendor/erubis/test/data/users-guide/example91.result +5 -0
- data/vendor/erubis/test/data/users-guide/example92.result +4 -0
- data/vendor/erubis/test/data/users-guide/example_c.result +29 -0
- data/vendor/erubis/test/data/users-guide/example_java.result +56 -0
- data/vendor/erubis/test/data/users-guide/example_js.result +22 -0
- data/vendor/erubis/test/data/users-guide/example_perl.result +20 -0
- data/vendor/erubis/test/data/users-guide/example_php.result +19 -0
- data/vendor/erubis/test/data/users-guide/example_scheme.result +30 -0
- data/vendor/erubis/test/data/users-guide/example_scheme_display.result +29 -0
- data/vendor/erubis/test/data/users-guide/fasteruby.rb +11 -0
- data/vendor/erubis/test/data/users-guide/fasteruby.result +38 -0
- data/vendor/erubis/test/data/users-guide/fasteruby.rhtml +15 -0
- data/vendor/erubis/test/data/users-guide/headerfooter-example.eruby +9 -0
- data/vendor/erubis/test/data/users-guide/headerfooter-example2.rb +8 -0
- data/vendor/erubis/test/data/users-guide/headerfooter-example2.rhtml +10 -0
- data/vendor/erubis/test/data/users-guide/headerfooter_example.result +11 -0
- data/vendor/erubis/test/data/users-guide/headerfooter_example2.result +13 -0
- data/vendor/erubis/test/data/users-guide/interpolation_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/main_program1.rb +8 -0
- data/vendor/erubis/test/data/users-guide/main_program1.result +6 -0
- data/vendor/erubis/test/data/users-guide/main_program2.rb +8 -0
- data/vendor/erubis/test/data/users-guide/main_program2.result +6 -0
- data/vendor/erubis/test/data/users-guide/nocode-example.eruby +14 -0
- data/vendor/erubis/test/data/users-guide/nocode-php.result +20 -0
- data/vendor/erubis/test/data/users-guide/nocode_example.result +15 -0
- data/vendor/erubis/test/data/users-guide/normal-eruby-test.eruby +9 -0
- data/vendor/erubis/test/data/users-guide/normal_eruby_test.result +11 -0
- data/vendor/erubis/test/data/users-guide/notext-example.eruby +14 -0
- data/vendor/erubis/test/data/users-guide/notext-example.php +19 -0
- data/vendor/erubis/test/data/users-guide/notext-php.result +20 -0
- data/vendor/erubis/test/data/users-guide/notext_example.result +16 -0
- data/vendor/erubis/test/data/users-guide/percentline-example.rhtml +4 -0
- data/vendor/erubis/test/data/users-guide/percentline_example.result +7 -0
- data/vendor/erubis/test/data/users-guide/printenable_example.result +4 -0
- data/vendor/erubis/test/data/users-guide/printenabled-example.eruby +3 -0
- data/vendor/erubis/test/data/users-guide/printenabled-example.rb +8 -0
- data/vendor/erubis/test/data/users-guide/printstatement_example.result +8 -0
- data/vendor/erubis/test/data/users-guide/simplify_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/stdout_exmple.result +9 -0
- data/vendor/erubis/test/data/users-guide/stringbuffer_example.result +9 -0
- data/vendor/erubis/test/data/users-guide/tail_260.result +4 -0
- data/vendor/erubis/test/data/users-guide/tailnewline.rhtml +3 -0
- data/vendor/erubis/test/data/users-guide/template1.rhtml +4 -0
- data/vendor/erubis/test/data/users-guide/template2.rhtml +4 -0
- data/vendor/erubis/test/hoge.rb +5 -0
- data/vendor/erubis/test/test-engines.rb +370 -0
- data/vendor/erubis/test/test-engines.rbc +0 -0
- data/vendor/erubis/test/test-enhancers.rb +571 -0
- data/vendor/erubis/test/test-erubis.rb +884 -0
- data/vendor/erubis/test/test-erubis.rbc +0 -0
- data/vendor/erubis/test/test-main.rb +674 -0
- data/vendor/erubis/test/test-users-guide.rb +58 -0
- data/vendor/erubis/test/test-users-guide.rbc +0 -0
- data/vendor/erubis/test/test.rb +30 -0
- data/vendor/erubis/test/test.rbc +0 -0
- data/vendor/erubis/test/testutil.rb +101 -0
- data/vendor/erubis/test/testutil.rbc +0 -0
- data/vendor/extlib/History.txt +77 -0
- data/vendor/extlib/LICENSE +47 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_select_spec.rb → vendor/extlib/README} +0 -0
- data/vendor/extlib/Rakefile +133 -0
- data/vendor/extlib/benchmarks/camel_case.rb +45 -0
- data/vendor/extlib/benchmarks/to_const_path.rb +65 -0
- data/vendor/extlib/benchmarks/to_const_string.rb +91 -0
- data/vendor/extlib/lib/extlib.rb +50 -0
- data/vendor/extlib/lib/extlib/array.rb +36 -0
- data/vendor/extlib/lib/extlib/assertions.rb +8 -0
- data/vendor/extlib/lib/extlib/blank.rb +89 -0
- data/vendor/extlib/lib/extlib/boolean.rb +11 -0
- data/vendor/extlib/lib/extlib/byte_array.rb +6 -0
- data/vendor/extlib/lib/extlib/class.rb +177 -0
- data/vendor/extlib/lib/extlib/datetime.rb +29 -0
- data/vendor/extlib/lib/extlib/dictionary.rb +433 -0
- data/vendor/extlib/lib/extlib/hash.rb +442 -0
- data/vendor/extlib/lib/extlib/hook.rb +401 -0
- data/vendor/extlib/lib/extlib/inflection.rb +440 -0
- data/vendor/extlib/lib/extlib/lazy_array.rb +451 -0
- data/vendor/extlib/lib/extlib/lazy_module.rb +18 -0
- data/vendor/extlib/lib/extlib/logger.rb +198 -0
- data/vendor/extlib/lib/extlib/mash.rb +155 -0
- data/vendor/extlib/lib/extlib/module.rb +47 -0
- data/vendor/extlib/lib/extlib/nil.rb +5 -0
- data/vendor/extlib/lib/extlib/numeric.rb +5 -0
- data/vendor/extlib/lib/extlib/object.rb +175 -0
- data/vendor/extlib/lib/extlib/object_space.rb +13 -0
- data/vendor/extlib/lib/extlib/pathname.rb +20 -0
- data/vendor/extlib/lib/extlib/pooling.rb +235 -0
- data/vendor/extlib/lib/extlib/rubygems.rb +38 -0
- data/vendor/extlib/lib/extlib/simple_set.rb +66 -0
- data/vendor/extlib/lib/extlib/string.rb +176 -0
- data/vendor/extlib/lib/extlib/struct.rb +17 -0
- data/vendor/extlib/lib/extlib/symbol.rb +21 -0
- data/vendor/extlib/lib/extlib/tasks/release.rb +15 -0
- data/vendor/extlib/lib/extlib/time.rb +43 -0
- data/vendor/extlib/lib/extlib/version.rb +3 -0
- data/vendor/extlib/lib/extlib/virtual_file.rb +10 -0
- data/vendor/extlib/spec/array_spec.rb +39 -0
- data/vendor/extlib/spec/blank_spec.rb +85 -0
- data/vendor/extlib/spec/byte_array_spec.rb +7 -0
- data/vendor/extlib/spec/class_spec.rb +157 -0
- data/vendor/extlib/spec/datetime_spec.rb +22 -0
- data/vendor/extlib/spec/hash_spec.rb +537 -0
- data/vendor/extlib/spec/hook_spec.rb +1234 -0
- data/vendor/extlib/spec/inflection/plural_spec.rb +564 -0
- data/vendor/extlib/spec/inflection/singular_spec.rb +497 -0
- data/vendor/extlib/spec/inflection_extras_spec.rb +110 -0
- data/vendor/extlib/spec/lazy_array_spec.rb +1957 -0
- data/vendor/extlib/spec/lazy_module_spec.rb +38 -0
- data/vendor/extlib/spec/mash_spec.rb +311 -0
- data/vendor/extlib/spec/module_spec.rb +70 -0
- data/vendor/extlib/spec/object_space_spec.rb +9 -0
- data/vendor/extlib/spec/object_spec.rb +114 -0
- data/vendor/extlib/spec/pooling_spec.rb +511 -0
- data/vendor/extlib/spec/simple_set_spec.rb +57 -0
- data/vendor/extlib/spec/spec.opts +3 -0
- data/vendor/extlib/spec/spec_helper.rb +10 -0
- data/vendor/extlib/spec/string_spec.rb +221 -0
- data/vendor/extlib/spec/struct_spec.rb +12 -0
- data/vendor/extlib/spec/symbol_spec.rb +8 -0
- data/vendor/extlib/spec/time_spec.rb +29 -0
- data/vendor/extlib/spec/try_call_spec.rb +73 -0
- data/vendor/extlib/spec/try_dup_spec.rb +45 -0
- data/vendor/extlib/spec/virtual_file_spec.rb +21 -0
- data/vendor/media-path/CHANGELOG +3 -0
- data/vendor/media-path/LICENSE +20 -0
- data/vendor/media-path/README.textile +40 -0
- data/vendor/media-path/Rakefile +79 -0
- data/vendor/media-path/TODO.txt +6 -0
- data/vendor/media-path/deps.rip +5 -0
- data/vendor/media-path/lib/media-path.rb +269 -0
- data/vendor/media-path/media-path.gemspec +38 -0
- data/vendor/media-path/script/spec +14 -0
- data/vendor/media-path/spec/media-path_spec.rb +158 -0
- data/vendor/media-path/spec/spec.opts +5 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_text_area_spec.rb → vendor/media-path/spec/stubs/blog/public/js/moo.js} +0 -0
- data/vendor/rack/COPYING +18 -0
- data/vendor/rack/KNOWN-ISSUES +18 -0
- data/vendor/rack/README +364 -0
- data/vendor/rack/Rakefile +163 -0
- data/vendor/rack/bin/rackup +2 -0
- data/vendor/rack/contrib/rack_logo.svg +111 -0
- data/vendor/rack/example/lobster.ru +4 -0
- data/vendor/rack/example/protectedlobster.rb +14 -0
- data/vendor/rack/example/protectedlobster.ru +8 -0
- data/vendor/rack/lib/rack.rb +86 -0
- data/vendor/rack/lib/rack/adapter/camping.rb +22 -0
- data/vendor/rack/lib/rack/auth/abstract/handler.rb +37 -0
- data/vendor/rack/lib/rack/auth/abstract/request.rb +37 -0
- data/vendor/rack/lib/rack/auth/basic.rb +58 -0
- data/vendor/rack/lib/rack/auth/digest/md5.rb +124 -0
- data/vendor/rack/lib/rack/auth/digest/nonce.rb +51 -0
- data/vendor/rack/lib/rack/auth/digest/params.rb +55 -0
- data/vendor/rack/lib/rack/auth/digest/request.rb +40 -0
- data/vendor/rack/lib/rack/builder.rb +78 -0
- data/vendor/rack/lib/rack/cascade.rb +41 -0
- data/vendor/rack/lib/rack/chunked.rb +49 -0
- data/vendor/rack/lib/rack/commonlogger.rb +52 -0
- data/vendor/rack/lib/rack/conditionalget.rb +47 -0
- data/vendor/rack/lib/rack/content_length.rb +29 -0
- data/vendor/rack/lib/rack/content_type.rb +23 -0
- data/vendor/rack/lib/rack/deflater.rb +96 -0
- data/vendor/rack/lib/rack/directory.rb +153 -0
- data/vendor/rack/lib/rack/file.rb +88 -0
- data/vendor/rack/lib/rack/handler.rb +88 -0
- data/vendor/rack/lib/rack/handler/cgi.rb +61 -0
- data/vendor/rack/lib/rack/handler/evented_mongrel.rb +8 -0
- data/vendor/rack/lib/rack/handler/fastcgi.rb +90 -0
- data/vendor/rack/lib/rack/handler/lsws.rb +63 -0
- data/vendor/rack/lib/rack/handler/mongrel.rb +91 -0
- data/vendor/rack/lib/rack/handler/scgi.rb +62 -0
- data/vendor/rack/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
- data/vendor/rack/lib/rack/handler/thin.rb +18 -0
- data/vendor/rack/lib/rack/handler/webrick.rb +71 -0
- data/vendor/rack/lib/rack/head.rb +19 -0
- data/vendor/rack/lib/rack/lint.rb +546 -0
- data/vendor/rack/lib/rack/lobster.rb +65 -0
- data/vendor/rack/lib/rack/lock.rb +16 -0
- data/vendor/rack/lib/rack/methodoverride.rb +27 -0
- data/vendor/rack/lib/rack/mime.rb +205 -0
- data/vendor/rack/lib/rack/mock.rb +189 -0
- data/vendor/rack/lib/rack/recursive.rb +57 -0
- data/vendor/rack/lib/rack/reloader.rb +109 -0
- data/vendor/rack/lib/rack/request.rb +248 -0
- data/vendor/rack/lib/rack/response.rb +149 -0
- data/vendor/rack/lib/rack/rewindable_input.rb +100 -0
- data/vendor/rack/lib/rack/server.rb +189 -0
- data/vendor/rack/lib/rack/session/abstract/id.rb +140 -0
- data/vendor/rack/lib/rack/session/cookie.rb +90 -0
- data/vendor/rack/lib/rack/session/memcache.rb +109 -0
- data/vendor/rack/lib/rack/session/pool.rb +100 -0
- data/vendor/rack/lib/rack/showexceptions.rb +349 -0
- data/vendor/rack/lib/rack/showstatus.rb +106 -0
- data/vendor/rack/lib/rack/static.rb +38 -0
- data/vendor/rack/lib/rack/urlmap.rb +55 -0
- data/vendor/rack/lib/rack/utils.rb +590 -0
- data/vendor/rack/test/cgi/lighttpd.conf +20 -0
- data/vendor/rack/test/cgi/test +9 -0
- data/vendor/rack/test/cgi/test.fcgi +8 -0
- data/vendor/rack/test/cgi/test.ru +6 -0
- data/vendor/rack/test/multipart/binary +0 -0
- data/vendor/rack/test/multipart/empty +10 -0
- data/vendor/rack/test/multipart/file1.txt +1 -0
- data/vendor/rack/test/multipart/ie +6 -0
- data/vendor/rack/test/multipart/nested +10 -0
- data/vendor/rack/test/multipart/none +9 -0
- data/vendor/rack/test/multipart/semicolon +6 -0
- data/vendor/rack/test/multipart/text +10 -0
- data/vendor/rack/test/rackup/config.ru +31 -0
- data/vendor/rack/test/spec_rack_auth_basic.rb +73 -0
- data/vendor/rack/test/spec_rack_auth_digest.rb +226 -0
- data/vendor/rack/test/spec_rack_builder.rb +84 -0
- data/vendor/rack/test/spec_rack_camping.rb +51 -0
- data/vendor/rack/test/spec_rack_cascade.rb +48 -0
- data/vendor/rack/test/spec_rack_cgi.rb +89 -0
- data/vendor/rack/test/spec_rack_chunked.rb +62 -0
- data/vendor/rack/test/spec_rack_commonlogger.rb +61 -0
- data/vendor/rack/test/spec_rack_conditionalget.rb +41 -0
- data/vendor/rack/test/spec_rack_content_length.rb +43 -0
- data/vendor/rack/test/spec_rack_content_type.rb +30 -0
- data/vendor/rack/test/spec_rack_deflater.rb +127 -0
- data/vendor/rack/test/spec_rack_directory.rb +61 -0
- data/vendor/rack/test/spec_rack_fastcgi.rb +89 -0
- data/vendor/rack/test/spec_rack_file.rb +75 -0
- data/vendor/rack/test/spec_rack_handler.rb +43 -0
- data/vendor/rack/test/spec_rack_head.rb +30 -0
- data/vendor/rack/test/spec_rack_lint.rb +523 -0
- data/vendor/rack/test/spec_rack_lobster.rb +45 -0
- data/vendor/rack/test/spec_rack_lock.rb +38 -0
- data/vendor/rack/test/spec_rack_methodoverride.rb +60 -0
- data/vendor/rack/test/spec_rack_mock.rb +243 -0
- data/vendor/rack/test/spec_rack_mongrel.rb +189 -0
- data/vendor/rack/test/spec_rack_recursive.rb +77 -0
- data/vendor/rack/test/spec_rack_request.rb +510 -0
- data/vendor/rack/test/spec_rack_response.rb +218 -0
- data/vendor/rack/test/spec_rack_rewindable_input.rb +118 -0
- data/vendor/rack/test/spec_rack_session_cookie.rb +82 -0
- data/vendor/rack/test/spec_rack_session_memcache.rb +250 -0
- data/vendor/rack/test/spec_rack_session_pool.rb +172 -0
- data/vendor/rack/test/spec_rack_showexceptions.rb +21 -0
- data/vendor/rack/test/spec_rack_showstatus.rb +72 -0
- data/vendor/rack/test/spec_rack_static.rb +37 -0
- data/vendor/rack/test/spec_rack_thin.rb +91 -0
- data/vendor/rack/test/spec_rack_urlmap.rb +185 -0
- data/vendor/rack/test/spec_rack_utils.rb +488 -0
- data/vendor/rack/test/spec_rack_webrick.rb +130 -0
- data/vendor/rack/test/spec_rackup.rb +154 -0
- data/vendor/rack/test/testrequest.rb +72 -0
- data/vendor/rack/test/unregistered_handler/rack/handler/unregistered.rb +7 -0
- data/vendor/rack/test/unregistered_handler/rack/handler/unregistered_long_one.rb +7 -0
- data/vendor/rspec/History.rdoc +1510 -0
- data/vendor/rspec/License.txt +22 -0
- data/vendor/rspec/Manifest.txt +383 -0
- data/vendor/rspec/README.rdoc +55 -0
- data/vendor/rspec/Rakefile +145 -0
- data/vendor/rspec/Ruby1.9.rdoc +31 -0
- data/vendor/rspec/TODO.txt +17 -0
- data/vendor/rspec/Upgrade.rdoc +199 -0
- data/vendor/rspec/bin/autospec +4 -0
- data/vendor/rspec/bin/spec +5 -0
- data/vendor/rspec/cucumber.yml +5 -0
- data/vendor/rspec/examples/failing/README.txt +11 -0
- data/vendor/rspec/examples/failing/diffing_spec.rb +36 -0
- data/vendor/rspec/examples/failing/failing_implicit_docstrings_example.rb +17 -0
- data/vendor/rspec/examples/failing/failure_in_after.rb +10 -0
- data/vendor/rspec/examples/failing/failure_in_before.rb +10 -0
- data/vendor/rspec/examples/failing/mocking_example.rb +38 -0
- data/vendor/rspec/examples/failing/mocking_with_flexmock.rb +26 -0
- data/vendor/rspec/examples/failing/mocking_with_mocha.rb +25 -0
- data/vendor/rspec/examples/failing/mocking_with_rr.rb +27 -0
- data/vendor/rspec/examples/failing/partial_mock_example.rb +18 -0
- data/vendor/rspec/examples/failing/pending_example.rb +7 -0
- data/vendor/rspec/examples/failing/predicate_example.rb +32 -0
- data/vendor/rspec/examples/failing/raising_example.rb +47 -0
- data/vendor/rspec/examples/failing/syntax_error_example.rb +7 -0
- data/vendor/rspec/examples/failing/team_spec.rb +41 -0
- data/vendor/rspec/examples/failing/timeout_behaviour.rb +5 -0
- data/vendor/rspec/examples/passing/custom_formatter.rb +11 -0
- data/vendor/rspec/examples/passing/custom_matchers.rb +54 -0
- data/vendor/rspec/examples/passing/dynamic_spec.rb +7 -0
- data/vendor/rspec/examples/passing/file_accessor.rb +18 -0
- data/vendor/rspec/examples/passing/file_accessor_spec.rb +37 -0
- data/vendor/rspec/examples/passing/filtered_formatter.rb +17 -0
- data/vendor/rspec/examples/passing/filtered_formatter_example.rb +31 -0
- data/vendor/rspec/examples/passing/greeter_spec.rb +30 -0
- data/vendor/rspec/examples/passing/helper_method_example.rb +12 -0
- data/vendor/rspec/examples/passing/implicit_docstrings_example.rb +16 -0
- data/vendor/rspec/examples/passing/io_processor.rb +8 -0
- data/vendor/rspec/examples/passing/io_processor_spec.rb +20 -0
- data/vendor/rspec/examples/passing/mocking_example.rb +25 -0
- data/vendor/rspec/examples/passing/multi_threaded_example_group_runner.rb +26 -0
- data/vendor/rspec/examples/passing/nested_classes_example.rb +35 -0
- data/vendor/rspec/examples/passing/options_example.rb +29 -0
- data/vendor/rspec/examples/passing/options_formatter.rb +20 -0
- data/vendor/rspec/examples/passing/partial_mock_example.rb +27 -0
- data/vendor/rspec/examples/passing/pending_example.rb +18 -0
- data/vendor/rspec/examples/passing/predicate_example.rb +25 -0
- data/vendor/rspec/examples/passing/shared_example_group_example.rb +79 -0
- data/vendor/rspec/examples/passing/shared_stack_examples.rb +36 -0
- data/vendor/rspec/examples/passing/simple_matcher_example.rb +29 -0
- data/vendor/rspec/examples/passing/stack.rb +36 -0
- data/vendor/rspec/examples/passing/stack_spec.rb +63 -0
- data/vendor/rspec/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
- data/vendor/rspec/examples/passing/stubbing_example.rb +67 -0
- data/vendor/rspec/examples/passing/yielding_example.rb +31 -0
- data/vendor/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
- data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
- data/vendor/rspec/features-pending/heckle/heckle.feature +56 -0
- data/vendor/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
- data/vendor/rspec/features/command_line/line_number_option.feature +56 -0
- data/vendor/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
- data/vendor/rspec/features/example_groups/define_example_attribute.feature +41 -0
- data/vendor/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
- data/vendor/rspec/features/example_groups/implicit_docstrings.feature +59 -0
- data/vendor/rspec/features/example_groups/nested_groups.feature +32 -0
- data/vendor/rspec/features/expectations/customized_message.feature +54 -0
- data/vendor/rspec/features/expectations/expect_change.feature +65 -0
- data/vendor/rspec/features/expectations/expect_error.feature +44 -0
- data/vendor/rspec/features/extensions/custom_example_group.feature +19 -0
- data/vendor/rspec/features/formatters/custom_formatter.feature +30 -0
- data/vendor/rspec/features/interop/examples_and_tests_together.feature +84 -0
- data/vendor/rspec/features/interop/rspec_output.feature +25 -0
- data/vendor/rspec/features/interop/test_but_not_test_unit.feature +26 -0
- data/vendor/rspec/features/interop/test_case_with_should_methods.feature +46 -0
- data/vendor/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
- data/vendor/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
- data/vendor/rspec/features/matchers/define_diffable_matcher.feature +26 -0
- data/vendor/rspec/features/matchers/define_matcher.feature +179 -0
- data/vendor/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
- data/vendor/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
- data/vendor/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
- data/vendor/rspec/features/matchers/match_unless_raises.feature +60 -0
- data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
- data/vendor/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
- data/vendor/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
- data/vendor/rspec/features/mock_framework_integration/use_rr.feature +27 -0
- data/vendor/rspec/features/mocks/block_local_expectations.feature +62 -0
- data/vendor/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
- data/vendor/rspec/features/mocks/stub_implementation.feature +26 -0
- data/vendor/rspec/features/pending/pending_examples.feature +81 -0
- data/vendor/rspec/features/runner/specify_line_number.feature +32 -0
- data/vendor/rspec/features/spec_helper/spec_helper.feature +25 -0
- data/vendor/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
- data/vendor/rspec/features/subject/explicit_subject.feature +31 -0
- data/vendor/rspec/features/subject/implicit_subject.feature +43 -0
- data/vendor/rspec/features/support/env.rb +82 -0
- data/vendor/rspec/features/support/matchers/smart_match.rb +12 -0
- data/vendor/rspec/geminstaller.yml +28 -0
- data/vendor/rspec/init.rb +9 -0
- data/vendor/rspec/lib/autotest/discover.rb +3 -0
- data/vendor/rspec/lib/autotest/rspec.rb +54 -0
- data/vendor/rspec/lib/spec.rb +8 -0
- data/vendor/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
- data/vendor/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
- data/vendor/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
- data/vendor/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
- data/vendor/rspec/lib/spec/autorun.rb +3 -0
- data/vendor/rspec/lib/spec/deprecation.rb +40 -0
- data/vendor/rspec/lib/spec/dsl.rb +1 -0
- data/vendor/rspec/lib/spec/dsl/main.rb +92 -0
- data/vendor/rspec/lib/spec/example.rb +164 -0
- data/vendor/rspec/lib/spec/example/args_and_options.rb +27 -0
- data/vendor/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/vendor/rspec/lib/spec/example/errors.rb +25 -0
- data/vendor/rspec/lib/spec/example/example_group.rb +10 -0
- data/vendor/rspec/lib/spec/example/example_group_factory.rb +82 -0
- data/vendor/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
- data/vendor/rspec/lib/spec/example/example_group_methods.rb +282 -0
- data/vendor/rspec/lib/spec/example/example_group_proxy.rb +61 -0
- data/vendor/rspec/lib/spec/example/example_matcher.rb +43 -0
- data/vendor/rspec/lib/spec/example/example_methods.rb +152 -0
- data/vendor/rspec/lib/spec/example/example_proxy.rb +41 -0
- data/vendor/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
- data/vendor/rspec/lib/spec/example/pending.rb +18 -0
- data/vendor/rspec/lib/spec/example/predicate_matchers.rb +46 -0
- data/vendor/rspec/lib/spec/example/shared_example_group.rb +59 -0
- data/vendor/rspec/lib/spec/example/subject.rb +108 -0
- data/vendor/rspec/lib/spec/expectations.rb +35 -0
- data/vendor/rspec/lib/spec/expectations/errors.rb +12 -0
- data/vendor/rspec/lib/spec/expectations/extensions.rb +1 -0
- data/vendor/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/vendor/rspec/lib/spec/expectations/fail_with.rb +45 -0
- data/vendor/rspec/lib/spec/expectations/handler.rb +50 -0
- data/vendor/rspec/lib/spec/extensions/instance_exec.rb +31 -0
- data/vendor/rspec/lib/spec/interop/test.rb +44 -0
- data/vendor/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/vendor/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
- data/vendor/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/vendor/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
- data/vendor/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/vendor/rspec/lib/spec/matchers.rb +195 -0
- data/vendor/rspec/lib/spec/matchers/be.rb +211 -0
- data/vendor/rspec/lib/spec/matchers/be_close.rb +32 -0
- data/vendor/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
- data/vendor/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
- data/vendor/rspec/lib/spec/matchers/change.rb +151 -0
- data/vendor/rspec/lib/spec/matchers/compatibility.rb +14 -0
- data/vendor/rspec/lib/spec/matchers/dsl.rb +20 -0
- data/vendor/rspec/lib/spec/matchers/eql.rb +42 -0
- data/vendor/rspec/lib/spec/matchers/equal.rb +53 -0
- data/vendor/rspec/lib/spec/matchers/errors.rb +5 -0
- data/vendor/rspec/lib/spec/matchers/exist.rb +16 -0
- data/vendor/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
- data/vendor/rspec/lib/spec/matchers/has.rb +35 -0
- data/vendor/rspec/lib/spec/matchers/have.rb +152 -0
- data/vendor/rspec/lib/spec/matchers/include.rb +44 -0
- data/vendor/rspec/lib/spec/matchers/match.rb +21 -0
- data/vendor/rspec/lib/spec/matchers/match_array.rb +71 -0
- data/vendor/rspec/lib/spec/matchers/matcher.rb +102 -0
- data/vendor/rspec/lib/spec/matchers/method_missing.rb +9 -0
- data/vendor/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
- data/vendor/rspec/lib/spec/matchers/pretty.rb +37 -0
- data/vendor/rspec/lib/spec/matchers/raise_error.rb +129 -0
- data/vendor/rspec/lib/spec/matchers/respond_to.rb +71 -0
- data/vendor/rspec/lib/spec/matchers/satisfy.rb +47 -0
- data/vendor/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
- data/vendor/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
- data/vendor/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/vendor/rspec/lib/spec/mocks.rb +200 -0
- data/vendor/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
- data/vendor/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
- data/vendor/rspec/lib/spec/mocks/error_generator.rb +92 -0
- data/vendor/rspec/lib/spec/mocks/errors.rb +10 -0
- data/vendor/rspec/lib/spec/mocks/example_methods.rb +69 -0
- data/vendor/rspec/lib/spec/mocks/extensions.rb +1 -0
- data/vendor/rspec/lib/spec/mocks/extensions/object.rb +3 -0
- data/vendor/rspec/lib/spec/mocks/framework.rb +15 -0
- data/vendor/rspec/lib/spec/mocks/message_expectation.rb +343 -0
- data/vendor/rspec/lib/spec/mocks/methods.rb +89 -0
- data/vendor/rspec/lib/spec/mocks/mock.rb +71 -0
- data/vendor/rspec/lib/spec/mocks/order_group.rb +29 -0
- data/vendor/rspec/lib/spec/mocks/proxy.rb +245 -0
- data/vendor/rspec/lib/spec/mocks/space.rb +28 -0
- data/vendor/rspec/lib/spec/rake/spectask.rb +230 -0
- data/vendor/rspec/lib/spec/rake/verify_rcov.rb +52 -0
- data/vendor/rspec/lib/spec/ruby.rb +9 -0
- data/vendor/rspec/lib/spec/runner.rb +66 -0
- data/vendor/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
- data/vendor/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/vendor/rspec/lib/spec/runner/command_line.rb +15 -0
- data/vendor/rspec/lib/spec/runner/configuration.rb +194 -0
- data/vendor/rspec/lib/spec/runner/differs/default.rb +93 -0
- data/vendor/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
- data/vendor/rspec/lib/spec/runner/drb_command_line.rb +26 -0
- data/vendor/rspec/lib/spec/runner/example_group_runner.rb +58 -0
- data/vendor/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
- data/vendor/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
- data/vendor/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
- data/vendor/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
- data/vendor/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/vendor/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
- data/vendor/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
- data/vendor/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/vendor/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/vendor/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
- data/vendor/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/vendor/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/vendor/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
- data/vendor/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/vendor/rspec/lib/spec/runner/heckle_runner.rb +72 -0
- data/vendor/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/vendor/rspec/lib/spec/runner/line_number_query.rb +78 -0
- data/vendor/rspec/lib/spec/runner/option_parser.rb +223 -0
- data/vendor/rspec/lib/spec/runner/options.rb +400 -0
- data/vendor/rspec/lib/spec/runner/reporter.rb +171 -0
- data/vendor/rspec/lib/spec/stubs/cucumber.rb +5 -0
- data/vendor/rspec/lib/spec/test/unit.rb +10 -0
- data/vendor/rspec/lib/spec/version.rb +14 -0
- data/vendor/rspec/resources/helpers/cmdline.rb +8 -0
- data/vendor/rspec/resources/rake/examples.rake +7 -0
- data/vendor/rspec/resources/rake/examples_with_rcov.rake +9 -0
- data/vendor/rspec/resources/rake/failing_examples_with_html.rake +9 -0
- data/vendor/rspec/resources/rake/verify_rcov.rake +7 -0
- data/vendor/rspec/spec/README.jruby +15 -0
- data/vendor/rspec/spec/autotest/autotest_helper.rb +8 -0
- data/vendor/rspec/spec/autotest/autotest_matchers.rb +38 -0
- data/vendor/rspec/spec/autotest/discover_spec.rb +8 -0
- data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
- data/vendor/rspec/spec/autotest/rspec_spec.rb +126 -0
- data/vendor/rspec/spec/ruby_forker.rb +13 -0
- data/vendor/rspec/spec/spec.opts +6 -0
- data/vendor/rspec/spec/spec/dsl/main_spec.rb +95 -0
- data/vendor/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
- data/vendor/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
- data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +759 -0
- data/vendor/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/vendor/rspec/spec/spec/example/example_group_spec.rb +643 -0
- data/vendor/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
- data/vendor/rspec/spec/spec/example/example_methods_spec.rb +162 -0
- data/vendor/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
- data/vendor/rspec/spec/spec/example/helper_method_spec.rb +24 -0
- data/vendor/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
- data/vendor/rspec/spec/spec/example/pending_module_spec.rb +58 -0
- data/vendor/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
- data/vendor/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
- data/vendor/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/vendor/rspec/spec/spec/example/subject_spec.rb +103 -0
- data/vendor/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
- data/vendor/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
- data/vendor/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
- data/vendor/rspec/spec/spec/expectations/handler_spec.rb +206 -0
- data/vendor/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
- data/vendor/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/vendor/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
- data/vendor/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
- data/vendor/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
- data/vendor/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/vendor/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
- data/vendor/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
- data/vendor/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
- data/vendor/rspec/spec/spec/matchers/be_spec.rb +419 -0
- data/vendor/rspec/spec/spec/matchers/change_spec.rb +349 -0
- data/vendor/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
- data/vendor/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
- data/vendor/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
- data/vendor/rspec/spec/spec/matchers/eql_spec.rb +33 -0
- data/vendor/rspec/spec/spec/matchers/equal_spec.rb +57 -0
- data/vendor/rspec/spec/spec/matchers/exist_spec.rb +65 -0
- data/vendor/rspec/spec/spec/matchers/has_spec.rb +190 -0
- data/vendor/rspec/spec/spec/matchers/have_spec.rb +396 -0
- data/vendor/rspec/spec/spec/matchers/include_spec.rb +88 -0
- data/vendor/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
- data/vendor/rspec/spec/spec/matchers/match_spec.rb +57 -0
- data/vendor/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
- data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +273 -0
- data/vendor/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
- data/vendor/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/vendor/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
- data/vendor/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
- data/vendor/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/vendor/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
- data/vendor/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
- data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +117 -0
- data/vendor/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
- data/vendor/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
- data/vendor/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
- data/vendor/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
- data/vendor/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/vendor/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
- data/vendor/rspec/spec/spec/mocks/double_spec.rb +12 -0
- data/vendor/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/vendor/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
- data/vendor/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/vendor/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
- data/vendor/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/vendor/rspec/spec/spec/mocks/mock_spec.rb +594 -0
- data/vendor/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/vendor/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/vendor/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
- data/vendor/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/vendor/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
- data/vendor/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
- data/vendor/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/vendor/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
- data/vendor/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/vendor/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/vendor/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
- data/vendor/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
- data/vendor/rspec/spec/spec/mocks/stub_spec.rb +203 -0
- data/vendor/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
- data/vendor/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/vendor/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
- data/vendor/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
- data/vendor/rspec/spec/spec/rake/spectask_spec.rb +150 -0
- data/vendor/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/vendor/rspec/spec/spec/runner/command_line_spec.rb +162 -0
- data/vendor/rspec/spec/spec/runner/configuration_spec.rb +320 -0
- data/vendor/rspec/spec/spec/runner/drb_command_line_spec.rb +107 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/bound_text_field_spec.rb → vendor/rspec/spec/spec/runner/empty_file.txt} +0 -0
- data/vendor/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
- data/vendor/rspec/spec/spec/runner/examples.txt +2 -0
- data/vendor/rspec/spec/spec/runner/failed.txt +3 -0
- data/vendor/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
- data/vendor/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
- data/vendor/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/vendor/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
- data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
- data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
- data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
- data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
- data/vendor/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
- data/vendor/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
- data/vendor/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
- data/vendor/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
- data/vendor/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/vendor/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
- data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
- data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
- data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
- data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
- data/vendor/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/vendor/rspec/spec/spec/runner/heckler_spec.rb +20 -0
- data/vendor/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
- data/vendor/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
- data/vendor/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
- data/vendor/rspec/spec/spec/runner/option_parser_spec.rb +545 -0
- data/vendor/rspec/spec/spec/runner/options_spec.rb +547 -0
- data/vendor/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/vendor/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
- data/vendor/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
- data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
- data/vendor/rspec/spec/spec/runner/reporter_spec.rb +244 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/button_spec.rb → vendor/rspec/spec/spec/runner/resources/a_bar.rb} +0 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/check_box_spec.rb → vendor/rspec/spec/spec/runner/resources/a_foo.rb} +0 -0
- data/vendor/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
- data/vendor/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
- data/vendor/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
- data/vendor/rspec/spec/spec/runner/spec.opts +2 -0
- data/vendor/rspec/spec/spec/runner/spec_drb.opts +2 -0
- data/vendor/rspec/spec/spec/runner/spec_spaced.opts +2 -0
- data/vendor/rspec/spec/spec/runner_spec.rb +13 -0
- data/vendor/rspec/spec/spec_helper.rb +112 -0
- data/vendor/rspec/spec/support/macros.rb +29 -0
- data/vendor/rspec/spec/support/spec_classes.rb +133 -0
- data/vendor/rubyexts/CHANGELOG +2 -0
- data/vendor/rubyexts/LICENSE +20 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/custom_builder_spec.rb → vendor/rubyexts/README.textile} +0 -0
- data/vendor/rubyexts/Rakefile +79 -0
- data/vendor/rubyexts/TODO.txt +6 -0
- data/vendor/rubyexts/lib/rubyexts.rb +102 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/array.rb +0 -0
- data/vendor/rubyexts/lib/rubyexts/attribute.rb +151 -0
- data/vendor/rubyexts/lib/rubyexts/capture_io.rb +32 -0
- data/vendor/rubyexts/lib/rubyexts/class.rb +177 -0
- data/vendor/rubyexts/lib/rubyexts/colored_string.rb +103 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/enumerable.rb +0 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/file.rb +0 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/hash.rb +0 -0
- data/vendor/rubyexts/lib/rubyexts/kernel.rb +91 -0
- data/vendor/rubyexts/lib/rubyexts/module.rb +53 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/object.rb +0 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/object_space.rb +0 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/os.rb +0 -0
- data/vendor/rubyexts/lib/rubyexts/platform.rb +27 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/random.rb +0 -0
- data/vendor/rubyexts/lib/rubyexts/string.rb +92 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/time.rb +0 -0
- data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/time_dsl.rb +0 -0
- data/vendor/rubyexts/lib/rubyexts/try_dup.rb +43 -0
- data/vendor/rubyexts/lib/rubyexts/unique_array.rb +16 -0
- data/vendor/rubyexts/rubyexts.gemspec +36 -0
- data/vendor/rubyexts/script/spec +12 -0
- data/vendor/rubyexts/spec/rubyexts/array_spec.rb +19 -0
- data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +37 -0
- data/vendor/rubyexts/spec/rubyexts/class_spec.rb +1 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/delete_button_spec.rb → vendor/rubyexts/spec/rubyexts/cli_spec.rb} +0 -0
- data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +9 -0
- data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +52 -0
- data/vendor/rubyexts/spec/rubyexts/file_spec.rb +78 -0
- data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +91 -0
- data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +9 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/exceptions_spec.rb → vendor/rubyexts/spec/rubyexts/module_spec.rb} +0 -0
- data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +17 -0
- data/vendor/rubyexts/spec/rubyexts/object_spec.rb +57 -0
- data/vendor/rubyexts/spec/rubyexts/os_spec.rb +121 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/field_set_spec.rb → vendor/rubyexts/spec/rubyexts/platform_spec.rb} +0 -0
- data/vendor/rubyexts/spec/rubyexts/random_spec.rb +31 -0
- data/vendor/rubyexts/spec/rubyexts/string_spec.rb +23 -0
- data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +88 -0
- data/vendor/rubyexts/spec/rubyexts/time_spec.rb +11 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/fields_for_spec.rb → vendor/rubyexts/spec/rubyexts/unique_array_spec.rb} +0 -0
- data/vendor/rubyexts/spec/rubyexts_spec.rb +182 -0
- data/vendor/rubyexts/spec/spec.opts +5 -0
- data/vendor/rubyexts/spec/spec_helper.rb +16 -0
- data/vendor/simple-templater/CHANGELOG +10 -0
- data/vendor/simple-templater/LICENSE +20 -0
- data/vendor/simple-templater/README.textile +136 -0
- data/vendor/simple-templater/Rakefile +61 -0
- data/vendor/simple-templater/TODO.txt +15 -0
- data/vendor/simple-templater/bin/simple-templater +66 -0
- data/vendor/simple-templater/deps.rip +7 -0
- data/vendor/simple-templater/lib/simple-templater.rb +97 -0
- data/vendor/simple-templater/lib/simple-templater/argv_parsing.rb +27 -0
- data/vendor/simple-templater/lib/simple-templater/builder.rb +134 -0
- data/vendor/simple-templater/lib/simple-templater/discoverer.rb +20 -0
- data/vendor/simple-templater/lib/simple-templater/discoverers/gems.rb +79 -0
- data/vendor/simple-templater/lib/simple-templater/discoverers/plain.rb +1 -0
- data/vendor/simple-templater/lib/simple-templater/discoverers/rip.rb +1 -0
- data/vendor/simple-templater/lib/simple-templater/dsl.rb +27 -0
- data/vendor/simple-templater/lib/simple-templater/generator.rb +129 -0
- data/vendor/simple-templater/lib/simple-templater/generator_set.rb +45 -0
- data/vendor/simple-templater/lib/simple-templater/helpers.rb +34 -0
- data/vendor/simple-templater/lib/simple-templater/hooks/hook.rb +76 -0
- data/vendor/simple-templater/lib/simple-templater/hooks/postprocess/git_repository.rb +25 -0
- data/vendor/simple-templater/lib/simple-templater/hooks/postprocess/github.rb +20 -0
- data/vendor/simple-templater/lib/simple-templater/hooks/preprocess/full_name.rb +17 -0
- data/vendor/simple-templater/lib/simple-templater/hooks/preprocess/github.rb +25 -0
- data/vendor/simple-templater/script/spec +14 -0
- data/vendor/simple-templater/simple-templater.gemspec +45 -0
- data/vendor/simple-templater/simple-templater.scope +6 -0
- data/vendor/simple-templater/spec/simple-templater/argv_parsing_spec.rb +41 -0
- data/{features/shared/given_steps.rb → vendor/simple-templater/spec/simple-templater/builder_spec.rb} +0 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/file_field_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/gems_spec.rb} +0 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/foo_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/plain_spec.rb} +0 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/form_for_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/rip_spec.rb} +0 -0
- data/vendor/simple-templater/spec/simple-templater/generator_set_spec.rb +55 -0
- data/vendor/simple-templater/spec/simple-templater/generator_spec.rb +30 -0
- data/vendor/simple-templater/spec/simple-templater/helpers_spec.rb +81 -0
- data/vendor/simple-templater/spec/simple-templater/hooks/hook_spec.rb +100 -0
- data/vendor/simple-templater/spec/simple-templater/hooks/postprocess/git_repository_spec.rb +25 -0
- data/vendor/simple-templater/spec/simple-templater/hooks/postprocess/github_spec.rb +8 -0
- data/vendor/simple-templater/spec/simple-templater_spec.rb +112 -0
- data/vendor/simple-templater/spec/spec.opts +5 -0
- data/vendor/simple-templater/spec/spec_helper.rb +19 -0
- data/vendor/simple-templater/spec/stubs/gems/cache/test_generator-0.0.1.gem +0 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/simple-generator.scope +8 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/simple-templater.scope +8 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%1_test.rb.rbt +1 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/form_spec.rb → vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%_test.rb} +0 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/README.textile +3 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/script.rb.rbt +1 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%1_test.rb.rbt +1 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/hacker_spec.rb → vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%_test.rb} +0 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/README.textile +3 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/script.rb.rbt +1 -0
- data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/test_generator.gemspec +19 -0
- data/vendor/simple-templater/spec/stubs/gems/specifications/test_generator-0.0.1.gemspec +28 -0
- data/vendor/simple-templater/spec/stubs/simple-templater.scope +8 -0
- data/vendor/simple-templater/spec/stubs/test_generator/simple-templater.scope +8 -0
- data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/%name%1_test.rb.rbt +1 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/hidden_field_spec.rb → vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/%name%_test.rb} +0 -0
- data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/README.textile +3 -0
- data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/script.rb.rbt +1 -0
- data/vendor/simple-templater/spec/stubs/test_generator/test_generator-0.0.1.gem +0 -0
- data/vendor/simple-templater/spec/stubs/test_generator/test_generator.gemspec +19 -0
- data/vendor/simple-templater/stubs/project/content/%name%.gemspec.rbt +37 -0
- data/vendor/simple-templater/stubs/project/content/CHANGELOG +2 -0
- data/vendor/simple-templater/stubs/project/content/LICENSE.rbt +20 -0
- data/vendor/simple-templater/stubs/project/content/README.textile.rbt +19 -0
- data/vendor/simple-templater/stubs/project/content/Rakefile +39 -0
- data/{spec/rango/helpers/spec/fixture/app/controllers/label_spec.rb → vendor/simple-templater/stubs/project/content/TODO.txt} +0 -0
- data/vendor/simple-templater/stubs/project/content/bin/%name%.rbt +14 -0
- data/vendor/simple-templater/stubs/project/content/deps.rip +5 -0
- data/vendor/simple-templater/stubs/project/content/lib/%name%.rb.rbt +5 -0
- data/vendor/simple-templater/stubs/project/content/spec/%name%_spec.rb.rbt +10 -0
- data/vendor/simple-templater/stubs/project/content/spec/spec.opts +5 -0
- data/vendor/simple-templater/stubs/project/content/spec/spec_helper.rb.rbt +11 -0
- data/vendor/simple-templater/stubs/project/metadata.yml +3 -0
- data/vendor/simple-templater/stubs/project/postprocess.rb +13 -0
- data/vendor/simple-templater/stubs/project/setup.rb +13 -0
- data/vendor/simple-templater/stubs/stub/content/metadata.yml.rbt +3 -0
- data/vendor/simple-templater/stubs/stub/content/postprocess.rb +11 -0
- data/vendor/simple-templater/stubs/stub/content/setup.rb +10 -0
- data/vendor/simple-templater/stubs/stub/metadata.yml +3 -0
- data/vendor/simple-templater/stubs/stub/postprocess.rb +9 -0
- data/vendor/simple-templater/stubs/stub/setup.rb +15 -0
- data/vendor/simple-templater/vendor/abstract/ChangeLog +3 -0
- data/vendor/simple-templater/vendor/abstract/README.txt +57 -0
- data/vendor/simple-templater/vendor/abstract/abstract.gemspec +48 -0
- data/vendor/simple-templater/vendor/abstract/doc/classes/Kernel.html +134 -0
- data/vendor/simple-templater/vendor/abstract/doc/classes/Kernel.src/M000002.html +24 -0
- data/vendor/simple-templater/vendor/abstract/doc/classes/Module.html +140 -0
- data/vendor/simple-templater/vendor/abstract/doc/classes/Module.src/M000001.html +20 -0
- data/vendor/simple-templater/vendor/abstract/doc/created.rid +1 -0
- data/vendor/simple-templater/vendor/abstract/doc/files/README_txt.html +173 -0
- data/vendor/simple-templater/vendor/abstract/doc/files/lib/abstract_rb.html +137 -0
- data/vendor/simple-templater/vendor/abstract/doc/fr_class_index.html +28 -0
- data/vendor/simple-templater/vendor/abstract/doc/fr_file_index.html +28 -0
- data/vendor/simple-templater/vendor/abstract/doc/fr_method_index.html +28 -0
- data/vendor/simple-templater/vendor/abstract/doc/index.html +24 -0
- data/vendor/simple-templater/vendor/abstract/doc/rdoc-style.css +208 -0
- data/vendor/simple-templater/vendor/abstract/lib/abstract.rb +75 -0
- data/vendor/simple-templater/vendor/abstract/setup.rb +1331 -0
- data/vendor/simple-templater/vendor/abstract/test/test.rb +91 -0
- data/vendor/thor/CHANGELOG.rdoc +82 -0
- data/vendor/thor/LICENSE +20 -0
- data/vendor/thor/README.rdoc +234 -0
- data/vendor/thor/Thorfile +63 -0
- data/vendor/thor/bin/rake2thor +86 -0
- data/vendor/thor/bin/thor +7 -0
- data/vendor/thor/lib/thor.rb +242 -0
- data/vendor/thor/lib/thor/actions.rb +273 -0
- data/vendor/thor/lib/thor/actions/create_file.rb +103 -0
- data/vendor/thor/lib/thor/actions/directory.rb +93 -0
- data/vendor/thor/lib/thor/actions/empty_directory.rb +134 -0
- data/vendor/thor/lib/thor/actions/file_manipulation.rb +219 -0
- data/vendor/thor/lib/thor/actions/inject_into_file.rb +101 -0
- data/vendor/thor/lib/thor/base.rb +517 -0
- data/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +75 -0
- data/vendor/thor/lib/thor/core_ext/ordered_hash.rb +100 -0
- data/vendor/thor/lib/thor/error.rb +27 -0
- data/vendor/thor/lib/thor/group.rb +263 -0
- data/vendor/thor/lib/thor/invocation.rb +178 -0
- data/vendor/thor/lib/thor/parser.rb +4 -0
- data/vendor/thor/lib/thor/parser/argument.rb +67 -0
- data/vendor/thor/lib/thor/parser/arguments.rb +145 -0
- data/vendor/thor/lib/thor/parser/option.rb +132 -0
- data/vendor/thor/lib/thor/parser/options.rb +142 -0
- data/vendor/thor/lib/thor/rake_compat.rb +66 -0
- data/vendor/thor/lib/thor/runner.rb +299 -0
- data/vendor/thor/lib/thor/shell.rb +78 -0
- data/vendor/thor/lib/thor/shell/basic.rb +219 -0
- data/vendor/thor/lib/thor/shell/color.rb +108 -0
- data/vendor/thor/lib/thor/task.rb +122 -0
- data/vendor/thor/lib/thor/util.rb +251 -0
- data/vendor/thor/lib/thor/version.rb +3 -0
- data/vendor/thor/spec/actions/create_file_spec.rb +170 -0
- data/vendor/thor/spec/actions/directory_spec.rb +130 -0
- data/vendor/thor/spec/actions/empty_directory_spec.rb +91 -0
- data/vendor/thor/spec/actions/file_manipulation_spec.rb +249 -0
- data/vendor/thor/spec/actions/inject_into_file_spec.rb +106 -0
- data/vendor/thor/spec/actions_spec.rb +291 -0
- data/vendor/thor/spec/base_spec.rb +236 -0
- data/vendor/thor/spec/core_ext/hash_with_indifferent_access_spec.rb +43 -0
- data/vendor/thor/spec/core_ext/ordered_hash_spec.rb +115 -0
- data/vendor/thor/spec/fixtures/application.rb +2 -0
- data/vendor/thor/spec/fixtures/bundle/execute.rb +6 -0
- data/vendor/thor/spec/fixtures/bundle/main.thor +1 -0
- data/vendor/thor/spec/fixtures/doc/%file_name%.rb.tt +1 -0
- data/vendor/thor/spec/fixtures/doc/README +3 -0
- data/vendor/thor/spec/fixtures/doc/config.rb +1 -0
- data/vendor/thor/spec/fixtures/group.thor +83 -0
- data/vendor/thor/spec/fixtures/invoke.thor +112 -0
- data/vendor/thor/spec/fixtures/script.thor +126 -0
- data/vendor/thor/spec/fixtures/task.thor +10 -0
- data/vendor/thor/spec/group_spec.rb +177 -0
- data/vendor/thor/spec/invocation_spec.rb +107 -0
- data/vendor/thor/spec/parser/argument_spec.rb +47 -0
- data/vendor/thor/spec/parser/arguments_spec.rb +64 -0
- data/vendor/thor/spec/parser/option_spec.rb +212 -0
- data/vendor/thor/spec/parser/options_spec.rb +255 -0
- data/vendor/thor/spec/rake_compat_spec.rb +68 -0
- data/vendor/thor/spec/runner_spec.rb +204 -0
- data/vendor/thor/spec/shell/basic_spec.rb +211 -0
- data/vendor/thor/spec/shell/color_spec.rb +41 -0
- data/vendor/thor/spec/shell_spec.rb +25 -0
- data/vendor/thor/spec/spec.opts +1 -0
- data/vendor/thor/spec/spec_helper.rb +52 -0
- data/vendor/thor/spec/task_spec.rb +88 -0
- data/vendor/thor/spec/thor_spec.rb +234 -0
- data/vendor/thor/spec/util_spec.rb +196 -0
- metadata +1208 -899
- data/cucumber.yml +0 -1
- data/doc/0.0.3/Array.html +0 -354
- data/doc/0.0.3/AttributeMixin.html +0 -697
- data/doc/0.0.3/Class.html +0 -102
- data/doc/0.0.3/ColoredString.html +0 -476
- data/doc/0.0.3/Enumerable.html +0 -256
- data/doc/0.0.3/File.html +0 -909
- data/doc/0.0.3/Hash.html +0 -1586
- data/doc/0.0.3/Kernel.html +0 -956
- data/doc/0.0.3/OS.html +0 -740
- data/doc/0.0.3/Object.html +0 -466
- data/doc/0.0.3/ObjectSpace.html +0 -184
- data/doc/0.0.3/Path.html +0 -2499
- data/doc/0.0.3/Range.html +0 -190
- data/doc/0.0.3/Rango.html +0 -379
- data/doc/0.0.3/Rango/ApplicationMixin.html +0 -396
- data/doc/0.0.3/Rango/Bundling.html +0 -23
- data/doc/0.0.3/Rango/Bundling/RequireStrategy.html +0 -283
- data/doc/0.0.3/Rango/Bundling/Strategy.html +0 -703
- data/doc/0.0.3/Rango/CLI.html +0 -23
- data/doc/0.0.3/Rango/CLI/Generator.html +0 -762
- data/doc/0.0.3/Rango/CLI/Templater.html +0 -258
- data/doc/0.0.3/Rango/CallableStrategy.html +0 -300
- data/doc/0.0.3/Rango/Chainable.html +0 -181
- data/doc/0.0.3/Rango/Configurable.html +0 -199
- data/doc/0.0.3/Rango/Controller.html +0 -962
- data/doc/0.0.3/Rango/ControllerMixin.html +0 -860
- data/doc/0.0.3/Rango/ControllerStrategy.html +0 -264
- data/doc/0.0.3/Rango/DependencyStrategy.html +0 -116
- data/doc/0.0.3/Rango/Dispatcher.html +0 -305
- data/doc/0.0.3/Rango/Form.html +0 -162
- data/doc/0.0.3/Rango/GemDependencyStrategy.html +0 -210
- data/doc/0.0.3/Rango/Generator.html +0 -93
- data/doc/0.0.3/Rango/GenericViews.html +0 -128
- data/doc/0.0.3/Rango/GitDependencyStrategy.html +0 -224
- data/doc/0.0.3/Rango/GithubDependencyStrategy.html +0 -118
- data/doc/0.0.3/Rango/Handler.html +0 -474
- data/doc/0.0.3/Rango/Helpers.html +0 -1335
- data/doc/0.0.3/Rango/Hookable.html +0 -202
- data/doc/0.0.3/Rango/ImportMixin.html +0 -755
- data/doc/0.0.3/Rango/Logger.html +0 -920
- data/doc/0.0.3/Rango/Mini.html +0 -117
- data/doc/0.0.3/Rango/ModelForm.html +0 -42
- data/doc/0.0.3/Rango/Project.html +0 -516
- data/doc/0.0.3/Rango/RenderMixin.html +0 -23
- data/doc/0.0.3/Rango/Request.html +0 -1177
- data/doc/0.0.3/Rango/Route.html +0 -751
- data/doc/0.0.3/Rango/Router.html +0 -42
- data/doc/0.0.3/Rango/Router/Dispatcher.html +0 -311
- data/doc/0.0.3/Rango/RouterStrategy.html +0 -258
- data/doc/0.0.3/Rango/Session.html +0 -23
- data/doc/0.0.3/Rango/Settings.html +0 -23
- data/doc/0.0.3/Rango/Settings/Erubis.html +0 -23
- data/doc/0.0.3/Rango/Settings/Framework.html +0 -254
- data/doc/0.0.3/Rango/Settings/Haml.html +0 -23
- data/doc/0.0.3/Rango/Settings/Template.html +0 -23
- data/doc/0.0.3/Rango/SimpleTemplate.html +0 -187
- data/doc/0.0.3/Rango/StrategyMixin.html +0 -261
- data/doc/0.0.3/Rango/Tasks.html +0 -219
- data/doc/0.0.3/Rango/Template.html +0 -95
- data/doc/0.0.3/Rango/Template/Adapter.html +0 -90
- data/doc/0.0.3/Rango/Templates.html +0 -116
- data/doc/0.0.3/Rango/Templates/Adapter.html +0 -128
- data/doc/0.0.3/Rango/Templates/Template.html +0 -636
- data/doc/0.0.3/Rango/Templates/TemplateHelpers.html +0 -328
- data/doc/0.0.3/RangoThor.html +0 -205
- data/doc/0.0.3/String.html +0 -307
- data/doc/0.0.3/Time.html +0 -193
- data/doc/0.0.3/TimeDSL.html +0 -601
- data/doc/0.0.3/all-methods.html +0 -1908
- data/doc/0.0.3/all-namespaces.html +0 -114
- data/doc/0.0.3/app.js +0 -18
- data/doc/0.0.3/head/Array.html +0 -354
- data/doc/0.0.3/head/AttributeMixin.html +0 -697
- data/doc/0.0.3/head/Class.html +0 -102
- data/doc/0.0.3/head/ColoredString.html +0 -476
- data/doc/0.0.3/head/Enumerable.html +0 -256
- data/doc/0.0.3/head/File.html +0 -909
- data/doc/0.0.3/head/Hash.html +0 -1586
- data/doc/0.0.3/head/Kernel.html +0 -956
- data/doc/0.0.3/head/OS.html +0 -740
- data/doc/0.0.3/head/Object.html +0 -466
- data/doc/0.0.3/head/ObjectSpace.html +0 -184
- data/doc/0.0.3/head/Path.html +0 -2499
- data/doc/0.0.3/head/Range.html +0 -190
- data/doc/0.0.3/head/Rango.html +0 -379
- data/doc/0.0.3/head/Rango/ApplicationMixin.html +0 -396
- data/doc/0.0.3/head/Rango/Bundling.html +0 -23
- data/doc/0.0.3/head/Rango/Bundling/RequireStrategy.html +0 -283
- data/doc/0.0.3/head/Rango/Bundling/Strategy.html +0 -703
- data/doc/0.0.3/head/Rango/CLI.html +0 -23
- data/doc/0.0.3/head/Rango/CLI/Generator.html +0 -762
- data/doc/0.0.3/head/Rango/CLI/Templater.html +0 -258
- data/doc/0.0.3/head/Rango/CallableStrategy.html +0 -300
- data/doc/0.0.3/head/Rango/Chainable.html +0 -181
- data/doc/0.0.3/head/Rango/Configurable.html +0 -199
- data/doc/0.0.3/head/Rango/Controller.html +0 -962
- data/doc/0.0.3/head/Rango/ControllerMixin.html +0 -860
- data/doc/0.0.3/head/Rango/ControllerStrategy.html +0 -264
- data/doc/0.0.3/head/Rango/DependencyStrategy.html +0 -116
- data/doc/0.0.3/head/Rango/Dispatcher.html +0 -305
- data/doc/0.0.3/head/Rango/Form.html +0 -162
- data/doc/0.0.3/head/Rango/GemDependencyStrategy.html +0 -210
- data/doc/0.0.3/head/Rango/Generator.html +0 -93
- data/doc/0.0.3/head/Rango/GenericViews.html +0 -128
- data/doc/0.0.3/head/Rango/GitDependencyStrategy.html +0 -224
- data/doc/0.0.3/head/Rango/GithubDependencyStrategy.html +0 -118
- data/doc/0.0.3/head/Rango/Handler.html +0 -474
- data/doc/0.0.3/head/Rango/Helpers.html +0 -1335
- data/doc/0.0.3/head/Rango/Hookable.html +0 -202
- data/doc/0.0.3/head/Rango/ImportMixin.html +0 -755
- data/doc/0.0.3/head/Rango/Logger.html +0 -920
- data/doc/0.0.3/head/Rango/Mini.html +0 -117
- data/doc/0.0.3/head/Rango/ModelForm.html +0 -42
- data/doc/0.0.3/head/Rango/Project.html +0 -516
- data/doc/0.0.3/head/Rango/RenderMixin.html +0 -23
- data/doc/0.0.3/head/Rango/Request.html +0 -1177
- data/doc/0.0.3/head/Rango/Route.html +0 -751
- data/doc/0.0.3/head/Rango/Router.html +0 -42
- data/doc/0.0.3/head/Rango/Router/Dispatcher.html +0 -311
- data/doc/0.0.3/head/Rango/RouterStrategy.html +0 -258
- data/doc/0.0.3/head/Rango/Session.html +0 -23
- data/doc/0.0.3/head/Rango/Settings.html +0 -23
- data/doc/0.0.3/head/Rango/Settings/Erubis.html +0 -23
- data/doc/0.0.3/head/Rango/Settings/Framework.html +0 -254
- data/doc/0.0.3/head/Rango/Settings/Haml.html +0 -23
- data/doc/0.0.3/head/Rango/Settings/Template.html +0 -23
- data/doc/0.0.3/head/Rango/SimpleTemplate.html +0 -187
- data/doc/0.0.3/head/Rango/StrategyMixin.html +0 -261
- data/doc/0.0.3/head/Rango/Tasks.html +0 -219
- data/doc/0.0.3/head/Rango/Template.html +0 -95
- data/doc/0.0.3/head/Rango/Template/Adapter.html +0 -90
- data/doc/0.0.3/head/Rango/Templates.html +0 -116
- data/doc/0.0.3/head/Rango/Templates/Adapter.html +0 -128
- data/doc/0.0.3/head/Rango/Templates/Template.html +0 -636
- data/doc/0.0.3/head/Rango/Templates/TemplateHelpers.html +0 -328
- data/doc/0.0.3/head/RangoThor.html +0 -205
- data/doc/0.0.3/head/String.html +0 -307
- data/doc/0.0.3/head/Time.html +0 -193
- data/doc/0.0.3/head/TimeDSL.html +0 -601
- data/doc/0.0.3/head/all-methods.html +0 -1908
- data/doc/0.0.3/head/all-namespaces.html +0 -114
- data/doc/0.0.3/head/app.js +0 -18
- data/doc/0.0.3/head/index.html +0 -18
- data/doc/0.0.3/head/jquery.js +0 -11
- data/doc/0.0.3/head/readme.html +0 -36
- data/doc/0.0.3/head/style.css +0 -68
- data/doc/0.0.3/head/syntax_highlight.css +0 -21
- data/doc/0.0.3/index.html +0 -18
- data/doc/0.0.3/jquery.js +0 -11
- data/doc/0.0.3/readme.html +0 -36
- data/doc/0.0.3/style.css +0 -68
- data/doc/0.0.3/syntax_highlight.css +0 -21
- data/doc/0.0.4/Array.html +0 -354
- data/doc/0.0.4/AttributeMixin.html +0 -697
- data/doc/0.0.4/Class.html +0 -102
- data/doc/0.0.4/ColoredString.html +0 -476
- data/doc/0.0.4/Enumerable.html +0 -256
- data/doc/0.0.4/File.html +0 -909
- data/doc/0.0.4/Hash.html +0 -1586
- data/doc/0.0.4/Kernel.html +0 -956
- data/doc/0.0.4/OS.html +0 -740
- data/doc/0.0.4/Object.html +0 -466
- data/doc/0.0.4/ObjectSpace.html +0 -184
- data/doc/0.0.4/Path.html +0 -2499
- data/doc/0.0.4/Range.html +0 -190
- data/doc/0.0.4/Rango.html +0 -379
- data/doc/0.0.4/Rango/ApplicationMixin.html +0 -396
- data/doc/0.0.4/Rango/Bundling.html +0 -23
- data/doc/0.0.4/Rango/Bundling/RequireStrategy.html +0 -283
- data/doc/0.0.4/Rango/Bundling/Strategy.html +0 -703
- data/doc/0.0.4/Rango/CLI.html +0 -23
- data/doc/0.0.4/Rango/CLI/Generator.html +0 -762
- data/doc/0.0.4/Rango/CLI/Templater.html +0 -258
- data/doc/0.0.4/Rango/CallableStrategy.html +0 -300
- data/doc/0.0.4/Rango/Chainable.html +0 -181
- data/doc/0.0.4/Rango/Configurable.html +0 -199
- data/doc/0.0.4/Rango/Controller.html +0 -962
- data/doc/0.0.4/Rango/ControllerMixin.html +0 -860
- data/doc/0.0.4/Rango/ControllerStrategy.html +0 -264
- data/doc/0.0.4/Rango/DependencyStrategy.html +0 -116
- data/doc/0.0.4/Rango/Dispatcher.html +0 -305
- data/doc/0.0.4/Rango/Form.html +0 -162
- data/doc/0.0.4/Rango/GemDependencyStrategy.html +0 -210
- data/doc/0.0.4/Rango/Generator.html +0 -93
- data/doc/0.0.4/Rango/GenericViews.html +0 -128
- data/doc/0.0.4/Rango/GitDependencyStrategy.html +0 -224
- data/doc/0.0.4/Rango/GithubDependencyStrategy.html +0 -118
- data/doc/0.0.4/Rango/Handler.html +0 -474
- data/doc/0.0.4/Rango/Helpers.html +0 -1335
- data/doc/0.0.4/Rango/Hookable.html +0 -202
- data/doc/0.0.4/Rango/ImportMixin.html +0 -755
- data/doc/0.0.4/Rango/Logger.html +0 -920
- data/doc/0.0.4/Rango/Mini.html +0 -117
- data/doc/0.0.4/Rango/ModelForm.html +0 -42
- data/doc/0.0.4/Rango/Project.html +0 -516
- data/doc/0.0.4/Rango/RenderMixin.html +0 -23
- data/doc/0.0.4/Rango/Request.html +0 -1177
- data/doc/0.0.4/Rango/Route.html +0 -751
- data/doc/0.0.4/Rango/Router.html +0 -42
- data/doc/0.0.4/Rango/Router/Dispatcher.html +0 -311
- data/doc/0.0.4/Rango/RouterStrategy.html +0 -258
- data/doc/0.0.4/Rango/Session.html +0 -23
- data/doc/0.0.4/Rango/Settings.html +0 -23
- data/doc/0.0.4/Rango/Settings/Erubis.html +0 -23
- data/doc/0.0.4/Rango/Settings/Framework.html +0 -254
- data/doc/0.0.4/Rango/Settings/Haml.html +0 -23
- data/doc/0.0.4/Rango/Settings/Template.html +0 -23
- data/doc/0.0.4/Rango/SimpleTemplate.html +0 -187
- data/doc/0.0.4/Rango/StrategyMixin.html +0 -261
- data/doc/0.0.4/Rango/Tasks.html +0 -219
- data/doc/0.0.4/Rango/Template.html +0 -95
- data/doc/0.0.4/Rango/Template/Adapter.html +0 -90
- data/doc/0.0.4/Rango/Templates.html +0 -116
- data/doc/0.0.4/Rango/Templates/Adapter.html +0 -128
- data/doc/0.0.4/Rango/Templates/Template.html +0 -636
- data/doc/0.0.4/Rango/Templates/TemplateHelpers.html +0 -328
- data/doc/0.0.4/RangoThor.html +0 -205
- data/doc/0.0.4/String.html +0 -307
- data/doc/0.0.4/Time.html +0 -193
- data/doc/0.0.4/TimeDSL.html +0 -601
- data/doc/0.0.4/all-methods.html +0 -1908
- data/doc/0.0.4/all-namespaces.html +0 -114
- data/doc/0.0.4/app.js +0 -18
- data/doc/0.0.4/head/Array.html +0 -354
- data/doc/0.0.4/head/AttributeMixin.html +0 -697
- data/doc/0.0.4/head/Class.html +0 -102
- data/doc/0.0.4/head/ColoredString.html +0 -476
- data/doc/0.0.4/head/Enumerable.html +0 -256
- data/doc/0.0.4/head/File.html +0 -909
- data/doc/0.0.4/head/Hash.html +0 -1586
- data/doc/0.0.4/head/Kernel.html +0 -956
- data/doc/0.0.4/head/OS.html +0 -740
- data/doc/0.0.4/head/Object.html +0 -466
- data/doc/0.0.4/head/ObjectSpace.html +0 -184
- data/doc/0.0.4/head/Path.html +0 -2499
- data/doc/0.0.4/head/Range.html +0 -190
- data/doc/0.0.4/head/Rango.html +0 -379
- data/doc/0.0.4/head/Rango/ApplicationMixin.html +0 -396
- data/doc/0.0.4/head/Rango/Bundling.html +0 -23
- data/doc/0.0.4/head/Rango/Bundling/RequireStrategy.html +0 -283
- data/doc/0.0.4/head/Rango/Bundling/Strategy.html +0 -703
- data/doc/0.0.4/head/Rango/CLI.html +0 -23
- data/doc/0.0.4/head/Rango/CLI/Generator.html +0 -762
- data/doc/0.0.4/head/Rango/CLI/Templater.html +0 -258
- data/doc/0.0.4/head/Rango/CallableStrategy.html +0 -300
- data/doc/0.0.4/head/Rango/Chainable.html +0 -181
- data/doc/0.0.4/head/Rango/Configurable.html +0 -199
- data/doc/0.0.4/head/Rango/Controller.html +0 -962
- data/doc/0.0.4/head/Rango/ControllerMixin.html +0 -860
- data/doc/0.0.4/head/Rango/ControllerStrategy.html +0 -264
- data/doc/0.0.4/head/Rango/DependencyStrategy.html +0 -116
- data/doc/0.0.4/head/Rango/Dispatcher.html +0 -305
- data/doc/0.0.4/head/Rango/Form.html +0 -162
- data/doc/0.0.4/head/Rango/GemDependencyStrategy.html +0 -210
- data/doc/0.0.4/head/Rango/Generator.html +0 -93
- data/doc/0.0.4/head/Rango/GenericViews.html +0 -128
- data/doc/0.0.4/head/Rango/GitDependencyStrategy.html +0 -224
- data/doc/0.0.4/head/Rango/GithubDependencyStrategy.html +0 -118
- data/doc/0.0.4/head/Rango/Handler.html +0 -474
- data/doc/0.0.4/head/Rango/Helpers.html +0 -1335
- data/doc/0.0.4/head/Rango/Hookable.html +0 -202
- data/doc/0.0.4/head/Rango/ImportMixin.html +0 -755
- data/doc/0.0.4/head/Rango/Logger.html +0 -920
- data/doc/0.0.4/head/Rango/Mini.html +0 -117
- data/doc/0.0.4/head/Rango/ModelForm.html +0 -42
- data/doc/0.0.4/head/Rango/Project.html +0 -516
- data/doc/0.0.4/head/Rango/RenderMixin.html +0 -23
- data/doc/0.0.4/head/Rango/Request.html +0 -1177
- data/doc/0.0.4/head/Rango/Route.html +0 -751
- data/doc/0.0.4/head/Rango/Router.html +0 -42
- data/doc/0.0.4/head/Rango/Router/Dispatcher.html +0 -311
- data/doc/0.0.4/head/Rango/RouterStrategy.html +0 -258
- data/doc/0.0.4/head/Rango/Session.html +0 -23
- data/doc/0.0.4/head/Rango/Settings.html +0 -23
- data/doc/0.0.4/head/Rango/Settings/Erubis.html +0 -23
- data/doc/0.0.4/head/Rango/Settings/Framework.html +0 -254
- data/doc/0.0.4/head/Rango/Settings/Haml.html +0 -23
- data/doc/0.0.4/head/Rango/Settings/Template.html +0 -23
- data/doc/0.0.4/head/Rango/SimpleTemplate.html +0 -187
- data/doc/0.0.4/head/Rango/StrategyMixin.html +0 -261
- data/doc/0.0.4/head/Rango/Tasks.html +0 -219
- data/doc/0.0.4/head/Rango/Template.html +0 -95
- data/doc/0.0.4/head/Rango/Template/Adapter.html +0 -90
- data/doc/0.0.4/head/Rango/Templates.html +0 -116
- data/doc/0.0.4/head/Rango/Templates/Adapter.html +0 -128
- data/doc/0.0.4/head/Rango/Templates/Template.html +0 -636
- data/doc/0.0.4/head/Rango/Templates/TemplateHelpers.html +0 -328
- data/doc/0.0.4/head/RangoThor.html +0 -205
- data/doc/0.0.4/head/String.html +0 -307
- data/doc/0.0.4/head/Time.html +0 -193
- data/doc/0.0.4/head/TimeDSL.html +0 -601
- data/doc/0.0.4/head/all-methods.html +0 -1908
- data/doc/0.0.4/head/all-namespaces.html +0 -114
- data/doc/0.0.4/head/app.js +0 -18
- data/doc/0.0.4/head/index.html +0 -18
- data/doc/0.0.4/head/jquery.js +0 -11
- data/doc/0.0.4/head/readme.html +0 -36
- data/doc/0.0.4/head/style.css +0 -68
- data/doc/0.0.4/head/syntax_highlight.css +0 -21
- data/doc/0.0.4/index.html +0 -18
- data/doc/0.0.4/jquery.js +0 -11
- data/doc/0.0.4/readme.html +0 -36
- data/doc/0.0.4/style.css +0 -68
- data/doc/0.0.4/syntax_highlight.css +0 -21
- data/doc/head/Array.html +0 -354
- data/doc/head/AttributeMixin.html +0 -697
- data/doc/head/Class.html +0 -102
- data/doc/head/ColoredString.html +0 -476
- data/doc/head/Enumerable.html +0 -256
- data/doc/head/File.html +0 -909
- data/doc/head/Hash.html +0 -1586
- data/doc/head/Kernel.html +0 -956
- data/doc/head/OS.html +0 -740
- data/doc/head/Object.html +0 -466
- data/doc/head/ObjectSpace.html +0 -184
- data/doc/head/Path.html +0 -2499
- data/doc/head/Range.html +0 -190
- data/doc/head/Rango.html +0 -379
- data/doc/head/Rango/ApplicationMixin.html +0 -396
- data/doc/head/Rango/Bundling.html +0 -23
- data/doc/head/Rango/Bundling/RequireStrategy.html +0 -283
- data/doc/head/Rango/Bundling/Strategy.html +0 -703
- data/doc/head/Rango/CLI.html +0 -23
- data/doc/head/Rango/CLI/Generator.html +0 -762
- data/doc/head/Rango/CLI/Templater.html +0 -258
- data/doc/head/Rango/CallableStrategy.html +0 -300
- data/doc/head/Rango/Chainable.html +0 -181
- data/doc/head/Rango/Configurable.html +0 -199
- data/doc/head/Rango/Controller.html +0 -962
- data/doc/head/Rango/ControllerMixin.html +0 -860
- data/doc/head/Rango/ControllerStrategy.html +0 -264
- data/doc/head/Rango/DependencyStrategy.html +0 -116
- data/doc/head/Rango/Dispatcher.html +0 -305
- data/doc/head/Rango/Form.html +0 -162
- data/doc/head/Rango/GemDependencyStrategy.html +0 -210
- data/doc/head/Rango/Generator.html +0 -93
- data/doc/head/Rango/GenericViews.html +0 -128
- data/doc/head/Rango/GitDependencyStrategy.html +0 -224
- data/doc/head/Rango/GithubDependencyStrategy.html +0 -118
- data/doc/head/Rango/Handler.html +0 -474
- data/doc/head/Rango/Helpers.html +0 -1335
- data/doc/head/Rango/Hookable.html +0 -202
- data/doc/head/Rango/ImportMixin.html +0 -755
- data/doc/head/Rango/Logger.html +0 -920
- data/doc/head/Rango/Mini.html +0 -117
- data/doc/head/Rango/ModelForm.html +0 -42
- data/doc/head/Rango/Project.html +0 -516
- data/doc/head/Rango/RenderMixin.html +0 -23
- data/doc/head/Rango/Request.html +0 -1177
- data/doc/head/Rango/Route.html +0 -751
- data/doc/head/Rango/Router.html +0 -42
- data/doc/head/Rango/Router/Dispatcher.html +0 -311
- data/doc/head/Rango/RouterStrategy.html +0 -258
- data/doc/head/Rango/Session.html +0 -23
- data/doc/head/Rango/Settings.html +0 -23
- data/doc/head/Rango/Settings/Erubis.html +0 -23
- data/doc/head/Rango/Settings/Framework.html +0 -254
- data/doc/head/Rango/Settings/Haml.html +0 -23
- data/doc/head/Rango/Settings/Template.html +0 -23
- data/doc/head/Rango/SimpleTemplate.html +0 -187
- data/doc/head/Rango/StrategyMixin.html +0 -261
- data/doc/head/Rango/Tasks.html +0 -219
- data/doc/head/Rango/Template.html +0 -95
- data/doc/head/Rango/Template/Adapter.html +0 -90
- data/doc/head/Rango/Templates.html +0 -116
- data/doc/head/Rango/Templates/Adapter.html +0 -128
- data/doc/head/Rango/Templates/Template.html +0 -636
- data/doc/head/Rango/Templates/TemplateHelpers.html +0 -328
- data/doc/head/RangoThor.html +0 -205
- data/doc/head/String.html +0 -307
- data/doc/head/Time.html +0 -193
- data/doc/head/TimeDSL.html +0 -601
- data/doc/head/all-methods.html +0 -1908
- data/doc/head/all-namespaces.html +0 -114
- data/doc/head/app.js +0 -18
- data/doc/head/index.html +0 -18
- data/doc/head/jquery.js +0 -11
- data/doc/head/readme.html +0 -36
- data/doc/head/style.css +0 -68
- data/doc/head/syntax_highlight.css +0 -21
- data/doc/versions/0.0.1/Rango.html +0 -1025
- data/doc/versions/0.0.1/Rango/CallableStrategy.html +0 -166
- data/doc/versions/0.0.1/Rango/ControllerStrategy.html +0 -180
- data/doc/versions/0.0.1/Rango/Route.html +0 -340
- data/doc/versions/0.0.1/Rango/Router.html +0 -502
- data/doc/versions/0.0.1/Rango/RouterStrategy.html +0 -94
- data/doc/versions/0.0.1/Rango/Template.html +0 -28
- data/doc/versions/0.0.1/Rango/Template/Adapter.html +0 -90
- data/doc/versions/0.0.1/all-methods.html +0 -228
- data/doc/versions/0.0.1/all-namespaces.html +0 -36
- data/doc/versions/0.0.1/app.js +0 -18
- data/doc/versions/0.0.1/index.html +0 -18
- data/doc/versions/0.0.1/jquery.js +0 -11
- data/doc/versions/0.0.1/readme.html +0 -137
- data/doc/versions/0.0.1/style.css +0 -68
- data/doc/versions/0.0.1/syntax_highlight.css +0 -21
- data/features/TODO.txt +0 -5
- data/features/generators/app.feature +0 -11
- data/features/generators_steps.rb +0 -26
- data/features/shared/then_steps.rb +0 -1
- data/features/shared/when_steps.rb +0 -1
- data/features/support/env.rb +0 -64
- data/lib/rango/bundling/dependency.rb +0 -61
- data/lib/rango/bundling/strategies/copy.rb +0 -36
- data/lib/rango/bundling/strategies/gem.rb +0 -55
- data/lib/rango/bundling/strategies/git.rb +0 -71
- data/lib/rango/bundling/strategies/hg.rb +0 -9
- data/lib/rango/bundling/strategy.rb +0 -85
- data/lib/rango/cli/generator.rb +0 -122
- data/lib/rango/cli/templater.rb +0 -89
- data/lib/rango/ext.rb +0 -85
- data/lib/rango/ext/attribute.rb +0 -152
- data/lib/rango/ext/colored_string.rb +0 -105
- data/lib/rango/ext/kernel.rb +0 -91
- data/lib/rango/ext/platform.rb +0 -27
- data/lib/rango/ext/string.rb +0 -30
- data/lib/rango/ext/thor.rb +0 -32
- data/lib/rango/ext/unique_array.rb +0 -16
- data/lib/rango/generic_views.rb +0 -18
- data/lib/rango/mixins/controller.rb +0 -114
- data/lib/rango/orm/adapters/datamapper/setup.rb +0 -16
- data/lib/rango/orm/adapters/datamapper/tasks.thor +0 -41
- data/lib/rango/orm/adapters/datamapper/types/unicode_string.rb +0 -15
- data/lib/rango/tasks/bundle.thor +0 -28
- data/lib/rango/tasks/stats.thor +0 -1
- data/rango.gemspec.erb +0 -43
- data/spec/rango/ext/array_spec.rb +0 -19
- data/spec/rango/ext/attribute_spec.rb +0 -37
- data/spec/rango/ext/colored_string_spec.rb +0 -9
- data/spec/rango/ext/enumerable_spec.rb +0 -52
- data/spec/rango/ext/file_spec.rb +0 -78
- data/spec/rango/ext/hash_spec.rb +0 -91
- data/spec/rango/ext/kernel_spec.rb +0 -9
- data/spec/rango/ext/object_space_spec.rb +0 -17
- data/spec/rango/ext/object_spec.rb +0 -57
- data/spec/rango/ext/os_spec.rb +0 -121
- data/spec/rango/ext/random_spec.rb +0 -31
- data/spec/rango/ext/string_spec.rb +0 -23
- data/spec/rango/ext/thor_spec.rb +0 -26
- data/spec/rango/ext/time_dsl_spec.rb +0 -86
- data/spec/rango/ext/time_spec.rb +0 -11
- data/spec/rango/ext_spec.rb +0 -182
- data/spec/rango/helpers/spec/fixture/app/controllers/numeric_ext_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/option_tag_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/password_field_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/radio_button_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/radio_group_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_span_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/select_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/specs_controller_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/submit_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/tag_helper_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/text_area_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/controllers/text_field_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/helpers/global_helpers_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/models/fake_dm_model_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/models/first_generic_fake_model_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/models/hacker_generic_model_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/models/second_generic_fake_model_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/app/models/third_generic_fake_model_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/config/environments/development_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/config/environments/production_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/config/environments/test_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/config/init_spec.rb +0 -0
- data/spec/rango/helpers/spec/fixture/config/rack_spec.rb +0 -0
- data/spec/rango/helpers/spec/merb_helpers_config_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/merb_helpers_date_time_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/merb_helpers_form_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/merb_helpers_tag_helper_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/merb_helpers_text_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/numeric_extlib_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/ordinalize_spec_spec.rb +0 -0
- data/spec/rango/helpers/spec/spec_helper_spec.rb +0 -0
- data/spec/rango/helpers/spec/time_dsl_spec_spec.rb +0 -0
- data/spec/rango/mixins/controller_spec.rb +0 -0
- data/spec/rango/orm/adapters/datamapper/setup_spec.rb +0 -0
- data/spec/rango/orm/adapters/datamapper/types/unicode_string_spec.rb +0 -0
- data/spec/rango/router/adapters/basic_spec.rb +0 -0
- data/spec/rango/router/adapters/rack-router_spec.rb +0 -0
- data/spec/rango/router/dispatcher_spec.rb +0 -0
- data/stubs/app/preprocess.rb +0 -14
- data/stubs/bigapp/preprocess.rb +0 -5
- data/stubs/flat/preprocess.rb +0 -5
- data/stubs/project/content/TODO +0 -0
- data/stubs/project/content/Thorfile +0 -12
- data/stubs/project/content/config.ru +0 -33
- data/stubs/project/content/init.rb +0 -24
- data/stubs/project/content/settings.rb.rbt +0 -10
- data/stubs/pupu/content/CHANGELOG +0 -0
- data/stubs/pupu/content/LICENSE.rbt +0 -20
- data/stubs/pupu/content/README.textile.rbt +0 -7
- data/stubs/pupu/content/TODO +0 -5
- data/stubs/pupu/content/Thorfile.rbt +0 -21
- data/stubs/pupu/content/config.rb.rbt +0 -14
- data/stubs/pupu/content/initializers/%name%.css +0 -0
- data/stubs/pupu/content/initializers/%name%.js +0 -3
- data/stubs/pupu/content/javascripts/%name%.js +0 -0
- data/stubs/pupu/content/stylesheets/%name%.css +0 -0
- data/stubs/pupu/metadata.yml +0 -4
- data/stubs/pupu/preprocess.rb +0 -7
- data/stubs/stub/content/metadata.yml +0 -4
- data/stubs/stub/content/postprocess.rb +0 -5
- data/stubs/stub/content/preprocess.rb +0 -5
- data/stubs/stub/metadata.yml +0 -4
- data/templates.txt +0 -39
@@ -0,0 +1,442 @@
|
|
1
|
+
class Hash
|
2
|
+
class << self
|
3
|
+
# Converts valid XML into a Ruby Hash structure.
|
4
|
+
#
|
5
|
+
# Mixed content is treated as text and any tags in it are left unparsed
|
6
|
+
#
|
7
|
+
# Any attributes other than type on a node containing a text node will be
|
8
|
+
# discarded
|
9
|
+
#
|
10
|
+
# [Typecasting is performed on elements that have a +type+ attribute:]
|
11
|
+
# integer:: Returns an Integer
|
12
|
+
# boolean:: Anything other than "true" evaluates to false.
|
13
|
+
# datetime::
|
14
|
+
# Returns a Time object. See Time documentation for valid Time strings.
|
15
|
+
# date::
|
16
|
+
# Returns a Date object. See Date documentation for valid Date strings.
|
17
|
+
#
|
18
|
+
# Keys are automatically converted to +snake_case+
|
19
|
+
#
|
20
|
+
# [Simple]
|
21
|
+
#
|
22
|
+
# <user gender='m'>
|
23
|
+
# <age type='integer'>35</age>
|
24
|
+
# <name>Home Simpson</name>
|
25
|
+
# <dob type='date'>1988-01-01</dob>
|
26
|
+
# <joined-at type='datetime'>2000-04-28 23:01</joined-at>
|
27
|
+
# <is-cool type='boolean'>true</is-cool>
|
28
|
+
# </user>
|
29
|
+
#
|
30
|
+
# Becomes:
|
31
|
+
#
|
32
|
+
# { "user" => {
|
33
|
+
# "gender" => "m",
|
34
|
+
# "age" => 35,
|
35
|
+
# "name" => "Home Simpson",
|
36
|
+
# "dob" => DateObject( 1998-01-01 ),
|
37
|
+
# "joined_at" => TimeObject( 2000-04-28 23:01),
|
38
|
+
# "is_cool" => true
|
39
|
+
# }
|
40
|
+
# }
|
41
|
+
#
|
42
|
+
# [Mixed Content]
|
43
|
+
#
|
44
|
+
# <story>
|
45
|
+
# A Quick <em>brown</em> Fox
|
46
|
+
# </story>
|
47
|
+
#
|
48
|
+
# Evaluates to:
|
49
|
+
#
|
50
|
+
# { "story" => "A Quick <em>brown</em> Fox" }
|
51
|
+
#
|
52
|
+
# [Attributes other than type on a node containing text]
|
53
|
+
#
|
54
|
+
# <story is-good='false'>
|
55
|
+
# A Quick <em>brown</em> Fox
|
56
|
+
# </story>
|
57
|
+
#
|
58
|
+
# Are ignored:
|
59
|
+
#
|
60
|
+
# { "story" => "A Quick <em>brown</em> Fox" }
|
61
|
+
#
|
62
|
+
# [Other attributes in addition to +type+]
|
63
|
+
#
|
64
|
+
# <bicep unit='inches' type='integer'>60</bicep>
|
65
|
+
#
|
66
|
+
# Evaluates with a typecast to an integer. But unit attribute is ignored:
|
67
|
+
#
|
68
|
+
# { "bicep" => 60 }
|
69
|
+
#
|
70
|
+
# @param [String] xml A string representation of valid XML.
|
71
|
+
#
|
72
|
+
# @return [Hash] A hash created by parsing +xml+
|
73
|
+
def from_xml( xml )
|
74
|
+
ToHashParser.from_xml(xml)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# Convert to Mash. This class has semantics of ActiveSupport's
|
79
|
+
# HashWithIndifferentAccess and we only have it so that people can write
|
80
|
+
# params[:key] instead of params['key'].
|
81
|
+
#
|
82
|
+
# @return [Mash] This hash as a Mash for string or symbol key access.
|
83
|
+
def to_mash
|
84
|
+
hash = Mash.new(self)
|
85
|
+
hash.default = default
|
86
|
+
hash
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# Convert to URL query param string
|
91
|
+
#
|
92
|
+
# { :name => "Bob",
|
93
|
+
# :address => {
|
94
|
+
# :street => '111 Ruby Ave.',
|
95
|
+
# :city => 'Ruby Central',
|
96
|
+
# :phones => ['111-111-1111', '222-222-2222']
|
97
|
+
# }
|
98
|
+
# }.to_params
|
99
|
+
# #=> "name=Bob&address[city]=Ruby Central&address[phones][]=111-111-1111&address[phones][]=222-222-2222&address[street]=111 Ruby Ave."
|
100
|
+
#
|
101
|
+
# @return [String] This hash as a query string
|
102
|
+
#
|
103
|
+
# @api public
|
104
|
+
def to_params
|
105
|
+
params = self.map { |k,v| normalize_param(k,v) }.join
|
106
|
+
params.chop! # trailing &
|
107
|
+
params
|
108
|
+
end
|
109
|
+
|
110
|
+
##
|
111
|
+
# Convert a key, value pair into a URL query param string
|
112
|
+
#
|
113
|
+
# normalize_param(:name, "Bob") #=> "name=Bob&"
|
114
|
+
#
|
115
|
+
# @param [Object] key The key for the param.
|
116
|
+
# @param [Object] value The value for the param.
|
117
|
+
#
|
118
|
+
# @return <String> This key value pair as a param
|
119
|
+
#
|
120
|
+
# @api public
|
121
|
+
def normalize_param(key, value)
|
122
|
+
param = ''
|
123
|
+
stack = []
|
124
|
+
|
125
|
+
if value.is_a?(Array)
|
126
|
+
param << value.map { |element| normalize_param("#{key}[]", element) }.join
|
127
|
+
elsif value.is_a?(Hash)
|
128
|
+
stack << [key,value]
|
129
|
+
else
|
130
|
+
param << "#{key}=#{value}&"
|
131
|
+
end
|
132
|
+
|
133
|
+
stack.each do |parent, hash|
|
134
|
+
hash.each do |k, v|
|
135
|
+
if v.is_a?(Hash)
|
136
|
+
stack << ["#{parent}[#{k}]", v]
|
137
|
+
else
|
138
|
+
param << normalize_param("#{parent}[#{k}]", v)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
param
|
144
|
+
end
|
145
|
+
|
146
|
+
##
|
147
|
+
# Create a hash with *only* key/value pairs in receiver and +allowed+
|
148
|
+
#
|
149
|
+
# { :one => 1, :two => 2, :three => 3 }.only(:one) #=> { :one => 1 }
|
150
|
+
#
|
151
|
+
# @param [Array[String, Symbol]] *allowed The hash keys to include.
|
152
|
+
#
|
153
|
+
# @return [Hash] A new hash with only the selected keys.
|
154
|
+
#
|
155
|
+
# @api public
|
156
|
+
def only(*allowed)
|
157
|
+
hash = {}
|
158
|
+
allowed.each {|k| hash[k] = self[k] if self.has_key?(k) }
|
159
|
+
hash
|
160
|
+
end
|
161
|
+
|
162
|
+
##
|
163
|
+
# Create a hash with all key/value pairs in receiver *except* +rejected+
|
164
|
+
#
|
165
|
+
# { :one => 1, :two => 2, :three => 3 }.except(:one)
|
166
|
+
# #=> { :two => 2, :three => 3 }
|
167
|
+
#
|
168
|
+
# @param [Array[String, Symbol]] *rejected The hash keys to exclude.
|
169
|
+
#
|
170
|
+
# @return [Hash] A new hash without the selected keys.
|
171
|
+
#
|
172
|
+
# @api public
|
173
|
+
def except(*rejected)
|
174
|
+
hash = self.dup
|
175
|
+
rejected.each {|k| hash.delete(k) }
|
176
|
+
hash
|
177
|
+
end
|
178
|
+
|
179
|
+
# @return <String> The hash as attributes for an XML tag.
|
180
|
+
#
|
181
|
+
# @example
|
182
|
+
# { :one => 1, "two"=>"TWO" }.to_xml_attributes
|
183
|
+
# #=> 'one="1" two="TWO"'
|
184
|
+
def to_xml_attributes
|
185
|
+
map do |k,v|
|
186
|
+
%{#{k.to_s.snake_case.sub(/^(.{1,1})/) { |m| m.downcase }}="#{v}"}
|
187
|
+
end.join(' ')
|
188
|
+
end
|
189
|
+
|
190
|
+
alias_method :to_html_attributes, :to_xml_attributes
|
191
|
+
|
192
|
+
# @param html_class<#to_s>
|
193
|
+
# The HTML class to add to the :class key. The html_class will be
|
194
|
+
# concatenated to any existing classes.
|
195
|
+
#
|
196
|
+
# @example hash[:class] #=> nil
|
197
|
+
# @example hash.add_html_class!(:selected)
|
198
|
+
# @example hash[:class] #=> "selected"
|
199
|
+
# @example hash.add_html_class!("class1 class2")
|
200
|
+
# @example hash[:class] #=> "selected class1 class2"
|
201
|
+
def add_html_class!(html_class)
|
202
|
+
if self[:class]
|
203
|
+
self[:class] = "#{self[:class]} #{html_class}"
|
204
|
+
else
|
205
|
+
self[:class] = html_class.to_s
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
# Converts all keys into string values. This is used during reloading to
|
210
|
+
# prevent problems when classes are no longer declared.
|
211
|
+
#
|
212
|
+
# @return <Array> An array of they hash's keys
|
213
|
+
#
|
214
|
+
# @example
|
215
|
+
# hash = { One => 1, Two => 2 }.proctect_keys!
|
216
|
+
# hash # => { "One" => 1, "Two" => 2 }
|
217
|
+
def protect_keys!
|
218
|
+
keys.each {|key| self[key.to_s] = delete(key) }
|
219
|
+
end
|
220
|
+
|
221
|
+
# Attempts to convert all string keys into Class keys. We run this after
|
222
|
+
# reloading to convert protected hashes back into usable hashes.
|
223
|
+
#
|
224
|
+
# @example
|
225
|
+
# # Provided that classes One and Two are declared in this scope:
|
226
|
+
# hash = { "One" => 1, "Two" => 2 }.unproctect_keys!
|
227
|
+
# hash # => { One => 1, Two => 2 }
|
228
|
+
def unprotect_keys!
|
229
|
+
keys.each do |key|
|
230
|
+
(self[Object.full_const_get(key)] = delete(key)) rescue nil
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
# Destructively and non-recursively convert each key to an uppercase string,
|
235
|
+
# deleting nil values along the way.
|
236
|
+
#
|
237
|
+
# @return <Hash> The newly environmentized hash.
|
238
|
+
#
|
239
|
+
# @example
|
240
|
+
# { :name => "Bob", :contact => { :email => "bob@bob.com" } }.environmentize_keys!
|
241
|
+
# #=> { "NAME" => "Bob", "CONTACT" => { :email => "bob@bob.com" } }
|
242
|
+
def environmentize_keys!
|
243
|
+
keys.each do |key|
|
244
|
+
val = delete(key)
|
245
|
+
next if val.nil?
|
246
|
+
self[key.to_s.upcase] = val
|
247
|
+
end
|
248
|
+
self
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
require 'rexml/parsers/streamparser'
|
253
|
+
require 'rexml/parsers/baseparser'
|
254
|
+
require 'rexml/light/node'
|
255
|
+
|
256
|
+
# This is a slighly modified version of the XMLUtilityNode from
|
257
|
+
# http://merb.devjavu.com/projects/merb/ticket/95 (has.sox@gmail.com)
|
258
|
+
# It's mainly just adding vowels, as I ht cd wth n vwls :)
|
259
|
+
# This represents the hard part of the work, all I did was change the
|
260
|
+
# underlying parser.
|
261
|
+
class REXMLUtilityNode
|
262
|
+
attr_accessor :name, :attributes, :children, :type
|
263
|
+
cattr_accessor :typecasts, :available_typecasts
|
264
|
+
|
265
|
+
self.typecasts = {}
|
266
|
+
self.typecasts["integer"] = lambda{|v| v.nil? ? nil : v.to_i}
|
267
|
+
self.typecasts["boolean"] = lambda{|v| v.nil? ? nil : (v.strip != "false")}
|
268
|
+
self.typecasts["datetime"] = lambda{|v| v.nil? ? nil : Time.parse(v).utc}
|
269
|
+
self.typecasts["date"] = lambda{|v| v.nil? ? nil : Date.parse(v)}
|
270
|
+
self.typecasts["dateTime"] = lambda{|v| v.nil? ? nil : Time.parse(v).utc}
|
271
|
+
self.typecasts["decimal"] = lambda{|v| BigDecimal(v)}
|
272
|
+
self.typecasts["double"] = lambda{|v| v.nil? ? nil : v.to_f}
|
273
|
+
self.typecasts["float"] = lambda{|v| v.nil? ? nil : v.to_f}
|
274
|
+
self.typecasts["symbol"] = lambda{|v| v.to_sym}
|
275
|
+
self.typecasts["string"] = lambda{|v| v.to_s}
|
276
|
+
self.typecasts["yaml"] = lambda{|v| v.nil? ? nil : YAML.load(v)}
|
277
|
+
self.typecasts["base64Binary"] = lambda{|v| v.unpack('m').first }
|
278
|
+
|
279
|
+
self.available_typecasts = self.typecasts.keys
|
280
|
+
|
281
|
+
def initialize(name, attributes = {})
|
282
|
+
@name = name.tr("-", "_")
|
283
|
+
# leave the type alone if we don't know what it is
|
284
|
+
@type = self.class.available_typecasts.include?(attributes["type"]) ? attributes.delete("type") : attributes["type"]
|
285
|
+
|
286
|
+
@nil_element = attributes.delete("nil") == "true"
|
287
|
+
@attributes = undasherize_keys(attributes)
|
288
|
+
@children = []
|
289
|
+
@text = false
|
290
|
+
end
|
291
|
+
|
292
|
+
def add_node(node)
|
293
|
+
@text = true if node.is_a? String
|
294
|
+
@children << node
|
295
|
+
end
|
296
|
+
|
297
|
+
def to_hash
|
298
|
+
if @type == "file"
|
299
|
+
f = StringIO.new((@children.first || '').unpack('m').first)
|
300
|
+
class << f
|
301
|
+
attr_accessor :original_filename, :content_type
|
302
|
+
end
|
303
|
+
f.original_filename = attributes['name'] || 'untitled'
|
304
|
+
f.content_type = attributes['content_type'] || 'application/octet-stream'
|
305
|
+
return {name => f}
|
306
|
+
end
|
307
|
+
|
308
|
+
if @text
|
309
|
+
return { name => typecast_value( translate_xml_entities( inner_html ) ) }
|
310
|
+
else
|
311
|
+
#change repeating groups into an array
|
312
|
+
groups = @children.inject({}) { |s,e| (s[e.name] ||= []) << e; s }
|
313
|
+
|
314
|
+
out = nil
|
315
|
+
if @type == "array"
|
316
|
+
out = []
|
317
|
+
groups.each do |k, v|
|
318
|
+
if v.size == 1
|
319
|
+
out << v.first.to_hash.entries.first.last
|
320
|
+
else
|
321
|
+
out << v.map{|e| e.to_hash[k]}
|
322
|
+
end
|
323
|
+
end
|
324
|
+
out = out.flatten
|
325
|
+
|
326
|
+
else # If Hash
|
327
|
+
out = {}
|
328
|
+
groups.each do |k,v|
|
329
|
+
if v.size == 1
|
330
|
+
out.merge!(v.first)
|
331
|
+
else
|
332
|
+
out.merge!( k => v.map{|e| e.to_hash[k]})
|
333
|
+
end
|
334
|
+
end
|
335
|
+
out.merge! attributes unless attributes.empty?
|
336
|
+
out = out.empty? ? nil : out
|
337
|
+
end
|
338
|
+
|
339
|
+
if @type && out.nil?
|
340
|
+
{ name => typecast_value(out) }
|
341
|
+
else
|
342
|
+
{ name => out }
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
# Typecasts a value based upon its type. For instance, if
|
348
|
+
# +node+ has #type == "integer",
|
349
|
+
# {{[node.typecast_value("12") #=> 12]}}
|
350
|
+
#
|
351
|
+
# @param value<String> The value that is being typecast.
|
352
|
+
#
|
353
|
+
# @details [:type options]
|
354
|
+
# "integer"::
|
355
|
+
# converts +value+ to an integer with #to_i
|
356
|
+
# "boolean"::
|
357
|
+
# checks whether +value+, after removing spaces, is the literal
|
358
|
+
# "true"
|
359
|
+
# "datetime"::
|
360
|
+
# Parses +value+ using Time.parse, and returns a UTC Time
|
361
|
+
# "date"::
|
362
|
+
# Parses +value+ using Date.parse
|
363
|
+
#
|
364
|
+
# @return <Integer, TrueClass, FalseClass, Time, Date, Object>
|
365
|
+
# The result of typecasting +value+.
|
366
|
+
#
|
367
|
+
# @note
|
368
|
+
# If +self+ does not have a "type" key, or if it's not one of the
|
369
|
+
# options specified above, the raw +value+ will be returned.
|
370
|
+
def typecast_value(value)
|
371
|
+
return value unless @type
|
372
|
+
proc = self.class.typecasts[@type]
|
373
|
+
proc.nil? ? value : proc.call(value)
|
374
|
+
end
|
375
|
+
|
376
|
+
# Convert basic XML entities into their literal values.
|
377
|
+
#
|
378
|
+
# @param value<#gsub> An XML fragment.
|
379
|
+
#
|
380
|
+
# @return <#gsub> The XML fragment after converting entities.
|
381
|
+
def translate_xml_entities(value)
|
382
|
+
value.gsub(/</, "<").
|
383
|
+
gsub(/>/, ">").
|
384
|
+
gsub(/"/, '"').
|
385
|
+
gsub(/'/, "'").
|
386
|
+
gsub(/&/, "&")
|
387
|
+
end
|
388
|
+
|
389
|
+
# Take keys of the form foo-bar and convert them to foo_bar
|
390
|
+
def undasherize_keys(params)
|
391
|
+
params.keys.each do |key, value|
|
392
|
+
params[key.tr("-", "_")] = params.delete(key)
|
393
|
+
end
|
394
|
+
params
|
395
|
+
end
|
396
|
+
|
397
|
+
# Get the inner_html of the REXML node.
|
398
|
+
def inner_html
|
399
|
+
@children.join
|
400
|
+
end
|
401
|
+
|
402
|
+
# Converts the node into a readable HTML node.
|
403
|
+
#
|
404
|
+
# @return <String> The HTML node in text form.
|
405
|
+
def to_html
|
406
|
+
attributes.merge!(:type => @type ) if @type
|
407
|
+
"<#{name}#{attributes.to_xml_attributes}>#{@nil_element ? '' : inner_html}</#{name}>"
|
408
|
+
end
|
409
|
+
|
410
|
+
# @alias #to_html #to_s
|
411
|
+
def to_s
|
412
|
+
to_html
|
413
|
+
end
|
414
|
+
end
|
415
|
+
|
416
|
+
class ToHashParser
|
417
|
+
|
418
|
+
def self.from_xml(xml)
|
419
|
+
stack = []
|
420
|
+
parser = REXML::Parsers::BaseParser.new(xml)
|
421
|
+
|
422
|
+
while true
|
423
|
+
event = parser.pull
|
424
|
+
case event[0]
|
425
|
+
when :end_document
|
426
|
+
break
|
427
|
+
when :end_doctype, :start_doctype
|
428
|
+
# do nothing
|
429
|
+
when :start_element
|
430
|
+
stack.push REXMLUtilityNode.new(event[1], event[2])
|
431
|
+
when :end_element
|
432
|
+
if stack.size > 1
|
433
|
+
temp = stack.pop
|
434
|
+
stack.last.add_node(temp)
|
435
|
+
end
|
436
|
+
when :text, :cdata
|
437
|
+
stack.last.add_node(event[1]) unless event[1].strip.length == 0
|
438
|
+
end
|
439
|
+
end
|
440
|
+
stack.pop.to_hash
|
441
|
+
end
|
442
|
+
end
|
@@ -0,0 +1,401 @@
|
|
1
|
+
module Extlib
|
2
|
+
#
|
3
|
+
# TODO: Write more documentation!
|
4
|
+
#
|
5
|
+
# Overview
|
6
|
+
# ========
|
7
|
+
#
|
8
|
+
# The Hook module is a very simple set of AOP helpers. Basically, it
|
9
|
+
# allows the developer to specify a method or block that should run
|
10
|
+
# before or after another method.
|
11
|
+
#
|
12
|
+
# Usage
|
13
|
+
# =====
|
14
|
+
#
|
15
|
+
# Halting The Hook Stack
|
16
|
+
#
|
17
|
+
# Inheritance
|
18
|
+
#
|
19
|
+
# Other Goodies
|
20
|
+
#
|
21
|
+
# Please bring up any issues regarding Hooks with carllerche on IRC
|
22
|
+
#
|
23
|
+
module Hook
|
24
|
+
|
25
|
+
def self.included(base)
|
26
|
+
base.extend(ClassMethods)
|
27
|
+
base.const_set("CLASS_HOOKS", {}) unless base.const_defined?("CLASS_HOOKS")
|
28
|
+
base.const_set("INSTANCE_HOOKS", {}) unless base.const_defined?("INSTANCE_HOOKS")
|
29
|
+
base.class_eval do
|
30
|
+
class << self
|
31
|
+
def method_added(name)
|
32
|
+
process_method_added(name, :instance)
|
33
|
+
end
|
34
|
+
|
35
|
+
def singleton_method_added(name)
|
36
|
+
process_method_added(name, :class)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
module ClassMethods
|
43
|
+
include Extlib::Assertions
|
44
|
+
# Inject code that executes before the target class method.
|
45
|
+
#
|
46
|
+
# @param target_method<Symbol> the name of the class method to inject before
|
47
|
+
# @param method_sym<Symbol> the name of the method to run before the
|
48
|
+
# target_method
|
49
|
+
# @param block<Block> the code to run before the target_method
|
50
|
+
#
|
51
|
+
# @note
|
52
|
+
# Either method_sym or block is required.
|
53
|
+
# -
|
54
|
+
# @api public
|
55
|
+
def before_class_method(target_method, method_sym = nil, &block)
|
56
|
+
install_hook :before, target_method, method_sym, :class, &block
|
57
|
+
end
|
58
|
+
|
59
|
+
#
|
60
|
+
# Inject code that executes after the target class method.
|
61
|
+
#
|
62
|
+
# @param target_method<Symbol> the name of the class method to inject after
|
63
|
+
# @param method_sym<Symbol> the name of the method to run after the target_method
|
64
|
+
# @param block<Block> the code to run after the target_method
|
65
|
+
#
|
66
|
+
# @note
|
67
|
+
# Either method_sym or block is required.
|
68
|
+
# -
|
69
|
+
# @api public
|
70
|
+
def after_class_method(target_method, method_sym = nil, &block)
|
71
|
+
install_hook :after, target_method, method_sym, :class, &block
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# Inject code that executes before the target instance method.
|
76
|
+
#
|
77
|
+
# @param target_method<Symbol> the name of the instance method to inject before
|
78
|
+
# @param method_sym<Symbol> the name of the method to run before the
|
79
|
+
# target_method
|
80
|
+
# @param block<Block> the code to run before the target_method
|
81
|
+
#
|
82
|
+
# @note
|
83
|
+
# Either method_sym or block is required.
|
84
|
+
# -
|
85
|
+
# @api public
|
86
|
+
def before(target_method, method_sym = nil, &block)
|
87
|
+
install_hook :before, target_method, method_sym, :instance, &block
|
88
|
+
end
|
89
|
+
|
90
|
+
#
|
91
|
+
# Inject code that executes after the target instance method.
|
92
|
+
#
|
93
|
+
# @param target_method<Symbol> the name of the instance method to inject after
|
94
|
+
# @param method_sym<Symbol> the name of the method to run after the
|
95
|
+
# target_method
|
96
|
+
# @param block<Block> the code to run after the target_method
|
97
|
+
#
|
98
|
+
# @note
|
99
|
+
# Either method_sym or block is required.
|
100
|
+
# -
|
101
|
+
# @api public
|
102
|
+
def after(target_method, method_sym = nil, &block)
|
103
|
+
install_hook :after, target_method, method_sym, :instance, &block
|
104
|
+
end
|
105
|
+
|
106
|
+
# Register a class method as hookable. Registering a method means that
|
107
|
+
# before hooks will be run immediately before the method is invoked and
|
108
|
+
# after hooks will be called immediately after the method is invoked.
|
109
|
+
#
|
110
|
+
# @param hookable_method<Symbol> The name of the class method that should
|
111
|
+
# be hookable
|
112
|
+
# -
|
113
|
+
# @api public
|
114
|
+
def register_class_hooks(*hooks)
|
115
|
+
hooks.each { |hook| register_hook(hook, :class) }
|
116
|
+
end
|
117
|
+
|
118
|
+
# Register aninstance method as hookable. Registering a method means that
|
119
|
+
# before hooks will be run immediately before the method is invoked and
|
120
|
+
# after hooks will be called immediately after the method is invoked.
|
121
|
+
#
|
122
|
+
# @param hookable_method<Symbol> The name of the instance method that should
|
123
|
+
# be hookable
|
124
|
+
# -
|
125
|
+
# @api public
|
126
|
+
def register_instance_hooks(*hooks)
|
127
|
+
hooks.each { |hook| register_hook(hook, :instance) }
|
128
|
+
end
|
129
|
+
|
130
|
+
# Not yet implemented
|
131
|
+
def reset_hook!(target_method, scope)
|
132
|
+
raise NotImplementedError
|
133
|
+
end
|
134
|
+
|
135
|
+
# --- Alright kids... the rest is internal stuff ---
|
136
|
+
|
137
|
+
# Returns the correct HOOKS Hash depending on whether we are
|
138
|
+
# working with class methods or instance methods
|
139
|
+
def hooks_with_scope(scope)
|
140
|
+
case scope
|
141
|
+
when :class then class_hooks
|
142
|
+
when :instance then instance_hooks
|
143
|
+
else raise ArgumentError, 'You need to pass :class or :instance as scope'
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def class_hooks
|
148
|
+
self.const_get("CLASS_HOOKS")
|
149
|
+
end
|
150
|
+
|
151
|
+
def instance_hooks
|
152
|
+
self.const_get("INSTANCE_HOOKS")
|
153
|
+
end
|
154
|
+
|
155
|
+
# Registers a method as hookable. Registering hooks involves the following
|
156
|
+
# process
|
157
|
+
#
|
158
|
+
# * Create a blank entry in the HOOK Hash for the method.
|
159
|
+
# * Define the methods that execute the before and after hook stack.
|
160
|
+
# These methods will be no-ops at first, but everytime a new hook is
|
161
|
+
# defined, the methods will be redefined to incorporate the new hook.
|
162
|
+
# * Redefine the method that is to be hookable so that the hook stacks
|
163
|
+
# are invoked approprietly.
|
164
|
+
def register_hook(target_method, scope)
|
165
|
+
if scope == :instance && !method_defined?(target_method)
|
166
|
+
raise ArgumentError, "#{target_method} instance method does not exist"
|
167
|
+
elsif scope == :class && !respond_to?(target_method)
|
168
|
+
raise ArgumentError, "#{target_method} class method does not exist"
|
169
|
+
end
|
170
|
+
|
171
|
+
hooks = hooks_with_scope(scope)
|
172
|
+
|
173
|
+
if hooks[target_method].nil?
|
174
|
+
hooks[target_method] = {
|
175
|
+
# We need to keep track of which class in the Inheritance chain the
|
176
|
+
# method was declared hookable in. Every time a child declares a new
|
177
|
+
# hook for the method, the hook stack invocations need to be redefined
|
178
|
+
# in the original Class. See #define_hook_stack_execution_methods
|
179
|
+
:before => [], :after => [], :in => self
|
180
|
+
}
|
181
|
+
|
182
|
+
define_hook_stack_execution_methods(target_method, scope)
|
183
|
+
define_advised_method(target_method, scope)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
# Is the method registered as a hookable in the given scope.
|
188
|
+
def registered_as_hook?(target_method, scope)
|
189
|
+
! hooks_with_scope(scope)[target_method].nil?
|
190
|
+
end
|
191
|
+
|
192
|
+
# Generates names for the various utility methods. We need to do this because
|
193
|
+
# the various utility methods should not end in = so, while we're at it, we
|
194
|
+
# might as well get rid of all punctuation.
|
195
|
+
def hook_method_name(target_method, prefix, suffix)
|
196
|
+
target_method = target_method.to_s
|
197
|
+
|
198
|
+
case target_method[-1,1]
|
199
|
+
when '?' then "#{prefix}_#{target_method[0..-2]}_ques_#{suffix}"
|
200
|
+
when '!' then "#{prefix}_#{target_method[0..-2]}_bang_#{suffix}"
|
201
|
+
when '=' then "#{prefix}_#{target_method[0..-2]}_eq_#{suffix}"
|
202
|
+
# I add a _nan_ suffix here so that we don't ever encounter
|
203
|
+
# any naming conflicts.
|
204
|
+
else "#{prefix}_#{target_method[0..-1]}_nan_#{suffix}"
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
# This will need to be refactored
|
209
|
+
def process_method_added(method_name, scope)
|
210
|
+
hooks_with_scope(scope).each do |target_method, hooks|
|
211
|
+
if hooks[:before].any? { |hook| hook[:name] == method_name }
|
212
|
+
define_hook_stack_execution_methods(target_method, scope)
|
213
|
+
end
|
214
|
+
|
215
|
+
if hooks[:after].any? { |hook| hook[:name] == method_name }
|
216
|
+
define_hook_stack_execution_methods(target_method, scope)
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
# Defines two methods. One method executes the before hook stack. The other executes
|
222
|
+
# the after hook stack. This method will be called many times during the Class definition
|
223
|
+
# process. It should be called for each hook that is defined. It will also be called
|
224
|
+
# when a hook is redefined (to make sure that the arity hasn't changed).
|
225
|
+
def define_hook_stack_execution_methods(target_method, scope)
|
226
|
+
unless registered_as_hook?(target_method, scope)
|
227
|
+
raise ArgumentError, "#{target_method} has not be registered as a hookable #{scope} method"
|
228
|
+
end
|
229
|
+
|
230
|
+
hooks = hooks_with_scope(scope)
|
231
|
+
|
232
|
+
before_hooks = hooks[target_method][:before]
|
233
|
+
before_hooks = before_hooks.map{ |info| inline_call(info, scope) }.join("\n")
|
234
|
+
|
235
|
+
after_hooks = hooks[target_method][:after]
|
236
|
+
after_hooks = after_hooks.map{ |info| inline_call(info, scope) }.join("\n")
|
237
|
+
|
238
|
+
before_hook_name = hook_method_name(target_method, 'execute_before', 'hook_stack')
|
239
|
+
after_hook_name = hook_method_name(target_method, 'execute_after', 'hook_stack')
|
240
|
+
|
241
|
+
hooks[target_method][:in].class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
242
|
+
#{scope == :class ? 'class << self' : ''}
|
243
|
+
|
244
|
+
private
|
245
|
+
|
246
|
+
remove_method :#{before_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
|
247
|
+
def #{before_hook_name}(*args)
|
248
|
+
#{before_hooks}
|
249
|
+
end
|
250
|
+
|
251
|
+
remove_method :#{after_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{after_hook_name} }
|
252
|
+
def #{after_hook_name}(*args)
|
253
|
+
#{after_hooks}
|
254
|
+
end
|
255
|
+
|
256
|
+
#{scope == :class ? 'end' : ''}
|
257
|
+
RUBY
|
258
|
+
end
|
259
|
+
|
260
|
+
# Returns ruby code that will invoke the hook. It checks the arity of the hook method
|
261
|
+
# and passes arguments accordingly.
|
262
|
+
def inline_call(method_info, scope)
|
263
|
+
name = method_info[:name]
|
264
|
+
|
265
|
+
if scope == :instance
|
266
|
+
args = method_defined?(name) && instance_method(name).arity != 0 ? '*args' : ''
|
267
|
+
%(#{name}(#{args}) if self.class <= ObjectSpace._id2ref(#{method_info[:from].object_id}))
|
268
|
+
else
|
269
|
+
args = respond_to?(name) && method(name).arity != 0 ? '*args' : ''
|
270
|
+
%(#{name}(#{args}) if self <= ObjectSpace._id2ref(#{method_info[:from].object_id}))
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
def define_advised_method(target_method, scope)
|
275
|
+
args = args_for(method_with_scope(target_method, scope))
|
276
|
+
|
277
|
+
renamed_target = hook_method_name(target_method, 'hookable_', 'before_advised')
|
278
|
+
|
279
|
+
source = <<-EOD
|
280
|
+
def #{target_method}(#{args})
|
281
|
+
retval = nil
|
282
|
+
catch(:halt) do
|
283
|
+
#{hook_method_name(target_method, 'execute_before', 'hook_stack')}(#{args})
|
284
|
+
retval = #{renamed_target}(#{args})
|
285
|
+
#{hook_method_name(target_method, 'execute_after', 'hook_stack')}(retval, #{args})
|
286
|
+
retval
|
287
|
+
end
|
288
|
+
end
|
289
|
+
EOD
|
290
|
+
|
291
|
+
if scope == :instance && !instance_methods(false).any? { |m| m.to_sym == target_method }
|
292
|
+
send(:alias_method, renamed_target, target_method)
|
293
|
+
|
294
|
+
proxy_module = Module.new
|
295
|
+
proxy_module.class_eval(source, __FILE__, __LINE__)
|
296
|
+
self.send(:include, proxy_module)
|
297
|
+
else
|
298
|
+
source = %{alias_method :#{renamed_target}, :#{target_method}\n#{source}}
|
299
|
+
source = %{class << self\n#{source}\nend} if scope == :class
|
300
|
+
class_eval(source, __FILE__, __LINE__)
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
# --- Add a hook ---
|
305
|
+
|
306
|
+
def install_hook(type, target_method, method_sym, scope, &block)
|
307
|
+
assert_kind_of 'target_method', target_method, Symbol
|
308
|
+
assert_kind_of 'method_sym', method_sym, Symbol unless method_sym.nil?
|
309
|
+
assert_kind_of 'scope', scope, Symbol
|
310
|
+
|
311
|
+
if !block_given? and method_sym.nil?
|
312
|
+
raise ArgumentError, "You need to pass 2 arguments to \"#{type}\"."
|
313
|
+
end
|
314
|
+
|
315
|
+
if method_sym.to_s[-1,1] == '='
|
316
|
+
raise ArgumentError, "Methods ending in = cannot be hooks"
|
317
|
+
end
|
318
|
+
|
319
|
+
unless [ :class, :instance ].include?(scope)
|
320
|
+
raise ArgumentError, 'You need to pass :class or :instance as scope'
|
321
|
+
end
|
322
|
+
|
323
|
+
if registered_as_hook?(target_method, scope)
|
324
|
+
hooks = hooks_with_scope(scope)
|
325
|
+
|
326
|
+
#if this hook is previously declared in a sibling or cousin we must move the :in class
|
327
|
+
#to the common ancestor to get both hooks to run.
|
328
|
+
if !(hooks[target_method][:in] <=> self)
|
329
|
+
before_hook_name = hook_method_name(target_method, 'execute_before', 'hook_stack')
|
330
|
+
after_hook_name = hook_method_name(target_method, 'execute_after', 'hook_stack')
|
331
|
+
|
332
|
+
hooks[target_method][:in].class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
333
|
+
remove_method :#{before_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
|
334
|
+
def #{before_hook_name}(*args)
|
335
|
+
super
|
336
|
+
end
|
337
|
+
|
338
|
+
remove_method :#{after_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
|
339
|
+
def #{after_hook_name}(*args)
|
340
|
+
super
|
341
|
+
end
|
342
|
+
RUBY
|
343
|
+
|
344
|
+
while !(hooks[target_method][:in] <=> self) do
|
345
|
+
hooks[target_method][:in] = hooks[target_method][:in].superclass
|
346
|
+
end
|
347
|
+
|
348
|
+
define_hook_stack_execution_methods(target_method, scope)
|
349
|
+
hooks[target_method][:in].class_eval{define_advised_method(target_method, scope)}
|
350
|
+
end
|
351
|
+
else
|
352
|
+
register_hook(target_method, scope)
|
353
|
+
hooks = hooks_with_scope(scope)
|
354
|
+
end
|
355
|
+
|
356
|
+
#if we were passed a block, create a method out of it.
|
357
|
+
if block
|
358
|
+
method_sym = "__hooks_#{type}_#{quote_method(target_method)}_#{hooks[target_method][type].length}".to_sym
|
359
|
+
if scope == :class
|
360
|
+
meta_class.instance_eval do
|
361
|
+
define_method(method_sym, &block)
|
362
|
+
end
|
363
|
+
else
|
364
|
+
define_method(method_sym, &block)
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
# Adds method to the stack an redefines the hook invocation method
|
369
|
+
hooks[target_method][type] << { :name => method_sym, :from => self }
|
370
|
+
define_hook_stack_execution_methods(target_method, scope)
|
371
|
+
end
|
372
|
+
|
373
|
+
# --- Helpers ---
|
374
|
+
|
375
|
+
def args_for(method)
|
376
|
+
if method.arity == 0
|
377
|
+
"&block"
|
378
|
+
elsif method.arity > 0
|
379
|
+
"_" << (1 .. method.arity).to_a.join(", _") << ", &block"
|
380
|
+
elsif (method.arity + 1) < 0
|
381
|
+
"_" << (1 .. (method.arity).abs - 1).to_a.join(", _") << ", *args, &block"
|
382
|
+
else
|
383
|
+
"*args, &block"
|
384
|
+
end
|
385
|
+
end
|
386
|
+
|
387
|
+
def method_with_scope(name, scope)
|
388
|
+
case scope
|
389
|
+
when :class then method(name)
|
390
|
+
when :instance then instance_method(name)
|
391
|
+
else raise ArgumentError, 'You need to pass :class or :instance as scope'
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
395
|
+
def quote_method(name)
|
396
|
+
name.to_s.gsub(/\?$/, '_q_').gsub(/!$/, '_b_').gsub(/=$/, '_eq_')
|
397
|
+
end
|
398
|
+
end
|
399
|
+
|
400
|
+
end
|
401
|
+
end
|