aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #11606 from vipulnsward/refactor_array_parserRafael Mendonça França2013-07-301-15/+22
|\ | | | | Refactor `ArrayParser`
| * Refactor `ArrayParser`Vipul A M2013-07-261-15/+22
| | | | | | | | | | * Constantize parse token * Remove extra param passed to `parse_data`
* | all `scope_chain` methods allocate new arrays, no need to dupAaron Patterson2013-07-301-1/+1
| |
* | Merge branch 'revert-order-prepending'Rafael Mendonça França2013-07-301-2/+2
|\ \ | | | | | | | | | | | | Conflicts: activerecord/CHANGELOG.md
| * | Revert change on ActiveRecord::Relation#order method that prepends newRafael Mendonça França2013-07-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | order on the old ones The previous behavior added a major backward incompatibility since it impossible to have a upgrade path without major changes on the application code. We are taking the most conservative path to be consistent with the idea of having a smoother upgrade on Rails 4. We are reverting the behavior for what was in Rails 3.x and, if needed, we will implement a new API to prepend the order clauses in Rails 4.1.
* | | Merge pull request #10673 from sgrif/masterRafael Mendonça França2013-07-293-35/+74
|\ \ \ | |/ / |/| | Add ability to specify how a class is converted to Arel predicate when passed to where
| * | Add ability to specify how a class is converted to Arel predicatesgrif2013-07-283-35/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the ability for rails apps or gems to have granular control over how a domain object is converted to sql. One simple use case would be to add support for Regexp. Another simple case would be something like the following: class DateRange < Struct.new(:start, :end) def include?(date) (start..end).cover?(date) end end class DateRangePredicate def call(attribute, range) attribute.in(range.start..range.end) end end ActiveRecord::PredicateBuilder.register_handler(DateRange, DateRangePredicate.new) More complex cases might include taking a currency object and converting it from EUR to USD before performing the query. By moving the existing handlers to this format, we were also able to nicely refactor a rather nasty method in PredicateBuilder.
* | | only calculate the klass onceAaron Patterson2013-07-291-1/+2
|/ /
* | Avoid "uninitialized constant ActiveRecord::PendingMigrationError::Rails"Akira Matsuda2013-07-291-1/+1
| |
* | rake -> bin/rakeSteve Klabnik2013-07-241-1/+1
|/
* Fix indentation.kennyj2013-07-241-8/+8
|
* Simplify select_one method.kennyj2013-07-241-2/+1
| | | | | | The select_all method always returns ActiveRecord::Result instance, and the ActiveRecord::Result includes Enumerable mixin. If #empty?, #first method returns nil. Thus we can simplify this method.
* Refactor to use flat_mapCarlos Antonio da Silva2013-07-231-3/+3
|
* oops!Aaron Patterson2013-07-231-1/+1
|
* eliminate conditional in JoinHelperAaron Patterson2013-07-232-2/+2
|
* acually get the actual source reflection :cry::gun:Aaron Patterson2013-07-231-7/+14
|
* stop relying on side effects of const_missingAaron Patterson2013-07-231-7/+7
|
* add a specific factory method rather than using newAaron Patterson2013-07-239-13/+11
|
* factory methods should not have side effects.Aaron Patterson2013-07-233-8/+11
| | | | Move model mutation to the methods that are called on the model.
* extract mutation from generation methodAaron Patterson2013-07-232-4/+6
|
* habtm can only ever be an association reflectionAaron Patterson2013-07-221-2/+4
|
* use the predicate methodAaron Patterson2013-07-221-1/+1
|
* AR::Base does not need to know how to create reflection objectsAaron Patterson2013-07-223-21/+21
|
* remove unnecessary readerAaron Patterson2013-07-221-4/+4
|
* only flatten one sideAaron Patterson2013-07-221-1/+1
|
* extend by adding relationships rather than monkey patchingAaron Patterson2013-07-222-11/+13
|
* decouple extensions from association object stateAaron Patterson2013-07-222-3/+3
|
* Uses mysql2 0.3.13 or laterkennyj2013-07-231-1/+1
|
* Added some usage about ActiveRecord::Result [ci skip]kennyj2013-07-231-2/+26
|
* Defines the return type of select / select_all method.kennyj2013-07-232-6/+3
|
* Don't allow `quote_value` to be called without a columnBen Woosley2013-07-221-2/+2
| | | | | | | Some adapters require column information to do their job properly. By enforcing the provision of the column for this internal method we ensure that those using adapters that require column information will always get the proper behavior.
* Tidy up the "Specified column type for quote_value" changesBen Woosley2013-07-221-1/+1
| | | | | | This includes fixing typos in changelog, removing a deprecated mocha/setup test require, and preferring the `column_for_attribute` accessor over direct access to the columns_hash in the new code.
* Specified column type for quote_valueAlfred Wong2013-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | When calling quote_value the underlying connection sometimes requires more information about the column to properly return the correct quoted value. I ran into this issue when using optimistic locking in JRuby and the activerecord-jdbcmssql-adapter. In SQLSever 2000, we aren't allowed to insert a integer into a NVARCHAR column type so we need to format it as N'3' if we want to insert into the NVARCHAR type. Unfortuantely, without the column type being passed the connection adapter cannot properly return the correct quote value because it doesn't know to return N'3' or '3'. This patch is fairly straight forward where it just passes in the column type into the quote_value, as it already has the ability to take in the column, so it can properly handle at the connection level. I've added the tests required to make sure that the quote_value method is being passed the column type so that the underlying connection can determine how to quote the value.
* Merge pull request #11538 from vipulnsward/rescue-expPiotr Sarnacki2013-07-221-1/+1
|\ | | | | rescue from all exceptions in `ConnectionManagement#call`
| * rescue from all exceptions in `ConnectionManagement#call`Vipul A M2013-07-221-1/+1
| | | | | | | | | | | | | | | | | | Fixes #11497 As `ActiveRecord::ConnectionAdapters::ConnectionManagement` middleware does not rescue from Exception (but only from StandardError), the Connection Pool quickly runs out of connections when multiple erroneous Requests come in right after each other. Recueing from all exceptions and not just StandardError, fixes this behaviour.
* | Revert "Merge pull request #11416 from tigrish/master"Yves Senn2013-07-223-4/+4
|/ | | | | This reverts commit 9dc8aef084fc5ae7e3a396dd098d89da93d06fda, reversing changes made to 02e8dae6279ea25312293a3eca777faf35139c4c.
* Merge pull request #11416 from tigrish/masterYves Senn2013-07-213-4/+4
|\ | | | | Rename the I18n keys for associations' restrict_dependent_destroy errors
| * Remove ambiguity with pluralizations and I18n keys used for association ↵Christopher Dell2013-07-133-4/+4
| | | | | | | | restrict_dependent_destroy errors
* | use the superclass implementationAaron Patterson2013-07-182-2/+4
| |
* | Improve ActiveRecord::QueryMethods#includes docsHenrik Hodne2013-07-171-0/+8
| | | | | | | | | | | | | | | | It's not immediately clear whether you can pass in multiple relations or not. After going through the code a bit, I saw that the arguments are just appended to an array. Also, added nested relations example. [ci skip]
* | Revert "Merge pull request #11120 from awilliams/ar_mysql2_boolean_quoting"Yves Senn2013-07-172-6/+6
| | | | | | | | | | This reverts commit cb1d07e43926bcec95cb8b4a663ca9889173395a, reversing changes made to 754a373e301d2df0b12a11083405252722bc8366.
* | parent_table is only used internallyAaron Patterson2013-07-161-4/+4
| |
* | decouple the manager class from building join constraintsAaron Patterson2013-07-162-10/+11
| |
* | cache the klass member of the reflectionAaron Patterson2013-07-161-8/+10
| |
* | cache the scope chain on the stack and eliminate `i`Aaron Patterson2013-07-161-7/+4
| |
* | just push on to the scope chain items. Oops! (thanks @carlosantoniodasilva)Aaron Patterson2013-07-161-2/+1
| |
* | use Relation#merge to combine scope chain itemsAaron Patterson2013-07-161-6/+6
| |
* | make sure scope_chain_items has consistent typesAaron Patterson2013-07-161-7/+9
| |
* | removes the obsolete private method column_methods_hash [Closes #11406]Xavier Noria2013-07-161-13/+0
| |
* | Move initializing process for query cache to ↵kennyj2013-07-162-2/+6
| | | | | | | | ActiveRecord::ConnectionAdapters::QueryCache module.