- 03 1月, 2015 40 次提交
-
-
由 claudiob 提交于
This stems from [a comment](rails#17227 (comment)) by @dhh. In summary: * New Rails 5.0 apps will not accept `return false` as a way to halt callback chains, and will not display a deprecation warning. * Existing apps ported to Rails 5.0 will still accept `return false` as a way to halt callback chains, albeit with a deprecation warning. For this purpose, this commit introduces a Rails configuration option: ```ruby config.active_support.halt_callback_chains_on_return_false ``` For new Rails 5.0 apps, this option will be set to `false` by a new initializer `config/initializers/callback_terminator.rb`: ```ruby Rails.application.config.active_support.halt_callback_chains_on_return_false = false ``` For existing apps ported to Rails 5.0, the initializers above will not exist. Even running `rake rails:update` will not create this initializer. Since the default value of `halt_callback_chains_on_return_false` is set to `true`, these apps will still accept `return true` as a way to halt callback chains, displaying a deprecation warning. Developers will be able to switch to the new behavior (and stop the warning) by manually adding the line above to their `config/application.rb`. A gist with the suggested release notes to add to Rails 5.0 after this commit is available at https://gist.github.com/claudiob/614c59409fb7d11f2931
-
由 claudiob 提交于
Before this commit, returning `false` in an ActiveRecord `before_` callback such as `before_create` would halt the callback chain. After this commit, the behavior is deprecated: will still work until the next release of Rails but will also display a deprecation warning. The preferred way to halt a callback chain is to explicitly `throw(:abort)`.
-
由 claudiob 提交于
Before this commit, returning `false` in an ActiveModel `before_` callback such as `before_create` would halt the callback chain. After this commit, the behavior is deprecated: will still work until the next release of Rails but will also display a deprecation warning. The preferred way to halt a callback chain is to explicitly `throw(:abort)`.
-
由 claudiob 提交于
Before this commit, returning `false` in an ActiveModel validation callback such as `before_validation` would halt the callback chain. After this commit, the behavior is deprecated: will still work until the next release of Rails but will also display a deprecation warning. The preferred way to halt a callback chain is to explicitly `throw(:abort)`.
-
由 claudiob 提交于
After this commit, returning `false` in a callback will display a deprecation warning to make developers aware of the fact that they need to explicitly `throw(:abort)` if their intention is to halt a callback chain. This commit also patches two internal uses of AS::Callbacks (inside ActiveRecord and ActionDispatch) which sometimes return `false` but whose returned value is not meaningful for the purpose of execution. In both cases, the returned value is set to `true`, which does not affect the execution of the callbacks but prevents unrequested deprecation warnings from showing up.
-
由 claudiob 提交于
This commit changes arguments and default value of CallbackChain's :terminator option. After this commit, Chains of callbacks defined **without** an explicit `:terminator` option will be halted as soon as a `before_` callback throws `:abort`. Chains of callbacks defined **with** a `:terminator` option will maintain their existing behavior of halting as soon as a `before_` callback matches the terminator's expectation. For instance, ActiveModel's callbacks will still halt the chain when a `before_` callback returns `false`.
-
由 claudiob 提交于
This commit modifies the code (but not the purpose) of a test that checks that > initializers are executed after application configuration initializers Currently the test hard-codes the *exact* initializers that are expected to occur before a custom one. This can cause the test to fail even if the expectation still passes. This commit loosens the test by simply checking that, in the array of initializers, the custom initializers (called `dummy_initializer` in the example) is executed after the last occurrence of `load_config_initializers`.
-
由 Rafael Mendonça França 提交于
Refactoring of add_constraints in AssociationScope
-
由 Rafael Mendonça França 提交于
Fix TaggedLogging to allow loggers to be instantiated multiple times without having to share the stack of tags
-
由 Rafael Mendonça França 提交于
`MissingSourceFile` was just an alias to `LoadError` and was not being raised inside the framework.
-
由 Rafael Mendonça França 提交于
replace use of MissingSourceFile with LoadError Conflicts: activesupport/test/core_ext/load_error_test.rb
-
由 eileencodes 提交于
Add missing nodoc's Change `assoc_klass` argument name to `association_klass` Change `prev_reflection` argument name to `previous_reflection` Change `prev` to `previous_reflection` in `#get_chain` Switch use of `refl` and `reflection` in `#get_chain` so main parameter is not abbreviated. Add missing space in `#add_constraints`
-
由 eileencodes 提交于
This moves the `#type_caster` from the `aliased_table_for` and into the initialize of the `alias_tracker`.
-
由 eileencodes 提交于
`yield` instead of relying on checking if the reflection is equal to the `chain_head`.
-
由 eileencodes 提交于
Instead of initializing an empty connection use the base table name instead. Split up and refactor `#create` to be 2 methods `#create` and `#create_with_joins`. Removes the need to update the count by 1 on initialzing a JoinDependency.
-
由 eileencodes 提交于
This moves `alias_candidate` out of the `ReflectionProxy` and into the `AbstractReflection` so it is shared by all reflections. Change `alias_name` to a method and and remove assignment in `#get_chain`.
-
由 eileencodes 提交于
After the refactorings we're only using the connection and not the alias tracker anymore. This builds on commit 18019. Reuse the already available `@connection` to reduce the surface area of the alias tracker's API. We can then remove the `attr_reader` because the connection is already available.
-
由 eileencodes 提交于
This makes the `#alias_name` more functional.
-
由 eileencodes 提交于
Move `RuntimeReflection` and `PolymorphicReflect` into Reflection. This allows the methods to inherit from `ThroughReflection` and DRY up the methods by removing duplicates.
-
由 eileencodes 提交于
The linked list lets us use a loop in `#add_constraints` and completely remove the need for indexing the iteration becasue we have access to the next item in the chain.
-
由 eileencodes 提交于
By concatnating the `ReflectionProxy` with the `chain` we remove the need for `#construct_tables` because the `chain` is now in the correct order (order of the chain DOES matter).
-
由 eileencodes 提交于
Putting the `#alias_name` into ReflectionProxy means we don't have to cache the `#alias_name` globally anymore - it's not cached per query.
-
由 eileencodes 提交于
`is_first_chain`, `items` and `klass` are no longer beneficial and can be called directly instead of via their assignments - because they are each only used once.
-
由 eileencodes 提交于
Move method structure into reflection classes for accessibly on each reflection rather than by traversing the chain.
-
由 eileencodes 提交于
The `RuntimeReflection` class allows the reflection to be accessed at runtime - then we always know which reflection we are accessing in the chain. The `#get_chain` method then allows us to recursively access the chain through the `RuntimeReflection`.
-
由 eileencodes 提交于
`#constraints` builds a flattened version of `scope_chain` to allow it to be accessible without requiring an index when iterating over the `scope_chain`
-
由 Rafael Mendonça França 提交于
It already treats the message
-
由 Robin Dupret 提交于
-
由 Zachary Scott 提交于
-
由 Robin Dupret 提交于
-
由 Rafael Mendonça França 提交于
Refactor `visit_ChangeColumnDefinition`
-
由 Rafael Mendonça França 提交于
fix for messages in invalid encoding from db-drivers Conflicts: activerecord/lib/active_record/connection_adapters/abstract_adapter.rb activerecord/test/cases/connection_adapters/abstract_adapter_test.rb
-
由 Ryuta Kamizono 提交于
`visit_ChangeColumnDefinition` is the same "CHANGE column_name " + `visit_ColumnDefinition(o)`.
-
由 Ryuta Kamizono 提交于
In most cases, `create_table_definition` called by table_name (the first argument) only.
-
由 Rafael Mendonça França 提交于
Clear query cache on rollback
-
由 Rafael Mendonça França 提交于
Add setting of FK for throgh associations while building Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/associations/has_many_through_associations_test.rb
-
由 Rafael Mendonça França 提交于
Ensure append_info_to_payload is called even if an exception is raised. Conflicts: actionpack/CHANGELOG.md
-
由 Rafael Mendonça França 提交于
Make possible to use blocks with short version of render partial Conflicts: actionview/CHANGELOG.md
-
由 Rafael Mendonça França 提交于
Generate a hidden_tag when using a file_field
-
由 Rafael Mendonça França 提交于
They are already present on Ruby 2.2
-