aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Deprecate `false` as the way to halt AM callbacksclaudiob2015-01-023-6/+15
| | | | | | | | | | 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)`.
* Deprecate `false` as the way to halt AM validation callbacksclaudiob2015-01-023-6/+28
| | | | | | | | | | 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)`.
* Deprecate `false` as the way to halt AS callbacksclaudiob2015-01-024-4/+36
| | | | | | | | | | | | | | 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.
* Throw :abort halts default CallbackChainsclaudiob2015-01-027-14/+68
| | | | | | | | | | | | | | 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`.
* Loosen test about order of initializersclaudiob2015-01-021-10/+5
| | | | | | | | | | | | | | 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`.
* Merge pull request #18279 from eileencodes/refactor-association-scopeRafael Mendonça França2015-01-024-84/+169
|\ | | | | Refactoring of add_constraints in AssociationScope
| * Cleanup methods, missing spacing and missing nodocseileencodes2015-01-022-33/+34
| | | | | | | | | | | | | | | | | | | | 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`
| * Move `#type_caster` to alias tracker initializeeileencodes2015-01-023-13/+10
| | | | | | | | | | This moves the `#type_caster` from the `aliased_table_for` and into the initialize of the `alias_tracker`.
| * Add `#all_includes` method to reflectionseileencodes2015-01-022-1/+5
| | | | | | | | | | `yield` instead of relying on checking if the reflection is equal to the `chain_head`.
| * Initialze `#alias_tracker` with base table nameeileencodes2015-01-023-11/+12
| | | | | | | | | | | | | | 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.
| * Move `alias_candiate` into `AbstractReflection`eileencodes2015-01-022-10/+16
| | | | | | | | | | | | 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`.
| * Pass `connection` rather than `alias_tracker`eileencodes2015-01-022-7/+7
| | | | | | | | | | | | | | | | | | 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.
| * Assign the `#alias_name` to each reflectioneileencodes2015-01-022-18/+15
| | | | | | | | This makes the `#alias_name` more functional.
| * Clean up / refactor new reflection classeseileencodes2015-01-022-92/+76
| | | | | | | | | | | | Move `RuntimeReflection` and `PolymorphicReflect` into Reflection. This allows the methods to inherit from `ThroughReflection` and DRY up the methods by removing duplicates.
| * Refactor `#get_chain` iteration to a linked listeileencodes2015-01-021-14/+21
| | | | | | | | | | | | 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.
| * Refactor `#get_chain` to remove need for `#construct_tables`eileencodes2015-01-021-14/+11
| | | | | | | | | | | | 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).
| * Move `#alias_name` to `ReflectionProxy` classeileencodes2015-01-022-20/+23
| | | | | | | | | | Putting the `#alias_name` into ReflectionProxy means we don't have to cache the `#alias_name` globally anymore - it's not cached per query.
| * Clean up assignments in `#add_constraints`eileencodes2015-01-021-8/+3
| | | | | | | | | | | | `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.
| * Refactor construct_tables methodeileencodes2015-01-022-36/+20
| | | | | | | | | | Move method structure into reflection classes for accessibly on each reflection rather than by traversing the chain.
| * Add RuntimeReflection for recursive access to chaineileencodes2015-01-021-3/+54
| | | | | | | | | | | | | | 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`.
| * Add PolymorphicReflection and constraints methodeileencodes2015-01-022-4/+62
| | | | | | | | | | | | `#constraints` builds a flattened version of `scope_chain` to allow it to be accessible without requiring an index when iterating over the `scope_chain`
* | Merge pull request #9065 from atombender/masterRafael Mendonça França2015-01-022-1/+16
|\ \ | | | | | | Fix TaggedLogging to allow loggers to be instantiated multiple times without having to share the stack of tags
| * | Fix TaggedLogging to allow loggers to be instantiated multiple times without ↵Alexander Staubo2013-01-242-1/+16
| | | | | | | | | | | | having to share the stack of tags. This is accomplished by using a unique key for the thread-local tag list. Fixes #9064.
* | | Deprecate `MissingSourceFile` in favor of `LoadError`.Rafael Mendonça França2015-01-024-4/+22
| | | | | | | | | | | | | | | `MissingSourceFile` was just an alias to `LoadError` and was not being raised inside the framework.
* | | Merge pull request #8740 from amatsuda/missing_source_fileRafael Mendonça França2015-01-023-27/+3
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | replace use of MissingSourceFile with LoadError Conflicts: activesupport/test/core_ext/load_error_test.rb
| * | replace use of MissingSourceFile with LoadErrorAkira Matsuda2013-01-043-19/+4
| | |
* | | Don't test invalid log encoding against PostgreSQL adapterRafael Mendonça França2015-01-021-4/+6
| | | | | | | | | | | | It already treats the message
* | | A quick pass through NestedAttributes' doc [ci skip]Robin Dupret2015-01-021-18/+20
| | |
* | | Revert part of 996e646bd8cff3bcf2b13863439f48d3e744cdae [ci skip]Zachary Scott2015-01-022-3/+1
| | |
* | | Follow up to #17973 [ci skip]Robin Dupret2015-01-021-9/+10
| | |
* | | Merge pull request #17822 from kamipo/refactor_visit_change_column_definitionRafael Mendonça França2015-01-024-16/+14
|\ \ \ | | | | | | | | Refactor `visit_ChangeColumnDefinition`
| * | | Refactor `visit_ChangeColumnDefinition`Ryuta Kamizono2015-01-032-11/+9
| | | | | | | | | | | | | | | | `visit_ChangeColumnDefinition` is the same "CHANGE column_name " + `visit_ColumnDefinition(o)`.
| * | | Add default value for `create_table_definition`Ryuta Kamizono2015-01-033-5/+5
| | | | | | | | | | | | | | | | | | | | In most cases, `create_table_definition` called by table_name (the first argument) only.
* | | | Merge pull request #8547 from printercu/patch-1Rafael Mendonça França2015-01-022-1/+14
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 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
| * | | fix for messages in invalid encoding from db-driversMax Melentiev2013-12-072-1/+14
| | | |
* | | | Merge pull request #17820 from fw42/restore_query_cache_on_rollbackRafael Mendonça França2015-01-029-9/+53
|\ \ \ \ | | | | | | | | | | | | | | | Clear query cache on rollback
| * | | | Restore query cache on rollbackFlorian Weingarten2014-12-018-9/+49
| | | | |
* | | | | Merge pull request #15309 from iantropov/issue_12698_build_throughRafael Mendonça França2015-01-024-1/+29
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add setting of FK for throgh associations while building Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/associations/has_many_through_associations_test.rb
| * | | | | Add setting of FK for throgh associations while buildingIvan Antropov2014-05-254-1/+29
| | | | | |
* | | | | | Merge pull request #17978 from kommen/fixed-pr-14903Rafael Mendonça França2015-01-023-4/+38
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure append_info_to_payload is called even if an exception is raised. Conflicts: actionpack/CHANGELOG.md
| * | | | | | Ensure append_info_to_payload is called even if an exception is raised.Dieter Komendera2014-12-103-4/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See: * https://github.com/rails/rails/pull/14903 * https://github.com/roidrage/lograge/issues/37 Some code by mxrguspxrt from #14903.
* | | | | | | Merge pull request #17974 from killthekitten/fix-render-blockRafael Mendonça França2015-01-025-1/+49
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make possible to use blocks with short version of render partial Conflicts: actionview/CHANGELOG.md
| * | | | | | | Make possible to use blocks with short version of render partialNikolay Shebanov2014-12-195-1/+49
| | | | | | | |
* | | | | | | | Merge pull request #17973 from maurogeorge/file_field_hidden_fieldRafael Mendonça França2015-01-024-5/+58
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate a hidden_tag when using a file_field
| * | | | | | | | Add a hidden_field on the file_fieldMauro George2015-01-024-5/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will avoid a error be raised when the only input on the form is the `file_field`.
* | | | | | | | | Remove thread variables backportRafael Mendonça França2015-01-022-161/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They are already present on Ruby 2.2
* | | | | | | | | Merge pull request #18228 from kamipo/correctly_dump_primary_keyRafael Mendonça França2015-01-027-5/+69
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve a dump of the primary key support. Conflicts: activerecord/CHANGELOG.md
| * | | | | | | | | Improve a dump of the primary key support.Ryuta Kamizono2014-12-297-5/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If it is not a default primary key, correctly dump the type and options.
* | | | | | | | | | Remove support to activerecord-deprecated_findersRafael Mendonça França2015-01-0216-130/+64
| | | | | | | | | |
* | | | | | | | | | Merge pull request #16749 from robin850/rbx-name-errorRafael Mendonça França2015-01-021-0/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Rely on NameError#name instead of its error message