radiant 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of radiant might be problematic. Click here for more details.
- data/CHANGELOG +33 -1
- data/CONTRIBUTORS +15 -2
- data/INSTALL +9 -7
- data/README +11 -7
- data/app/controllers/admin/layouts_controller.rb +5 -2
- data/app/controllers/admin/pages_controller.rb +8 -5
- data/app/controllers/admin/snippets_controller.rb +5 -2
- data/app/controllers/application_controller.rb +7 -0
- data/app/helpers/admin/node_helper.rb +2 -2
- data/app/helpers/application_helper.rb +2 -2
- data/app/models/radiant/config.rb +36 -4
- data/app/models/standard_tags.rb +1 -1
- data/app/views/admin/layouts/index.html.haml +15 -12
- data/app/views/admin/page_parts/_page_part.html.haml +2 -2
- data/app/views/admin/pages/index.html.haml +1 -1
- data/app/views/admin/snippets/_form.html.haml +1 -1
- data/app/views/admin/snippets/index.html.haml +14 -10
- data/config/database.db2.yml +20 -0
- data/config/environment.rb +4 -4
- data/config/environments/test.rb +1 -2
- data/features/support/env.rb +2 -1
- data/lib/generators/extension/extension_generator.rb +5 -0
- data/lib/generators/extension/templates/RSpecRakefile +11 -8
- data/lib/generators/extension/templates/cucumber.yml +1 -0
- data/lib/generators/extension/templates/cucumber_env.rb +16 -0
- data/lib/generators/extension/templates/cucumber_paths.rb +14 -0
- data/lib/generators/extension/templates/extension.rb +1 -1
- data/lib/generators/instance/instance_generator.rb +1 -1
- data/lib/generators/instance/templates/databases/db2.yml +40 -0
- data/lib/generators/instance/templates/instance_environment.rb +6 -6
- data/lib/local_time.rb +3 -9
- data/lib/radiant.rb +1 -1
- data/lib/radiant/cache.rb +10 -8
- data/lib/radiant/extension.rb +36 -0
- data/lib/radiant/extension/script.rb +1 -1
- data/lib/radiant/extension_loader.rb +5 -1
- data/lib/radiant/initializer.rb +52 -4
- data/lib/task_support.rb +33 -0
- data/lib/tasks/cucumber.rake +5 -1
- data/lib/tasks/radiant_config.rake +18 -0
- data/lib/tasks/release.rake +1 -0
- data/public/javascripts/admin/admin.js +1 -1
- data/spec/controllers/admin/layouts_controller_spec.rb +18 -12
- data/spec/controllers/admin/pages_controller_spec.rb +35 -29
- data/spec/controllers/admin/snippets_controller_spec.rb +11 -5
- data/spec/controllers/admin/welcome_controller_spec.rb +1 -1
- data/spec/controllers/application_controller_spec.rb +18 -0
- data/spec/fixtures/radiant_config.yml +10 -0
- data/spec/generators/extension_generator_spec.rb +12 -0
- data/spec/helpers/admin/node_helper_spec.rb +6 -0
- data/spec/helpers/application_helper_spec.rb +1 -1
- data/spec/lib/radiant/extension_loader_spec.rb +17 -0
- data/spec/lib/radiant/extension_spec.rb +28 -0
- data/spec/lib/radiant/initializer_spec.rb +34 -0
- data/spec/lib/task_support_spec.rb +42 -0
- data/spec/models/page_spec.rb +6 -2
- data/spec/models/radiant/config_spec.rb +42 -1
- data/spec/models/standard_tags_spec.rb +2 -2
- data/test/fixtures/extensions/01_basic/app/metal/basic_metal.rb +9 -0
- data/test/fixtures/extensions/02_overriding/app/metal/basic_metal.rb +9 -0
- data/vendor/extensions/textile_filter/textile.html +2 -2
- data/vendor/plugins/dataset/CHANGELOG +2 -1
- data/vendor/plugins/dataset/Rakefile +3 -0
- data/vendor/plugins/dataset/VERSION.yml +2 -2
- data/vendor/plugins/dataset/dataset.gemspec +9 -3
- data/vendor/plugins/dataset/lib/dataset.rb +3 -0
- data/vendor/radius/lib/radius.rb +5 -0
- data/vendor/radius/test/radius_test.rb +6 -0
- data/vendor/rails/actionmailer/CHANGELOG +8 -0
- data/vendor/rails/actionmailer/Rakefile +3 -2
- data/vendor/rails/actionmailer/lib/action_mailer/base.rb +2 -1
- data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
- data/vendor/rails/actionmailer/test/abstract_unit.rb +0 -3
- data/vendor/rails/actionmailer/test/mail_service_test.rb +3 -2
- data/vendor/rails/actionpack/CHANGELOG +16 -0
- data/vendor/rails/actionpack/Rakefile +5 -3
- data/vendor/rails/actionpack/lib/action_controller.rb +2 -7
- data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +13 -3
- data/vendor/rails/actionpack/lib/action_controller/base.rb +12 -3
- data/vendor/rails/actionpack/lib/action_controller/caching.rb +1 -1
- data/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +9 -1
- data/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb +45 -0
- data/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +0 -42
- data/vendor/rails/actionpack/lib/action_controller/cookies.rb +1 -1
- data/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +21 -6
- data/vendor/rails/actionpack/lib/action_controller/failsafe.rb +40 -6
- data/vendor/rails/actionpack/lib/action_controller/flash.rb +11 -3
- data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +7 -3
- data/vendor/rails/actionpack/lib/action_controller/integration.rb +5 -12
- data/vendor/rails/actionpack/lib/action_controller/middlewares.rb +0 -1
- data/vendor/rails/actionpack/lib/action_controller/params_parser.rb +6 -0
- data/vendor/rails/actionpack/lib/action_controller/reloader.rb +47 -7
- data/vendor/rails/actionpack/lib/action_controller/request.rb +6 -2
- data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +2 -1
- data/vendor/rails/actionpack/lib/action_controller/resources.rb +17 -13
- data/vendor/rails/actionpack/lib/action_controller/response.rb +8 -2
- data/vendor/rails/actionpack/lib/action_controller/routing.rb +3 -0
- data/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +20 -6
- data/vendor/rails/actionpack/lib/action_controller/streaming.rb +4 -2
- data/vendor/rails/actionpack/lib/action_controller/test_process.rb +9 -1
- data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +1 -1
- data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/helpers.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +21 -9
- data/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +2 -2
- data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +26 -12
- data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +71 -1
- data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +10 -4
- data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +7 -7
- data/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +5 -5
- data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +23 -14
- data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +2 -2
- data/vendor/rails/actionpack/lib/action_view/locale/en.yml +4 -0
- data/vendor/rails/actionpack/lib/action_view/paths.rb +1 -1
- data/vendor/rails/actionpack/lib/action_view/template.rb +22 -33
- data/vendor/rails/actionpack/test/abstract_unit.rb +17 -1
- data/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +3 -3
- data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +27 -0
- data/vendor/rails/actionpack/test/controller/caching_test.rb +40 -1
- data/vendor/rails/actionpack/test/controller/cookie_test.rb +16 -0
- data/vendor/rails/actionpack/test/controller/dispatcher_test.rb +59 -18
- data/vendor/rails/actionpack/test/controller/failsafe_test.rb +60 -0
- data/vendor/rails/actionpack/test/controller/filter_params_test.rb +3 -1
- data/vendor/rails/actionpack/test/controller/flash_test.rb +6 -1
- data/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +25 -0
- data/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +63 -9
- data/vendor/rails/actionpack/test/controller/integration_test.rb +31 -3
- data/vendor/rails/actionpack/test/controller/rack_test.rb +18 -1
- data/vendor/rails/actionpack/test/controller/redirect_test.rb +4 -1
- data/vendor/rails/actionpack/test/controller/reloader_test.rb +124 -0
- data/vendor/rails/actionpack/test/controller/render_test.rb +19 -9
- data/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +24 -4
- data/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +1 -62
- data/vendor/rails/actionpack/test/controller/request/test_request_test.rb +35 -0
- data/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +0 -38
- data/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +15 -0
- data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +6 -5
- data/vendor/rails/actionpack/test/controller/request_test.rb +218 -230
- data/vendor/rails/actionpack/test/controller/resources_test.rb +52 -0
- data/vendor/rails/actionpack/test/controller/routing_test.rb +28 -2
- data/vendor/rails/actionpack/test/controller/send_file_test.rb +12 -2
- data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +9 -32
- data/vendor/rails/actionpack/test/controller/test_test.rb +8 -0
- data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +29 -3
- data/vendor/rails/actionpack/test/fixtures/failsafe/500.html +1 -0
- data/vendor/rails/actionpack/test/fixtures/public/absolute/test.css +23 -0
- data/vendor/rails/actionpack/test/fixtures/public/absolute/test.js +63 -0
- data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +1 -1
- data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +46 -0
- data/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +29 -0
- data/vendor/rails/actionpack/test/template/form_helper_test.rb +143 -6
- data/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb +27 -0
- data/vendor/rails/actionpack/test/template/form_options_helper_test.rb +56 -0
- data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +23 -6
- data/vendor/rails/actionpack/test/template/prototype_helper_test.rb +11 -11
- data/vendor/rails/actionpack/test/template/template_test.rb +32 -0
- data/vendor/rails/actionpack/test/template/text_helper_test.rb +23 -0
- data/vendor/rails/actionpack/test/template/url_helper_test.rb +8 -0
- data/vendor/rails/activerecord/CHANGELOG +18 -0
- data/vendor/rails/activerecord/Rakefile +26 -9
- data/vendor/rails/activerecord/examples/performance.rb +162 -0
- data/vendor/rails/activerecord/lib/active_record/associations.rb +104 -35
- data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +10 -5
- data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +2 -2
- data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +22 -4
- data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +5 -1
- data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +16 -0
- data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +1 -0
- data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +13 -3
- data/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +15 -9
- data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +15 -9
- data/vendor/rails/activerecord/lib/active_record/base.rb +34 -31
- data/vendor/rails/activerecord/lib/active_record/batches.rb +23 -15
- data/vendor/rails/activerecord/lib/active_record/calculations.rb +7 -13
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +16 -2
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +2 -2
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +7 -0
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +17 -8
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +98 -35
- data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +15 -0
- data/vendor/rails/activerecord/lib/active_record/dirty.rb +1 -1
- data/vendor/rails/activerecord/lib/active_record/fixtures.rb +14 -11
- data/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +1 -1
- data/vendor/rails/activerecord/lib/active_record/locale/en.yml +4 -0
- data/vendor/rails/activerecord/lib/active_record/named_scope.rb +3 -8
- data/vendor/rails/activerecord/lib/active_record/reflection.rb +1 -1
- data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +6 -3
- data/vendor/rails/activerecord/lib/active_record/serialization.rb +3 -2
- data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +10 -18
- data/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +6 -2
- data/vendor/rails/activerecord/lib/active_record/session_store.rb +9 -1
- data/vendor/rails/activerecord/lib/active_record/timestamp.rb +39 -9
- data/vendor/rails/activerecord/lib/active_record/validations.rb +149 -80
- data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
- data/vendor/rails/activerecord/test/cases/adapter_test.rb +12 -0
- data/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +102 -22
- data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +5 -5
- data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +12 -0
- data/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb +56 -0
- data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +62 -2
- data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +46 -1
- data/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +18 -1
- data/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +5 -0
- data/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +4 -4
- data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +22 -0
- data/vendor/rails/activerecord/test/cases/base_test.rb +51 -6
- data/vendor/rails/activerecord/test/cases/calculations_test.rb +14 -14
- data/vendor/rails/activerecord/test/cases/column_definition_test.rb +34 -0
- data/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +5 -5
- data/vendor/rails/activerecord/test/cases/dirty_test.rb +10 -0
- data/vendor/rails/activerecord/test/cases/finder_test.rb +21 -50
- data/vendor/rails/activerecord/test/cases/fixtures_test.rb +6 -1
- data/vendor/rails/activerecord/test/cases/helper.rb +1 -2
- data/vendor/rails/activerecord/test/cases/i18n_test.rb +5 -0
- data/vendor/rails/activerecord/test/cases/json_serialization_test.rb +57 -57
- data/vendor/rails/activerecord/test/cases/method_scoping_test.rb +14 -4
- data/vendor/rails/activerecord/test/cases/migration_test.rb +39 -11
- data/vendor/rails/activerecord/test/cases/modules_test.rb +42 -0
- data/vendor/rails/activerecord/test/cases/named_scope_test.rb +6 -4
- data/vendor/rails/activerecord/test/cases/pk_test.rb +18 -0
- data/vendor/rails/activerecord/test/cases/reflection_test.rb +7 -7
- data/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +35 -7
- data/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +76 -0
- data/vendor/rails/activerecord/test/cases/timestamp_test.rb +75 -0
- data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +656 -624
- data/vendor/rails/activerecord/test/cases/validations_test.rb +12 -2
- data/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +20 -0
- data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
- data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
- data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
- data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
- data/vendor/rails/activerecord/test/fixtures/posts.yml +3 -0
- data/vendor/rails/activerecord/test/models/author.rb +5 -0
- data/vendor/rails/activerecord/test/models/comment.rb +5 -1
- data/vendor/rails/activerecord/test/models/company.rb +9 -7
- data/vendor/rails/activerecord/test/models/company_in_module.rb +1 -1
- data/vendor/rails/activerecord/test/models/contract.rb +5 -0
- data/vendor/rails/activerecord/test/models/developer.rb +10 -0
- data/vendor/rails/activerecord/test/models/essay.rb +3 -0
- data/vendor/rails/activerecord/test/models/organization.rb +2 -0
- data/vendor/rails/activerecord/test/models/pet.rb +1 -1
- data/vendor/rails/activerecord/test/models/project.rb +1 -1
- data/vendor/rails/activerecord/test/models/reply.rb +2 -1
- data/vendor/rails/activerecord/test/models/topic.rb +1 -2
- data/vendor/rails/activerecord/test/models/toy.rb +2 -0
- data/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +13 -2
- data/vendor/rails/activerecord/test/schema/schema.rb +19 -0
- data/vendor/rails/activeresource/CHANGELOG +16 -0
- data/vendor/rails/activeresource/Rakefile +3 -2
- data/vendor/rails/activeresource/lib/active_resource/base.rb +89 -9
- data/vendor/rails/activeresource/lib/active_resource/connection.rb +73 -8
- data/vendor/rails/activeresource/lib/active_resource/exceptions.rb +66 -0
- data/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +2 -2
- data/vendor/rails/activeresource/lib/active_resource/validations.rb +20 -4
- data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
- data/vendor/rails/activeresource/test/abstract_unit.rb +1 -3
- data/vendor/rails/activeresource/test/base/load_test.rb +16 -1
- data/vendor/rails/activeresource/test/base_errors_test.rb +56 -19
- data/vendor/rails/activeresource/test/base_test.rb +147 -0
- data/vendor/rails/activeresource/test/connection_test.rb +42 -0
- data/vendor/rails/activeresource/test/debug.log +7974 -0
- data/vendor/rails/activeresource/test/fixtures/proxy.rb +4 -0
- data/vendor/rails/activesupport/CHANGELOG +13 -0
- data/vendor/rails/activesupport/lib/active_support/all.rb +8 -0
- data/vendor/rails/activesupport/lib/active_support/cache.rb +14 -1
- data/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +16 -10
- data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +1 -1
- data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +1 -0
- data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +2 -1
- data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +2 -4
- data/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +14 -4
- data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +4 -2
- data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +2 -0
- data/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +19 -5
- data/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +8 -6
- data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +15 -9
- data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +1 -0
- data/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +29 -5
- data/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb +5 -0
- data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +7 -7
- data/vendor/rails/activesupport/lib/active_support/deprecation.rb +9 -9
- data/vendor/rails/activesupport/lib/active_support/duration.rb +4 -2
- data/vendor/rails/activesupport/lib/active_support/json.rb +1 -22
- data/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +38 -0
- data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +88 -0
- data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +23 -72
- data/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +9 -8
- data/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +9 -8
- data/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +14 -9
- data/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +4 -2
- data/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +21 -11
- data/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +4 -2
- data/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +16 -0
- data/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +6 -2
- data/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +4 -0
- data/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +5 -32
- data/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +2 -2
- data/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +9 -8
- data/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +4 -2
- data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +80 -9
- data/vendor/rails/activesupport/lib/active_support/memoizable.rb +1 -1
- data/vendor/rails/activesupport/lib/active_support/message_verifier.rb +16 -3
- data/vendor/rails/activesupport/lib/active_support/multibyte.rb +30 -6
- data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +23 -17
- data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +61 -0
- data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +28 -0
- data/vendor/rails/activesupport/lib/active_support/test_case.rb +9 -8
- data/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +2 -0
- data/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +9 -8
- data/vendor/rails/activesupport/lib/active_support/vendor.rb +6 -7
- data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -1
- data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -1
- data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -1
- data/vendor/rails/activesupport/lib/active_support/vendor/{memcache-client-1.6.5 → memcache-client-1.7.4}/memcache.rb +242 -70
- data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
- data/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb +162 -0
- data/vendor/rails/railties/CHANGELOG +10 -0
- data/vendor/rails/railties/Rakefile +13 -9
- data/vendor/rails/railties/bin/about +2 -2
- data/vendor/rails/railties/bin/console +1 -1
- data/vendor/rails/railties/bin/dbconsole +1 -1
- data/vendor/rails/railties/bin/destroy +1 -1
- data/vendor/rails/railties/bin/generate +1 -1
- data/vendor/rails/railties/bin/performance/benchmarker +1 -1
- data/vendor/rails/railties/bin/performance/profiler +1 -1
- data/vendor/rails/railties/bin/plugin +1 -1
- data/vendor/rails/railties/bin/runner +1 -1
- data/vendor/rails/railties/bin/server +1 -1
- data/vendor/rails/railties/builtin/rails_info/rails/info.rb +4 -2
- data/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +2 -0
- data/vendor/rails/railties/configs/routes.rb +1 -1
- data/vendor/rails/railties/configs/seeds.rb +7 -0
- data/vendor/rails/railties/environments/boot.rb +1 -1
- data/vendor/rails/railties/guides/files/javascripts/code_highlighter.js +188 -0
- data/vendor/rails/railties/guides/files/javascripts/guides.js +8 -0
- data/vendor/rails/railties/guides/files/javascripts/highlighters.js +90 -0
- data/vendor/rails/railties/guides/files/stylesheets/main.css +441 -0
- data/vendor/rails/railties/guides/files/stylesheets/print.css +52 -0
- data/vendor/rails/railties/guides/files/stylesheets/reset.css +43 -0
- data/vendor/rails/railties/guides/files/stylesheets/style.css +13 -0
- data/vendor/rails/railties/guides/files/stylesheets/syntax.css +31 -0
- data/vendor/rails/railties/guides/images/belongs_to.png +0 -0
- data/vendor/rails/railties/guides/images/book_icon.gif +0 -0
- data/vendor/rails/railties/guides/images/bullet.gif +0 -0
- data/vendor/rails/railties/guides/images/chapters_icon.gif +0 -0
- data/vendor/rails/railties/guides/images/check_bullet.gif +0 -0
- data/vendor/rails/railties/guides/images/credits_pic_blank.gif +0 -0
- data/vendor/rails/railties/guides/images/csrf.png +0 -0
- data/vendor/rails/railties/guides/images/customized_error_messages.png +0 -0
- data/vendor/rails/railties/guides/images/error_messages.png +0 -0
- data/vendor/rails/railties/guides/images/feature_tile.gif +0 -0
- data/vendor/rails/railties/guides/images/footer_tile.gif +0 -0
- data/vendor/rails/railties/guides/images/fxn.jpg +0 -0
- data/vendor/rails/railties/guides/images/grey_bullet.gif +0 -0
- data/vendor/rails/railties/guides/images/habtm.png +0 -0
- data/vendor/rails/railties/guides/images/has_many.png +0 -0
- data/vendor/rails/railties/guides/images/has_many_through.png +0 -0
- data/vendor/rails/railties/guides/images/has_one.png +0 -0
- data/vendor/rails/railties/guides/images/has_one_through.png +0 -0
- data/vendor/rails/railties/guides/images/header_backdrop.png +0 -0
- data/vendor/rails/railties/guides/images/header_tile.gif +0 -0
- data/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png +0 -0
- data/vendor/rails/railties/guides/images/i18n/demo_translated_en.png +0 -0
- data/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png +0 -0
- data/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png +0 -0
- data/vendor/rails/railties/guides/images/i18n/demo_untranslated.png +0 -0
- data/vendor/rails/railties/guides/images/icons/README +5 -0
- data/vendor/rails/railties/guides/images/icons/callouts/1.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/10.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/11.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/12.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/13.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/14.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/15.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/2.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/3.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/4.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/5.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/6.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/7.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/8.png +0 -0
- data/vendor/rails/railties/guides/images/icons/callouts/9.png +0 -0
- data/vendor/rails/railties/guides/images/icons/caution.png +0 -0
- data/vendor/rails/railties/guides/images/icons/example.png +0 -0
- data/vendor/rails/railties/guides/images/icons/home.png +0 -0
- data/vendor/rails/railties/guides/images/icons/important.png +0 -0
- data/vendor/rails/railties/guides/images/icons/next.png +0 -0
- data/vendor/rails/railties/guides/images/icons/note.png +0 -0
- data/vendor/rails/railties/guides/images/icons/prev.png +0 -0
- data/vendor/rails/railties/guides/images/icons/tip.png +0 -0
- data/vendor/rails/railties/guides/images/icons/up.png +0 -0
- data/vendor/rails/railties/guides/images/icons/warning.png +0 -0
- data/vendor/rails/railties/guides/images/nav_arrow.gif +0 -0
- data/vendor/rails/railties/guides/images/polymorphic.png +0 -0
- data/vendor/rails/railties/guides/images/posts_index.png +0 -0
- data/vendor/rails/railties/guides/images/rails_guides_logo.gif +0 -0
- data/vendor/rails/railties/guides/images/rails_logo_remix.gif +0 -0
- data/vendor/rails/railties/guides/images/rails_welcome.png +0 -0
- data/vendor/rails/railties/guides/images/session_fixation.png +0 -0
- data/vendor/rails/railties/guides/images/tab_grey.gif +0 -0
- data/vendor/rails/railties/guides/images/tab_info.gif +0 -0
- data/vendor/rails/railties/guides/images/tab_note.gif +0 -0
- data/vendor/rails/railties/guides/images/tab_red.gif +0 -0
- data/vendor/rails/railties/guides/images/tab_yellow.gif +0 -0
- data/vendor/rails/railties/guides/images/tab_yellow.png +0 -0
- data/vendor/rails/railties/guides/images/validation_error_messages.png +0 -0
- data/vendor/rails/railties/guides/rails_guides.rb +42 -0
- data/vendor/rails/railties/guides/rails_guides/generator.rb +138 -0
- data/vendor/rails/railties/guides/rails_guides/helpers.rb +34 -0
- data/vendor/rails/railties/guides/rails_guides/indexer.rb +55 -0
- data/vendor/rails/railties/guides/rails_guides/textile_extensions.rb +41 -0
- data/vendor/rails/railties/guides/source/2_2_release_notes.textile +422 -0
- data/vendor/rails/railties/guides/source/2_3_release_notes.textile +610 -0
- data/vendor/rails/railties/guides/source/action_controller_overview.textile +776 -0
- data/vendor/rails/railties/guides/source/action_mailer_basics.textile +424 -0
- data/vendor/rails/railties/guides/source/active_record_basics.textile +135 -0
- data/vendor/rails/railties/guides/source/active_record_querying.textile +969 -0
- data/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile +1086 -0
- data/vendor/rails/railties/guides/source/association_basics.textile +1781 -0
- data/vendor/rails/railties/guides/source/caching_with_rails.textile +524 -0
- data/vendor/rails/railties/guides/source/command_line.textile +589 -0
- data/vendor/rails/railties/guides/source/configuring.textile +234 -0
- data/vendor/rails/railties/guides/source/contribute.textile +71 -0
- data/vendor/rails/railties/guides/source/contributing_to_rails.textile +239 -0
- data/vendor/rails/railties/guides/source/credits.erb.textile +52 -0
- data/vendor/rails/railties/guides/source/debugging_rails_applications.textile +709 -0
- data/vendor/rails/railties/guides/source/form_helpers.textile +766 -0
- data/vendor/rails/railties/guides/source/getting_started.textile +1297 -0
- data/vendor/rails/railties/guides/source/i18n.textile +912 -0
- data/vendor/rails/railties/guides/source/index.erb.textile +124 -0
- data/vendor/rails/railties/guides/source/layout.html.erb +103 -0
- data/vendor/rails/railties/guides/source/layouts_and_rendering.textile +979 -0
- data/vendor/rails/railties/guides/source/migrations.textile +591 -0
- data/vendor/rails/railties/guides/source/nested_model_forms.textile +222 -0
- data/vendor/rails/railties/guides/source/performance_testing.textile +531 -0
- data/vendor/rails/railties/guides/source/plugins.textile +1512 -0
- data/vendor/rails/railties/guides/source/rails_on_rack.textile +309 -0
- data/vendor/rails/railties/guides/source/routing.textile +903 -0
- data/vendor/rails/railties/guides/source/security.textile +986 -0
- data/vendor/rails/railties/guides/source/testing.textile +951 -0
- data/vendor/rails/railties/lib/commands/dbconsole.rb +8 -4
- data/vendor/rails/railties/lib/commands/performance/profiler.rb +1 -1
- data/vendor/rails/railties/lib/initializer.rb +27 -4
- data/vendor/rails/railties/lib/rails/gem_dependency.rb +35 -6
- data/vendor/rails/railties/lib/rails/plugin.rb +12 -0
- data/vendor/rails/railties/lib/rails/plugin/loader.rb +7 -0
- data/vendor/rails/railties/lib/rails/rack/metal.rb +1 -1
- data/vendor/rails/railties/lib/rails/version.rb +1 -1
- data/vendor/rails/railties/lib/rails_generator/base.rb +1 -1
- data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +5 -0
- data/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +1 -1
- data/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +9 -2
- data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +1 -0
- data/vendor/rails/railties/lib/tasks/databases.rake +17 -4
- data/vendor/rails/railties/lib/tasks/gems.rake +19 -6
- data/vendor/rails/railties/lib/tasks/routes.rake +4 -3
- data/vendor/rails/railties/lib/test_help.rb +4 -1
- metadata +158 -58
- data/spec/lib/local_time_spec.rb +0 -40
- data/vendor/rails/actionpack/lib/action_controller/rewindable_input.rb +0 -28
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack.rb +0 -89
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/adapter/camping.rb +0 -22
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/handler.rb +0 -37
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/request.rb +0 -37
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/basic.rb +0 -58
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/md5.rb +0 -124
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/nonce.rb +0 -51
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/params.rb +0 -55
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/request.rb +0 -40
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/openid.rb +0 -480
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/builder.rb +0 -63
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/cascade.rb +0 -36
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/chunked.rb +0 -49
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/commonlogger.rb +0 -61
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/conditionalget.rb +0 -45
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_length.rb +0 -29
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_type.rb +0 -23
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb +0 -85
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/directory.rb +0 -153
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/file.rb +0 -88
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler.rb +0 -48
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb +0 -61
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/evented_mongrel.rb +0 -8
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb +0 -89
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb +0 -55
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb +0 -84
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb +0 -59
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/swiftiplied_mongrel.rb +0 -8
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/thin.rb +0 -18
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb +0 -67
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/head.rb +0 -19
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb +0 -462
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lobster.rb +0 -65
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lock.rb +0 -16
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb +0 -27
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mime.rb +0 -204
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb +0 -160
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/recursive.rb +0 -57
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/reloader.rb +0 -64
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/request.rb +0 -241
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/response.rb +0 -179
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/abstract/id.rb +0 -142
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/cookie.rb +0 -91
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/memcache.rb +0 -109
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/pool.rb +0 -100
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showexceptions.rb +0 -349
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showstatus.rb +0 -106
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/static.rb +0 -38
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb +0 -55
- data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb +0 -392
@@ -120,6 +120,11 @@ module ActionController #:nodoc:
|
|
120
120
|
(@used.keys - keys).each{ |k| @used.delete(k) }
|
121
121
|
end
|
122
122
|
|
123
|
+
def store(session, key = "flash")
|
124
|
+
return if self.empty?
|
125
|
+
session[key] = self
|
126
|
+
end
|
127
|
+
|
123
128
|
private
|
124
129
|
# Used internally by the <tt>keep</tt> and <tt>discard</tt> methods
|
125
130
|
# use() # marks the entire flash as used
|
@@ -139,7 +144,10 @@ module ActionController #:nodoc:
|
|
139
144
|
protected
|
140
145
|
def perform_action_with_flash
|
141
146
|
perform_action_without_flash
|
142
|
-
|
147
|
+
if defined? @_flash
|
148
|
+
@_flash.store(session)
|
149
|
+
remove_instance_variable(:@_flash)
|
150
|
+
end
|
143
151
|
end
|
144
152
|
|
145
153
|
def reset_session_with_flash
|
@@ -151,8 +159,8 @@ module ActionController #:nodoc:
|
|
151
159
|
# read a notice you put there or <tt>flash["notice"] = "hello"</tt>
|
152
160
|
# to put a new one.
|
153
161
|
def flash #:doc:
|
154
|
-
|
155
|
-
@_flash = session["flash"]
|
162
|
+
if !defined?(@_flash)
|
163
|
+
@_flash = session["flash"] || FlashHash.new
|
156
164
|
@_flash.sweep
|
157
165
|
end
|
158
166
|
|
@@ -139,7 +139,7 @@ module ActionController
|
|
139
139
|
end
|
140
140
|
|
141
141
|
def decode_credentials(request)
|
142
|
-
ActiveSupport::Base64.decode64(authorization(request).split.last || '')
|
142
|
+
ActiveSupport::Base64.decode64(authorization(request).split(' ', 2).last || '')
|
143
143
|
end
|
144
144
|
|
145
145
|
def encode_credentials(user_name, password)
|
@@ -183,7 +183,7 @@ module ActionController
|
|
183
183
|
request.env['REDIRECT_X_HTTP_AUTHORIZATION']
|
184
184
|
end
|
185
185
|
|
186
|
-
#
|
186
|
+
# Returns false unless the request credentials response value matches the expected value.
|
187
187
|
# First try the password as a ha1 digest password. If this fails, then try it as a plain
|
188
188
|
# text password.
|
189
189
|
def validate_digest_response(request, realm, &password_procedure)
|
@@ -192,9 +192,13 @@ module ActionController
|
|
192
192
|
|
193
193
|
if valid_nonce && realm == credentials[:realm] && opaque == credentials[:opaque]
|
194
194
|
password = password_procedure.call(credentials[:username])
|
195
|
+
return false unless password
|
196
|
+
|
197
|
+
method = request.env['rack.methodoverride.original_method'] || request.env['REQUEST_METHOD']
|
198
|
+
uri = credentials[:uri][0,1] == '/' ? request.request_uri : request.url
|
195
199
|
|
196
200
|
[true, false].any? do |password_is_ha1|
|
197
|
-
expected = expected_response(
|
201
|
+
expected = expected_response(method, uri, credentials, password, password_is_ha1)
|
198
202
|
expected == credentials[:response]
|
199
203
|
end
|
200
204
|
end
|
@@ -5,7 +5,7 @@ require 'active_support/test_case'
|
|
5
5
|
module ActionController
|
6
6
|
module Integration #:nodoc:
|
7
7
|
# An integration Session instance represents a set of requests and responses
|
8
|
-
# performed sequentially by some virtual user.
|
8
|
+
# performed sequentially by some virtual user. Because you can instantiate
|
9
9
|
# multiple sessions and run them side-by-side, you can also mimic (to some
|
10
10
|
# limited extent) multiple simultaneous users interacting with your system.
|
11
11
|
#
|
@@ -292,9 +292,7 @@ module ActionController
|
|
292
292
|
"rack.errors" => StringIO.new,
|
293
293
|
"rack.multithread" => true,
|
294
294
|
"rack.multiprocess" => true,
|
295
|
-
"rack.run_once" => false
|
296
|
-
|
297
|
-
"rack.test" => true
|
295
|
+
"rack.run_once" => false
|
298
296
|
)
|
299
297
|
|
300
298
|
(headers || {}).each do |key, value|
|
@@ -311,12 +309,7 @@ module ActionController
|
|
311
309
|
|
312
310
|
ActionController::Base.clear_last_instantiation!
|
313
311
|
|
314
|
-
app = @application
|
315
|
-
# Rack::Lint doesn't accept String headers or bodies in Ruby 1.9
|
316
|
-
unless RUBY_VERSION >= '1.9.0' && Rack.release <= '0.9.0'
|
317
|
-
app = Rack::Lint.new(app)
|
318
|
-
end
|
319
|
-
|
312
|
+
app = Rack::Lint.new(@application)
|
320
313
|
status, headers, body = app.call(env)
|
321
314
|
@request_count += 1
|
322
315
|
|
@@ -333,7 +326,7 @@ module ActionController
|
|
333
326
|
end
|
334
327
|
|
335
328
|
@body = ""
|
336
|
-
if body.
|
329
|
+
if body.respond_to?(:to_str)
|
337
330
|
@body << body
|
338
331
|
else
|
339
332
|
body.each { |part| @body << part }
|
@@ -416,7 +409,7 @@ module ActionController
|
|
416
409
|
def multipart_requestify(params, first=true)
|
417
410
|
returning Hash.new do |p|
|
418
411
|
params.each do |key, value|
|
419
|
-
k = first ?
|
412
|
+
k = first ? key.to_s : "[#{key.to_s}]"
|
420
413
|
if Hash === value
|
421
414
|
multipart_requestify(value, false).each do |subkey, subvalue|
|
422
415
|
p[k + subkey] = subvalue
|
@@ -7,7 +7,6 @@ use "ActionController::Failsafe"
|
|
7
7
|
use lambda { ActionController::Base.session_store },
|
8
8
|
lambda { ActionController::Base.session_options }
|
9
9
|
|
10
|
-
use "ActionController::RewindableInput"
|
11
10
|
use "ActionController::ParamsParser"
|
12
11
|
use "Rack::MethodOverride"
|
13
12
|
use "Rack::Head"
|
@@ -47,6 +47,8 @@ module ActionController
|
|
47
47
|
false
|
48
48
|
end
|
49
49
|
rescue Exception => e # YAML, XML or Ruby code block errors
|
50
|
+
logger.debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}"
|
51
|
+
|
50
52
|
raise
|
51
53
|
{ "body" => request.raw_post,
|
52
54
|
"content_type" => request.content_type,
|
@@ -67,5 +69,9 @@ module ActionController
|
|
67
69
|
|
68
70
|
nil
|
69
71
|
end
|
72
|
+
|
73
|
+
def logger
|
74
|
+
defined?(Rails.logger) ? Rails.logger : Logger.new($stderr)
|
75
|
+
end
|
70
76
|
end
|
71
77
|
end
|
@@ -1,14 +1,54 @@
|
|
1
|
+
require 'thread'
|
2
|
+
|
1
3
|
module ActionController
|
2
4
|
class Reloader
|
3
|
-
|
4
|
-
|
5
|
+
@@default_lock = Mutex.new
|
6
|
+
cattr_accessor :default_lock
|
7
|
+
|
8
|
+
class BodyWrapper
|
9
|
+
def initialize(body, lock)
|
10
|
+
@body = body
|
11
|
+
@lock = lock
|
12
|
+
end
|
13
|
+
|
14
|
+
def close
|
15
|
+
@body.close if @body.respond_to?(:close)
|
16
|
+
ensure
|
17
|
+
Dispatcher.cleanup_application
|
18
|
+
@lock.unlock
|
19
|
+
end
|
20
|
+
|
21
|
+
def method_missing(*args, &block)
|
22
|
+
@body.send(*args, &block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def respond_to?(symbol, include_private = false)
|
26
|
+
symbol == :close || @body.respond_to?(symbol, include_private)
|
27
|
+
end
|
5
28
|
end
|
6
29
|
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
30
|
+
def self.run(lock = @@default_lock)
|
31
|
+
lock.lock
|
32
|
+
begin
|
33
|
+
Dispatcher.reload_application
|
34
|
+
status, headers, body = yield
|
35
|
+
# We do not want to call 'cleanup_application' in an ensure block
|
36
|
+
# because the returned Rack response body may lazily generate its data. This
|
37
|
+
# is for example the case if one calls
|
38
|
+
#
|
39
|
+
# render :text => lambda { ... code here which refers to application models ... }
|
40
|
+
#
|
41
|
+
# in an ActionController.
|
42
|
+
#
|
43
|
+
# Instead, we will want to cleanup the application code after the request is
|
44
|
+
# completely finished. So we wrap the body in a BodyWrapper class so that
|
45
|
+
# when the Rack handler calls #close during the end of the request, we get to
|
46
|
+
# run our cleanup code.
|
47
|
+
[status, headers, BodyWrapper.new(body, lock)]
|
48
|
+
rescue Exception
|
49
|
+
lock.unlock
|
50
|
+
raise
|
51
|
+
end
|
12
52
|
end
|
13
53
|
end
|
14
54
|
end
|
@@ -95,6 +95,10 @@ module ActionController
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
+
def media_type
|
99
|
+
content_type.to_s
|
100
|
+
end
|
101
|
+
|
98
102
|
# Returns the accepted MIME type for the request.
|
99
103
|
def accepts
|
100
104
|
@accepts ||= begin
|
@@ -383,7 +387,7 @@ EOM
|
|
383
387
|
alias_method :params, :parameters
|
384
388
|
|
385
389
|
def path_parameters=(parameters) #:nodoc:
|
386
|
-
@env["
|
390
|
+
@env["action_controller.request.path_parameters"] = parameters
|
387
391
|
@symbolized_path_parameters = @parameters = nil
|
388
392
|
end
|
389
393
|
|
@@ -399,7 +403,7 @@ EOM
|
|
399
403
|
#
|
400
404
|
# See <tt>symbolized_path_parameters</tt> for symbolized keys.
|
401
405
|
def path_parameters
|
402
|
-
@env["
|
406
|
+
@env["action_controller.request.path_parameters"] ||= {}
|
403
407
|
end
|
404
408
|
|
405
409
|
# The request body is an IO input stream. If the RAW_POST_DATA environment
|
@@ -81,12 +81,13 @@ module ActionController #:nodoc:
|
|
81
81
|
|
82
82
|
# Returns true or false if a request is verified. Checks:
|
83
83
|
#
|
84
|
-
# * is the format restricted? By default, only HTML
|
84
|
+
# * is the format restricted? By default, only HTML requests are checked.
|
85
85
|
# * is it a GET request? Gets should be safe and idempotent
|
86
86
|
# * Does the form_authenticity_token match the given token value from the params?
|
87
87
|
def verified_request?
|
88
88
|
!protect_against_forgery? ||
|
89
89
|
request.method == :get ||
|
90
|
+
request.xhr? ||
|
90
91
|
!verifiable_request_format? ||
|
91
92
|
form_authenticity_token == params[request_forgery_protection_token]
|
92
93
|
end
|
@@ -317,9 +317,10 @@ module ActionController
|
|
317
317
|
# notes.resources :attachments
|
318
318
|
# end
|
319
319
|
#
|
320
|
-
# * <tt>:path_names</tt> - Specify different names for the
|
320
|
+
# * <tt>:path_names</tt> - Specify different path names for the actions. For example:
|
321
321
|
# # new_products_path == '/productos/nuevo'
|
322
|
-
#
|
322
|
+
# # bids_product_path(1) == '/productos/1/licitacoes'
|
323
|
+
# map.resources :products, :as => 'productos', :member => { :bids => :get }, :path_names => { :new => 'nuevo', :bids => 'licitacoes' }
|
323
324
|
#
|
324
325
|
# You can also set default action names from an environment, like this:
|
325
326
|
# config.action_controller.resources_path_names = { :new => 'nuevo', :edit => 'editar' }
|
@@ -525,16 +526,16 @@ module ActionController
|
|
525
526
|
resource = Resource.new(entities, options)
|
526
527
|
|
527
528
|
with_options :controller => resource.controller do |map|
|
528
|
-
map_collection_actions(map, resource)
|
529
|
-
map_default_collection_actions(map, resource)
|
530
|
-
map_new_actions(map, resource)
|
531
|
-
map_member_actions(map, resource)
|
532
|
-
|
533
529
|
map_associations(resource, options)
|
534
530
|
|
535
531
|
if block_given?
|
536
532
|
with_options(options.slice(*INHERITABLE_OPTIONS).merge(:path_prefix => resource.nesting_path_prefix, :name_prefix => resource.nesting_name_prefix), &block)
|
537
533
|
end
|
534
|
+
|
535
|
+
map_collection_actions(map, resource)
|
536
|
+
map_default_collection_actions(map, resource)
|
537
|
+
map_new_actions(map, resource)
|
538
|
+
map_member_actions(map, resource)
|
538
539
|
end
|
539
540
|
end
|
540
541
|
|
@@ -542,16 +543,16 @@ module ActionController
|
|
542
543
|
resource = SingletonResource.new(entities, options)
|
543
544
|
|
544
545
|
with_options :controller => resource.controller do |map|
|
545
|
-
map_collection_actions(map, resource)
|
546
|
-
map_new_actions(map, resource)
|
547
|
-
map_member_actions(map, resource)
|
548
|
-
map_default_singleton_actions(map, resource)
|
549
|
-
|
550
546
|
map_associations(resource, options)
|
551
547
|
|
552
548
|
if block_given?
|
553
549
|
with_options(options.slice(*INHERITABLE_OPTIONS).merge(:path_prefix => resource.nesting_path_prefix, :name_prefix => resource.nesting_name_prefix), &block)
|
554
550
|
end
|
551
|
+
|
552
|
+
map_collection_actions(map, resource)
|
553
|
+
map_new_actions(map, resource)
|
554
|
+
map_member_actions(map, resource)
|
555
|
+
map_default_singleton_actions(map, resource)
|
555
556
|
end
|
556
557
|
end
|
557
558
|
|
@@ -586,7 +587,10 @@ module ActionController
|
|
586
587
|
resource.collection_methods.each do |method, actions|
|
587
588
|
actions.each do |action|
|
588
589
|
[method].flatten.each do |m|
|
589
|
-
|
590
|
+
action_path = resource.options[:path_names][action] if resource.options[:path_names].is_a?(Hash)
|
591
|
+
action_path ||= action
|
592
|
+
|
593
|
+
map_resource_routes(map, resource, action, "#{resource.path}#{resource.action_separator}#{action_path}", "#{action}_#{resource.name_prefix}#{resource.plural}", m)
|
590
594
|
end
|
591
595
|
end
|
592
596
|
end
|
@@ -151,8 +151,8 @@ module ActionController # :nodoc:
|
|
151
151
|
if @body.respond_to?(:call)
|
152
152
|
@writer = lambda { |x| callback.call(x) }
|
153
153
|
@body.call(self, self)
|
154
|
-
elsif @body.
|
155
|
-
@body
|
154
|
+
elsif @body.respond_to?(:to_str)
|
155
|
+
yield @body
|
156
156
|
else
|
157
157
|
@body.each(&callback)
|
158
158
|
end
|
@@ -166,6 +166,12 @@ module ActionController # :nodoc:
|
|
166
166
|
str
|
167
167
|
end
|
168
168
|
|
169
|
+
def flush #:nodoc:
|
170
|
+
ActiveSupport::Deprecation.warn(
|
171
|
+
'Calling output.flush is no longer needed for streaming output ' +
|
172
|
+
'because ActionController::Response automatically handles it', caller)
|
173
|
+
end
|
174
|
+
|
169
175
|
def set_cookie(key, value)
|
170
176
|
if value.has_key?(:http_only)
|
171
177
|
ActiveSupport::Deprecation.warn(
|
@@ -271,6 +271,9 @@ module ActionController
|
|
271
271
|
|
272
272
|
ALLOWED_REQUIREMENTS_FOR_OPTIMISATION = [:controller, :action].to_set
|
273
273
|
|
274
|
+
mattr_accessor :generate_best_match
|
275
|
+
self.generate_best_match = true
|
276
|
+
|
274
277
|
# The root paths which may contain controller files
|
275
278
|
mattr_accessor :controller_paths
|
276
279
|
self.controller_paths = []
|
@@ -305,6 +305,7 @@ module ActionController
|
|
305
305
|
end
|
306
306
|
|
307
307
|
def add_route(path, options = {})
|
308
|
+
options.each { |k, v| options[k] = v.to_s if [:controller, :action].include?(k) && v.is_a?(Symbol) }
|
308
309
|
route = builder.build(path, options)
|
309
310
|
routes << route
|
310
311
|
route
|
@@ -404,11 +405,14 @@ module ActionController
|
|
404
405
|
end
|
405
406
|
|
406
407
|
# don't use the recalled keys when determining which routes to check
|
407
|
-
|
408
|
+
future_routes, deprecated_routes = routes_by_controller[controller][action][options.reject {|k,v| !v}.keys.sort_by { |x| x.object_id }]
|
409
|
+
routes = Routing.generate_best_match ? deprecated_routes : future_routes
|
408
410
|
|
409
|
-
routes.
|
411
|
+
routes.each_with_index do |route, index|
|
410
412
|
results = route.__send__(method, options, merged, expire_on)
|
411
|
-
|
413
|
+
if results && (!results.is_a?(Array) || results.first)
|
414
|
+
return results
|
415
|
+
end
|
412
416
|
end
|
413
417
|
end
|
414
418
|
|
@@ -436,7 +440,7 @@ module ActionController
|
|
436
440
|
def recognize(request)
|
437
441
|
params = recognize_path(request.path, extract_request_environment(request))
|
438
442
|
request.path_parameters = params.with_indifferent_access
|
439
|
-
"#{params[:controller].camelize}Controller".constantize
|
443
|
+
"#{params[:controller].to_s.camelize}Controller".constantize
|
440
444
|
end
|
441
445
|
|
442
446
|
def recognize_path(path, environment={})
|
@@ -447,7 +451,10 @@ module ActionController
|
|
447
451
|
@routes_by_controller ||= Hash.new do |controller_hash, controller|
|
448
452
|
controller_hash[controller] = Hash.new do |action_hash, action|
|
449
453
|
action_hash[action] = Hash.new do |key_hash, keys|
|
450
|
-
key_hash[keys] =
|
454
|
+
key_hash[keys] = [
|
455
|
+
routes_for_controller_and_action_and_keys(controller, action, keys),
|
456
|
+
deprecated_routes_for_controller_and_action_and_keys(controller, action, keys)
|
457
|
+
]
|
451
458
|
end
|
452
459
|
end
|
453
460
|
end
|
@@ -459,10 +466,11 @@ module ActionController
|
|
459
466
|
merged = options if expire_on[:controller]
|
460
467
|
action = merged[:action] || 'index'
|
461
468
|
|
462
|
-
routes_by_controller[controller][action][merged.keys]
|
469
|
+
routes_by_controller[controller][action][merged.keys][1]
|
463
470
|
end
|
464
471
|
|
465
472
|
def routes_for_controller_and_action(controller, action)
|
473
|
+
ActiveSupport::Deprecation.warn "routes_for_controller_and_action() has been deprecated. Please use routes_for()"
|
466
474
|
selected = routes.select do |route|
|
467
475
|
route.matches_controller_and_action? controller, action
|
468
476
|
end
|
@@ -470,6 +478,12 @@ module ActionController
|
|
470
478
|
end
|
471
479
|
|
472
480
|
def routes_for_controller_and_action_and_keys(controller, action, keys)
|
481
|
+
routes.select do |route|
|
482
|
+
route.matches_controller_and_action? controller, action
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
def deprecated_routes_for_controller_and_action_and_keys(controller, action, keys)
|
473
487
|
selected = routes.select do |route|
|
474
488
|
route.matches_controller_and_action? controller, action
|
475
489
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/core_ext/string/bytesize'
|
2
|
+
|
1
3
|
module ActionController #:nodoc:
|
2
4
|
# Methods for sending arbitrary data and for streaming files to the browser,
|
3
5
|
# instead of rendering.
|
@@ -137,7 +139,7 @@ module ActionController #:nodoc:
|
|
137
139
|
# instead. See ActionController::Base#render for more information.
|
138
140
|
def send_data(data, options = {}) #:doc:
|
139
141
|
logger.info "Sending data #{options[:filename]}" if logger
|
140
|
-
send_file_headers! options.merge(:length => data.
|
142
|
+
send_file_headers! options.merge(:length => data.bytesize)
|
141
143
|
@performed_render = false
|
142
144
|
render :status => options[:status], :text => data
|
143
145
|
end
|
@@ -161,7 +163,7 @@ module ActionController #:nodoc:
|
|
161
163
|
content_type = content_type.to_s.strip # fixes a problem with extra '\r' with some browsers
|
162
164
|
|
163
165
|
headers.merge!(
|
164
|
-
'Content-Length' => options[:length],
|
166
|
+
'Content-Length' => options[:length].to_s,
|
165
167
|
'Content-Type' => content_type,
|
166
168
|
'Content-Disposition' => disposition,
|
167
169
|
'Content-Transfer-Encoding' => 'binary'
|