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
@@ -185,7 +185,7 @@ class FixturesTest < ActiveRecord::TestCase
|
|
185
185
|
|
186
186
|
def test_binary_in_fixtures
|
187
187
|
assert_equal 1, @binaries.size
|
188
|
-
data = File.
|
188
|
+
data = File.open(ASSETS_ROOT + "/flowers.jpg", 'rb') { |f| f.read }
|
189
189
|
data.force_encoding('ASCII-8BIT') if data.respond_to?(:force_encoding)
|
190
190
|
data.freeze
|
191
191
|
assert_equal data, @flowers.data
|
@@ -518,6 +518,11 @@ class FoxyFixturesTest < ActiveRecord::TestCase
|
|
518
518
|
assert_equal(Fixtures.identify(:foo), Fixtures.identify(:foo))
|
519
519
|
end
|
520
520
|
|
521
|
+
def test_identifies_consistently
|
522
|
+
assert_equal 1281023246, Fixtures.identify(:ruby)
|
523
|
+
assert_equal 2140105598, Fixtures.identify(:sapphire_2)
|
524
|
+
end
|
525
|
+
|
521
526
|
TIMESTAMP_COLUMNS = %w(created_at created_on updated_at updated_on)
|
522
527
|
|
523
528
|
def test_populates_timestamp_columns
|
@@ -12,6 +12,11 @@ class ActiveRecordI18nTests < Test::Unit::TestCase
|
|
12
12
|
I18n.backend.store_translations 'en', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
|
13
13
|
assert_equal 'topic title attribute', Topic.human_attribute_name('title')
|
14
14
|
end
|
15
|
+
|
16
|
+
def test_translated_model_attributes_with_symbols
|
17
|
+
I18n.backend.store_translations 'en', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
|
18
|
+
assert_equal 'topic title attribute', Topic.human_attribute_name(:title)
|
19
|
+
end
|
15
20
|
|
16
21
|
def test_translated_model_attributes_with_sti
|
17
22
|
I18n.backend.store_translations 'en', :activerecord => {:attributes => {:reply => {:title => 'reply title attribute'} } }
|
@@ -26,19 +26,19 @@ class JsonSerializationTest < ActiveRecord::TestCase
|
|
26
26
|
NamespacedContact.include_root_in_json = true
|
27
27
|
@contact = NamespacedContact.new :name => 'whatever'
|
28
28
|
json = @contact.to_json
|
29
|
-
assert_match %r{^\{"namespaced_contact"
|
29
|
+
assert_match %r{^\{"namespaced_contact":\{}, json
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_should_include_root_in_json
|
33
33
|
Contact.include_root_in_json = true
|
34
34
|
json = @contact.to_json
|
35
35
|
|
36
|
-
assert_match %r{^\{"contact"
|
37
|
-
assert_match %r{"name":
|
38
|
-
assert_match %r{"age":
|
39
|
-
assert json.include?(%("created_at"
|
40
|
-
assert_match %r{"awesome":
|
41
|
-
assert_match %r{"preferences"
|
36
|
+
assert_match %r{^\{"contact":\{}, json
|
37
|
+
assert_match %r{"name":"Konata Izumi"}, json
|
38
|
+
assert_match %r{"age":16}, json
|
39
|
+
assert json.include?(%("created_at":#{ActiveSupport::JSON.encode(Time.utc(2006, 8, 1))}))
|
40
|
+
assert_match %r{"awesome":true}, json
|
41
|
+
assert_match %r{"preferences":\{"shows":"anime"\}}, json
|
42
42
|
ensure
|
43
43
|
Contact.include_root_in_json = false
|
44
44
|
end
|
@@ -46,31 +46,31 @@ class JsonSerializationTest < ActiveRecord::TestCase
|
|
46
46
|
def test_should_encode_all_encodable_attributes
|
47
47
|
json = @contact.to_json
|
48
48
|
|
49
|
-
assert_match %r{"name":
|
50
|
-
assert_match %r{"age":
|
51
|
-
assert json.include?(%("created_at"
|
52
|
-
assert_match %r{"awesome":
|
53
|
-
assert_match %r{"preferences"
|
49
|
+
assert_match %r{"name":"Konata Izumi"}, json
|
50
|
+
assert_match %r{"age":16}, json
|
51
|
+
assert json.include?(%("created_at":#{ActiveSupport::JSON.encode(Time.utc(2006, 8, 1))}))
|
52
|
+
assert_match %r{"awesome":true}, json
|
53
|
+
assert_match %r{"preferences":\{"shows":"anime"\}}, json
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_should_allow_attribute_filtering_with_only
|
57
57
|
json = @contact.to_json(:only => [:name, :age])
|
58
58
|
|
59
|
-
assert_match %r{"name":
|
60
|
-
assert_match %r{"age":
|
61
|
-
assert_no_match %r{"awesome":
|
62
|
-
assert !json.include?(%("created_at"
|
63
|
-
assert_no_match %r{"preferences"
|
59
|
+
assert_match %r{"name":"Konata Izumi"}, json
|
60
|
+
assert_match %r{"age":16}, json
|
61
|
+
assert_no_match %r{"awesome":true}, json
|
62
|
+
assert !json.include?(%("created_at":#{ActiveSupport::JSON.encode(Time.utc(2006, 8, 1))}))
|
63
|
+
assert_no_match %r{"preferences":\{"shows":"anime"\}}, json
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_should_allow_attribute_filtering_with_except
|
67
67
|
json = @contact.to_json(:except => [:name, :age])
|
68
68
|
|
69
|
-
assert_no_match %r{"name":
|
70
|
-
assert_no_match %r{"age":
|
71
|
-
assert_match %r{"awesome":
|
72
|
-
assert json.include?(%("created_at"
|
73
|
-
assert_match %r{"preferences"
|
69
|
+
assert_no_match %r{"name":"Konata Izumi"}, json
|
70
|
+
assert_no_match %r{"age":16}, json
|
71
|
+
assert_match %r{"awesome":true}, json
|
72
|
+
assert json.include?(%("created_at":#{ActiveSupport::JSON.encode(Time.utc(2006, 8, 1))}))
|
73
|
+
assert_match %r{"preferences":\{"shows":"anime"\}}, json
|
74
74
|
end
|
75
75
|
|
76
76
|
def test_methods_are_called_on_object
|
@@ -79,12 +79,12 @@ class JsonSerializationTest < ActiveRecord::TestCase
|
|
79
79
|
def @contact.favorite_quote; "Constraints are liberating"; end
|
80
80
|
|
81
81
|
# Single method.
|
82
|
-
assert_match %r{"label":
|
82
|
+
assert_match %r{"label":"Has cheezburger"}, @contact.to_json(:only => :name, :methods => :label)
|
83
83
|
|
84
84
|
# Both methods.
|
85
85
|
methods_json = @contact.to_json(:only => :name, :methods => [:label, :favorite_quote])
|
86
|
-
assert_match %r{"label":
|
87
|
-
assert_match %r{"favorite_quote":
|
86
|
+
assert_match %r{"label":"Has cheezburger"}, methods_json
|
87
|
+
assert_match %r{"favorite_quote":"Constraints are liberating"}, methods_json
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -99,42 +99,42 @@ class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase
|
|
99
99
|
def test_includes_uses_association_name
|
100
100
|
json = @david.to_json(:include => :posts)
|
101
101
|
|
102
|
-
assert_match %r{"posts"
|
102
|
+
assert_match %r{"posts":\[}, json
|
103
103
|
|
104
|
-
assert_match %r{"id":
|
105
|
-
assert_match %r{"name":
|
104
|
+
assert_match %r{"id":1}, json
|
105
|
+
assert_match %r{"name":"David"}, json
|
106
106
|
|
107
|
-
assert_match %r{"author_id":
|
108
|
-
assert_match %r{"title":
|
109
|
-
assert_match %r{"body":
|
107
|
+
assert_match %r{"author_id":1}, json
|
108
|
+
assert_match %r{"title":"Welcome to the weblog"}, json
|
109
|
+
assert_match %r{"body":"Such a lovely day"}, json
|
110
110
|
|
111
|
-
assert_match %r{"title":
|
112
|
-
assert_match %r{"body":
|
111
|
+
assert_match %r{"title":"So I was thinking"}, json
|
112
|
+
assert_match %r{"body":"Like I hopefully always am"}, json
|
113
113
|
end
|
114
114
|
|
115
115
|
def test_includes_uses_association_name_and_applies_attribute_filters
|
116
116
|
json = @david.to_json(:include => { :posts => { :only => :title } })
|
117
117
|
|
118
|
-
assert_match %r{"name":
|
119
|
-
assert_match %r{"posts"
|
118
|
+
assert_match %r{"name":"David"}, json
|
119
|
+
assert_match %r{"posts":\[}, json
|
120
120
|
|
121
|
-
assert_match %r{"title":
|
122
|
-
assert_no_match %r{"body":
|
121
|
+
assert_match %r{"title":"Welcome to the weblog"}, json
|
122
|
+
assert_no_match %r{"body":"Such a lovely day"}, json
|
123
123
|
|
124
|
-
assert_match %r{"title":
|
125
|
-
assert_no_match %r{"body":
|
124
|
+
assert_match %r{"title":"So I was thinking"}, json
|
125
|
+
assert_no_match %r{"body":"Like I hopefully always am"}, json
|
126
126
|
end
|
127
127
|
|
128
128
|
def test_includes_fetches_second_level_associations
|
129
129
|
json = @david.to_json(:include => { :posts => { :include => { :comments => { :only => :body } } } })
|
130
130
|
|
131
|
-
assert_match %r{"name":
|
132
|
-
assert_match %r{"posts"
|
131
|
+
assert_match %r{"name":"David"}, json
|
132
|
+
assert_match %r{"posts":\[}, json
|
133
133
|
|
134
|
-
assert_match %r{"comments"
|
135
|
-
assert_match %r{\{"body":
|
136
|
-
assert_match %r{\{"body":
|
137
|
-
assert_no_match %r{"post_id":
|
134
|
+
assert_match %r{"comments":\[}, json
|
135
|
+
assert_match %r{\{"body":"Thank you again for the welcome"\}}, json
|
136
|
+
assert_match %r{\{"body":"Don't think too hard"\}}, json
|
137
|
+
assert_no_match %r{"post_id":}, json
|
138
138
|
end
|
139
139
|
|
140
140
|
def test_includes_fetches_nth_level_associations
|
@@ -151,11 +151,11 @@ class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase
|
|
151
151
|
}
|
152
152
|
})
|
153
153
|
|
154
|
-
assert_match %r{"name":
|
155
|
-
assert_match %r{"posts"
|
154
|
+
assert_match %r{"name":"David"}, json
|
155
|
+
assert_match %r{"posts":\[}, json
|
156
156
|
|
157
|
-
assert_match %r{"taggings"
|
158
|
-
assert_match %r{"tag"
|
157
|
+
assert_match %r{"taggings":\[}, json
|
158
|
+
assert_match %r{"tag":\{"name":"General"\}}, json
|
159
159
|
end
|
160
160
|
|
161
161
|
def test_should_not_call_methods_on_associations_that_dont_respond
|
@@ -163,33 +163,33 @@ class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase
|
|
163
163
|
json = @david.to_json(:include => :posts, :methods => :favorite_quote)
|
164
164
|
|
165
165
|
assert !@david.posts.first.respond_to?(:favorite_quote)
|
166
|
-
assert_match %r{"favorite_quote":
|
167
|
-
assert_equal %r{"favorite_quote":
|
166
|
+
assert_match %r{"favorite_quote":"Constraints are liberating"}, json
|
167
|
+
assert_equal %r{"favorite_quote":}.match(json).size, 1
|
168
168
|
end
|
169
169
|
|
170
170
|
def test_should_allow_only_option_for_list_of_authors
|
171
171
|
authors = [@david, @mary]
|
172
172
|
|
173
|
-
assert_equal %([{"name":
|
173
|
+
assert_equal %([{"name":"David"},{"name":"Mary"}]), ActiveSupport::JSON.encode(authors, :only => :name)
|
174
174
|
end
|
175
175
|
|
176
176
|
def test_should_allow_except_option_for_list_of_authors
|
177
177
|
authors = [@david, @mary]
|
178
178
|
|
179
|
-
assert_equal %([{"id":
|
179
|
+
assert_equal %([{"id":1},{"id":2}]), ActiveSupport::JSON.encode(authors, :except => [:name, :author_address_id, :author_address_extra_id])
|
180
180
|
end
|
181
181
|
|
182
182
|
def test_should_allow_includes_for_list_of_authors
|
183
183
|
authors = [@david, @mary]
|
184
|
-
json =
|
184
|
+
json = ActiveSupport::JSON.encode(authors,
|
185
185
|
:only => :name,
|
186
186
|
:include => {
|
187
187
|
:posts => { :only => :id }
|
188
188
|
}
|
189
189
|
)
|
190
190
|
|
191
|
-
['"name":
|
192
|
-
'{"id":
|
191
|
+
['"name":"David"', '"posts":[', '{"id":1}', '{"id":2}', '{"id":4}',
|
192
|
+
'{"id":5}', '{"id":6}', '"name":"Mary"', '"posts":[{"id":7}]'].each do |fragment|
|
193
193
|
assert json.include?(fragment), json
|
194
194
|
end
|
195
195
|
end
|
@@ -200,6 +200,6 @@ class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase
|
|
200
200
|
2 => @mary
|
201
201
|
}
|
202
202
|
|
203
|
-
assert_equal %({"1":
|
203
|
+
assert_equal %({"1":{"name":"David"}}), ActiveSupport::JSON.encode(authors_hash, :only => [1, :name])
|
204
204
|
end
|
205
205
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require "cases/helper"
|
2
|
+
require 'models/post'
|
2
3
|
require 'models/author'
|
3
4
|
require 'models/developer'
|
4
5
|
require 'models/project'
|
5
6
|
require 'models/comment'
|
6
|
-
require 'models/post'
|
7
7
|
require 'models/category'
|
8
8
|
|
9
9
|
class MethodScopingTest < ActiveRecord::TestCase
|
@@ -591,6 +591,16 @@ class DefaultScopingTest < ActiveRecord::TestCase
|
|
591
591
|
assert_equal expected, received
|
592
592
|
end
|
593
593
|
|
594
|
+
def test_default_scope_with_conditions_string
|
595
|
+
assert_equal Developer.find_all_by_name('David').map(&:id).sort, DeveloperCalledDavid.all.map(&:id).sort
|
596
|
+
assert_equal nil, DeveloperCalledDavid.create!.name
|
597
|
+
end
|
598
|
+
|
599
|
+
def test_default_scope_with_conditions_hash
|
600
|
+
assert_equal Developer.find_all_by_name('Jamis').map(&:id).sort, DeveloperCalledJamis.all.map(&:id).sort
|
601
|
+
assert_equal 'Jamis', DeveloperCalledJamis.create!.name
|
602
|
+
end
|
603
|
+
|
594
604
|
def test_default_scoping_with_threads
|
595
605
|
scope = [{ :create => {}, :find => { :order => 'salary DESC' } }]
|
596
606
|
|
@@ -628,9 +638,9 @@ class DefaultScopingTest < ActiveRecord::TestCase
|
|
628
638
|
assert_equal expected, received
|
629
639
|
end
|
630
640
|
|
631
|
-
def
|
632
|
-
expected = Developer.find(:all, :order => '
|
633
|
-
received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.
|
641
|
+
def test_named_scope_overwrites_default
|
642
|
+
expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.name }
|
643
|
+
received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.name }
|
634
644
|
assert_equal expected, received
|
635
645
|
end
|
636
646
|
|
@@ -25,6 +25,24 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
class MigrationTableAndIndexTest < ActiveRecord::TestCase
|
29
|
+
def test_add_schema_info_respects_prefix_and_suffix
|
30
|
+
conn = ActiveRecord::Base.connection
|
31
|
+
|
32
|
+
conn.drop_table(ActiveRecord::Migrator.schema_migrations_table_name) if conn.table_exists?(ActiveRecord::Migrator.schema_migrations_table_name)
|
33
|
+
ActiveRecord::Base.table_name_prefix = 'foo_'
|
34
|
+
ActiveRecord::Base.table_name_suffix = '_bar'
|
35
|
+
conn.drop_table(ActiveRecord::Migrator.schema_migrations_table_name) if conn.table_exists?(ActiveRecord::Migrator.schema_migrations_table_name)
|
36
|
+
|
37
|
+
conn.initialize_schema_migrations_table
|
38
|
+
|
39
|
+
assert_equal "foo_unique_schema_migrations_bar", conn.indexes(ActiveRecord::Migrator.schema_migrations_table_name)[0][:name]
|
40
|
+
ensure
|
41
|
+
ActiveRecord::Base.table_name_prefix = ""
|
42
|
+
ActiveRecord::Base.table_name_suffix = ""
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
28
46
|
class MigrationTest < ActiveRecord::TestCase
|
29
47
|
self.use_transactional_fixtures = false
|
30
48
|
|
@@ -224,7 +242,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
224
242
|
t.column :foo, :string
|
225
243
|
end
|
226
244
|
|
227
|
-
assert_equal %w(foo
|
245
|
+
assert_equal %w(foo testing_id), Person.connection.columns(:testings).map { |c| c.name }.sort
|
228
246
|
ensure
|
229
247
|
Person.connection.drop_table :testings rescue nil
|
230
248
|
ActiveRecord::Base.primary_key_prefix_type = nil
|
@@ -237,7 +255,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
237
255
|
t.column :foo, :string
|
238
256
|
end
|
239
257
|
|
240
|
-
assert_equal %w(foo
|
258
|
+
assert_equal %w(foo testingid), Person.connection.columns(:testings).map { |c| c.name }.sort
|
241
259
|
ensure
|
242
260
|
Person.connection.drop_table :testings rescue nil
|
243
261
|
ActiveRecord::Base.primary_key_prefix_type = nil
|
@@ -389,7 +407,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
389
407
|
assert_equal 9, wealth_column.precision
|
390
408
|
assert_equal 7, wealth_column.scale
|
391
409
|
end
|
392
|
-
|
410
|
+
|
393
411
|
def test_native_types
|
394
412
|
Person.delete_all
|
395
413
|
Person.connection.add_column "people", "last_name", :string
|
@@ -921,9 +939,9 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
921
939
|
|
922
940
|
def test_migrator_one_down
|
923
941
|
ActiveRecord::Migrator.up(MIGRATIONS_ROOT + "/valid")
|
924
|
-
|
942
|
+
|
925
943
|
ActiveRecord::Migrator.down(MIGRATIONS_ROOT + "/valid", 1)
|
926
|
-
|
944
|
+
|
927
945
|
Person.reset_column_information
|
928
946
|
assert Person.column_methods_hash.include?(:last_name)
|
929
947
|
assert !Reminder.table_exists?
|
@@ -1059,20 +1077,20 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
1059
1077
|
assert Reminder.create("content" => "hello world", "remind_at" => Time.now)
|
1060
1078
|
assert_equal "hello world", Reminder.find(:first).content
|
1061
1079
|
end
|
1062
|
-
|
1080
|
+
|
1063
1081
|
def test_migrator_rollback
|
1064
1082
|
ActiveRecord::Migrator.migrate(MIGRATIONS_ROOT + "/valid")
|
1065
1083
|
assert_equal(3, ActiveRecord::Migrator.current_version)
|
1066
|
-
|
1084
|
+
|
1067
1085
|
ActiveRecord::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
|
1068
1086
|
assert_equal(2, ActiveRecord::Migrator.current_version)
|
1069
|
-
|
1087
|
+
|
1070
1088
|
ActiveRecord::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
|
1071
1089
|
assert_equal(1, ActiveRecord::Migrator.current_version)
|
1072
|
-
|
1090
|
+
|
1073
1091
|
ActiveRecord::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
|
1074
1092
|
assert_equal(0, ActiveRecord::Migrator.current_version)
|
1075
|
-
|
1093
|
+
|
1076
1094
|
ActiveRecord::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
|
1077
1095
|
assert_equal(0, ActiveRecord::Migrator.current_version)
|
1078
1096
|
end
|
@@ -1224,7 +1242,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
1224
1242
|
end
|
1225
1243
|
|
1226
1244
|
end
|
1227
|
-
|
1245
|
+
|
1228
1246
|
class SexyMigrationsTest < ActiveRecord::TestCase
|
1229
1247
|
def test_references_column_type_adds_id
|
1230
1248
|
with_new_table do |t|
|
@@ -1280,6 +1298,15 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
1280
1298
|
end
|
1281
1299
|
end
|
1282
1300
|
|
1301
|
+
if current_adapter?(:PostgreSQLAdapter)
|
1302
|
+
def test_xml_creates_xml_column
|
1303
|
+
with_new_table do |t|
|
1304
|
+
t.expects(:column).with(:data, 'xml', {})
|
1305
|
+
t.xml :data
|
1306
|
+
end
|
1307
|
+
end
|
1308
|
+
end
|
1309
|
+
|
1283
1310
|
protected
|
1284
1311
|
def with_new_table
|
1285
1312
|
Person.connection.create_table :delete_me, :force => true do |t|
|
@@ -1493,3 +1520,4 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|
1493
1520
|
end
|
1494
1521
|
end
|
1495
1522
|
end
|
1523
|
+
|
@@ -4,6 +4,23 @@ require 'models/company_in_module'
|
|
4
4
|
class ModulesTest < ActiveRecord::TestCase
|
5
5
|
fixtures :accounts, :companies, :projects, :developers
|
6
6
|
|
7
|
+
def setup
|
8
|
+
# need to make sure Object::Firm and Object::Client are not defined,
|
9
|
+
# so that constantize will not be able to cheat when having to load namespaced classes
|
10
|
+
@undefined_consts = {}
|
11
|
+
|
12
|
+
[:Firm, :Client].each do |const|
|
13
|
+
@undefined_consts.merge! const => Object.send(:remove_const, const) if Object.const_defined?(const)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
# reinstate the constants that we undefined in the setup
|
19
|
+
@undefined_consts.each do |constant, value|
|
20
|
+
Object.send :const_set, constant, value unless value.nil?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
7
24
|
def test_module_spanning_associations
|
8
25
|
firm = MyApplication::Business::Firm.find(:first)
|
9
26
|
assert !firm.clients.empty?, "Firm should have clients"
|
@@ -36,4 +53,29 @@ class ModulesTest < ActiveRecord::TestCase
|
|
36
53
|
assert_equal 'companies', MyApplication::Business::Client.table_name, 'table_name for ActiveRecord model subclass'
|
37
54
|
assert_equal 'company_contacts', MyApplication::Business::Client::Contact.table_name, 'table_name for ActiveRecord model enclosed by another ActiveRecord model'
|
38
55
|
end
|
56
|
+
|
57
|
+
def test_assign_ids
|
58
|
+
firm = MyApplication::Business::Firm.first
|
59
|
+
|
60
|
+
assert_nothing_raised NameError, "Should be able to resolve all class constants via reflection" do
|
61
|
+
firm.client_ids = [MyApplication::Business::Client.first.id]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# need to add an eager loading condition to force the eager loading model into
|
66
|
+
# the old join model, to test that. See http://dev.rubyonrails.org/ticket/9640
|
67
|
+
def test_eager_loading_in_modules
|
68
|
+
clients = []
|
69
|
+
|
70
|
+
assert_nothing_raised NameError, "Should be able to resolve all class constants via reflection" do
|
71
|
+
clients << MyApplication::Business::Client.find(3, :include => {:firm => :account}, :conditions => 'accounts.id IS NOT NULL')
|
72
|
+
clients << MyApplication::Business::Client.find(3, :include => {:firm => :account})
|
73
|
+
end
|
74
|
+
|
75
|
+
clients.each do |client|
|
76
|
+
assert_no_queries do
|
77
|
+
assert_not_nil(client.firm.account)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
39
81
|
end
|