aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* `sql_type` has been determined already when quoting defaultsRyuta Kamizono2015-01-041-4/+2
| | | | No need to call `type_to_sql` again.
* Merge pull request #17227 from claudiob/explicitly-abort-callbacksRafael Mendonça França2015-01-0333-81/+507
|\ | | | | | | | | | | | | Introduce explicit way of halting callback chains by throwing :abort. Deprecate current implicit behavior of halting callback chains by returning `false` in apps ported to Rails 5.0. Completely remove that behavior in brand new Rails 5.0 apps. Conflicts: railties/CHANGELOG.md
| * Add config to halt callback chain on return falseclaudiob2015-01-0212-19/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Deprecate `false` as the way to halt AR callbacksclaudiob2015-01-0215-47/+191
| | | | | | | | | | | | | | | | | | | | 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)`.
| * 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`.
* | Remove some warningsRafael Mendonça França2015-01-031-32/+32
| |
* | Merge pull request #18314 from robin850/rm-tmp-sessionsRafael Mendonça França2015-01-035-27/+17
|\ \ | | | | | | Remove the tmp/sessions folder and its clear task
| * | Remove the tmp/sessions folder and its clear taskRobin Dupret2015-01-035-27/+17
|/ / | | | | | | | | | | | | | | | | | | Commit 1aea470 introduced this directory but this was at a time when the default way to store sessions was on the file system under the tmp directory. Let's remove references to it from the documentation as well. [Robin Dupret & yui-knk]
* | Fix a few typos [ci skip]Robin Dupret2015-01-034-5/+5
| |
* | Merge branch 'master' of github.com:rails/docrailsVijay Dev2015-01-0317-40/+74
|\ \
| * | Use Active Model, not ActiveModel in plain Englishclaudiob2015-01-028-10/+10
| | | | | | | | | | | | | | | | | | | | | Also prevents the word "Model" from linking to the documentation of ActiveModel::Model because that's not intended. [ci skip]
| * | [ci skip] :scissors: a blank line from code (Active Job Guide).Juanito Fatas2015-01-021-1/+0
| | |
| * | Fix doc formatting for `count_by_sql`claudiob2015-01-011-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: ![before](https://cloud.githubusercontent.com/assets/10076/5592809/25ce08e8-9199-11e4-9dfe-5baa8bd6b658.png) After: ![after](https://cloud.githubusercontent.com/assets/10076/5592810/25ceef9c-9199-11e4-88f4-d286203d7f6f.png) [ci skip]
| * | Fix "Rendering" not to link to AV::Renderingclaudiob2014-12-251-5/+5
| | | | | | | | | | | | | | | | | | | | | The "Rendering" word in the titles is not meant to be a link to the documentation for ActionView::Rendering. [ci skip]
| * | Better docs for NameErrorclaudiob2014-12-251-0/+14
| | | | | | | | | | | | | | | | | | Add examples for missing_name, missing_name? [ci skip]
| * | Better docs for AbstractControllerclaudiob2014-12-223-18/+24
| | | | | | | | | | | | | | | | | | Fixes internal links, adds examples and set fixed-width fonts. [ci skip]
| * | Add docs for `Rails.env` and `Rails.env=`claudiob2014-12-221-0/+8
| | | | | | | | | | | | [ci skip]
| * | Add docs for `Object.nil!`claudiob2014-12-221-3/+9
| | | | | | | | | | | | | | | | | | Also add doc examples for `Object.nil`. [ci skip]
* | | Merge pull request #18310 from robin850/guides-improvementsXavier Noria2015-01-036-7/+15
|\ \ \ | | | | | | | | Some guides improvements
| * | | Avoid displaying new lines inside note paragraphsRobin Dupret2015-01-033-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 65a2977 added a `pre-wrap` style for white spaces on `.note` paragraphs. However, this is first inconsistent as other notes like warnings don't have this style applied. Furthermore, it seems to be unneeded for mobile devices. Also revert changes made in #18147 since they aren't needed anymore. Cross-refs #18138. [ci skip]
| * | | Consider `html+erb` as a valid language for snippetsRobin Dupret2015-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | To highlight ERB snippets, both `erb` and `html+erb` are used as a language passed to the code block. However, only the former will be correctly highlighted.
| * | | Update Redcarpet to version 3.2.2Robin Dupret2015-01-032-3/+3
|/ / /
* | | Merge pull request #18309 from PaBLoX-CL/fix-fixtures-referencesRafael Mendonça França2015-01-023-5/+11
|\ \ \ | | | | | | | | | | | | | | | | Generated fixtures won't use parent_id when generated with parent:references
| * | | Generated fixtures won't use parent_id when generated with parent:referencesPablo Olmos de Aguilera Corradini2015-01-022-5/+7
|/ / / | | | | | | | | | Fix #18301
* | | Merge pull request #10380 from JonRowe/test_all_domain_2_letter_tldRafael Mendonça França2015-01-021-0/+7
|\ \ \ | | | | | | | | | | | | Assert that 2 letter tlds with 3 letter domain names work when option specified.
| * | | add test asserting that 2 letter tlds with 3 letter domain names work when ↵Jon Rowe2013-04-301-0/+7
| | | | | | | | | | | | | | | | option specified
* | | | Merge pull request #18307 from brainopia/datetime_regressionRafael Mendonça França2015-01-022-1/+13
|\ \ \ \ | | | | | | | | | | Fully support datetime values in AR::Type::DateTime#type_cast_for_database
| * | | | Support datetime values in AR::Type::DateTime#type_cast_for_databasebrainopia2015-01-032-1/+13
| | | | |
* | | | | Merge pull request #18308 from jcoyne/i18n_translate_safetyRafael Mendonça França2015-01-023-19/+20
|\ \ \ \ \ | |_|_|_|/ |/| | | | Unsafe default translations should not be marked html_safe
| * | | | Unsafe default translations should not be marked html_safeJustin Coyne2015-01-023-19/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously default translation keys that didn't end in `_html`, but came after a missing key that ended in `_html` were being returned as html_safe. Now they are not. Fixes #18257
* | | | | 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`