aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Don't mess with `column_defaults` when optimistic locking is enabledSean Griffin2014-06-173-12/+32
| |/ |/|
* | add `bin/rake db:purge` task to empty the current database.Yves Senn2014-06-174-0/+55
| |
* | fix typo in test method names. [ci skip]Yves Senn2014-06-171-4/+4
| |
* | Promote time zone aware attributes to a first class type decoratorSean Griffin2014-06-166-32/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | This refactoring revealed the need for another form of decoration, which takes a proc to select which it applies to (There's a *lot* of cases where this form can be used). To avoid duplication, we can re-implement the old decoration in terms of the proc-based decoration. The reason we're `instance_exec`ing the matcher is for cases such as time zone aware attributes, where a decorator is defined in a parent class, and a method called in the matcher is overridden by a child class. The matcher will close over the parent, and evaluate in its context, which is not the behavior we want.
* | Merge pull request #15759 from sgrif/sg-extract-type-decoratorRafael Mendonça França2014-06-161-8/+24
|\ \ | | | | | | Refactor application of type decorators into an object
| * | Refactor application of type decorators into an objectSean Griffin2014-06-161-8/+24
| | |
* | | [ci skip] add API doc for AR Group.Aditya Kapoor2014-06-171-1/+9
|/ /
* | Refactor in-place dirty checking to use the attribute objectSean Griffin2014-06-163-9/+26
| |
* | Merge pull request #13963 from lucas-clemente/pending_migrationsRafael Mendonça França2014-06-162-5/+58
|\ \ | | | | | | Skip migration check if adapter doesn't support it
| * | skip migration check if adapter doesn't support itLucas Clemente2014-04-192-5/+58
| | |
* | | Merge pull request #15722 from akshay-vishnoi/spell-correctZachary Scott2014-06-158-11/+11
|\ \ \ | | | | | | | | [ci skip] /mysql/i -> MySQL, Spell correct in continuation to #15555
| * | | /mysql/i -> MySQL, Spell correct in continuation to #15555Akshay Vishnoi2014-06-148-11/+11
| | | |
* | | | Merge pull request #15723 from akshay-vishnoi/sql-correctionZachary Scott2014-06-152-3/+3
|\ \ \ \ | | | | | | | | | | [ci skip] Use `an` for SQL
| * | | | [ci skip] Use `an` for SQLAkshay Vishnoi2014-06-142-3/+3
| |/ / /
* | | / Change the deprecation warning on `serialized_attributes`Sean Griffin2014-06-151-8/+2
| |_|/ |/| | | | | | | | to "without replacement"
* | | Deprecate `serialized_attributes` without replacementSean Griffin2014-06-143-18/+26
|/ / | | | | | | | | We've stopped using it internally, in favor of polymorphism. So should you!
* | Parsing DATABASE_URI, use URI#hostname: it's smarter about IPv6Matthew Draper2014-06-143-1/+20
| | | | | | | | Fixes #15705.
* | Merge pull request #15702 from sgrif/sg-rm-serializedRafael Mendonça França2014-06-134-14/+2
|\ \ | | | | | | Remove `serialized?` from the type interface
| * | Remove `serialized?` from the type interfaceSean Griffin2014-06-134-14/+2
| | |
* | | Merge pull request #15701 from zzak/issue_15496Rafael Mendonça França2014-06-131-1/+5
|\ \ \ | | | | | | | | Open extension point for defining options in build_through_record
| * | | Open extension point for defining options in build_through_recordZachary Scott2014-06-131-1/+5
| | | | | | | | | | | | | | | | This fixes #15496
* | | | Merge pull request #15694 from sgrif/sg-method-missingRafael Mendonça França2014-06-131-34/+1
|\ \ \ \ | | | | | | | | | | Remove unused `method_missing` definition
| * | | | Remove unused `method_missing` definitionSean Griffin2014-06-131-34/+1
| | | | | | | | | | | | | | | | | | | | We always define attribute methods in the constructor or in `init_with`.
* | | | | Merge pull request #15343 from dontfidget/fix_polymorphic_automatic_inverse_ofRafael Mendonça França2014-06-135-1/+16
|\ \ \ \ \ | |_|_|/ / |/| | | | prevent bad automatic inverse_of association
| * | | | use name specified by 'as' for automatic inverse association to avoid ↵Andrew S. Brown2014-06-105-1/+16
| | | | | | | | | | | | | | | | | | | | reflecting on wrong association
* | | | | Through associations should set both parent ids on join modelsSean Griffin2014-06-135-7/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | member = Member.new(club: Club.new) member.save! Before: member.current_membership.club_id # => nil After: member.current_membership.club_id # => club's id
* | | | | Merge pull request #15674 from sgrif/sg-mutable-attributesMatthew Draper2014-06-1412-36/+149
|\ \ \ \ \ | | | | | | | | | | | | Detect in-place changes on mutable AR attributes
| * | | | | Detect in-place changes on mutable AR attributesSean Griffin2014-06-1312-36/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have several mutable types on Active Record now. (Serialized, JSON, HStore). We need to be able to detect if these have been modified in place.
* | | | | | Merge pull request #15695 from sgrif/sg-rm-column-types-overrideRafael Mendonça França2014-06-132-11/+2
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Remove unused column types override
| * | | | | Remove unused column types overrideSean Griffin2014-06-132-11/+2
| | | | | |
* | | | | | Merge pull request #15696 from sgrif/sg-bad-testRafael Mendonça França2014-06-131-2/+2
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Reorder test which does not represent real world usage
| * | | | | Reorder test which does not represent real world usageSean Griffin2014-06-131-2/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | We don't generally modify our classes at runtime like this. Let's create the instance after the class is created. Original commit doesn't imply that this was intentional behavior.
* | | | | s/variable supplied/value supplied [ci skip]Zachary Scott2014-06-131-2/+1
| | | | |
* | | | | Reword PreparedStatementInvalid example, and use values instead ofZachary Scott2014-06-131-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | variables [ci skip] Thanks to @matthewd for the excellent feedback! :heart:
* | | | | Revert code changes at "Copy edits and code font wrap for Active Record [ci ↵Rafael Mendonça França2014-06-131-1/+7
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | skip]" This partially reverts commit 1a203d5e07f639332880099fab610b886b1742fc. Reason: It was committed by accident
* | | | Merge pull request #15689 from sgrif/sg-attribute-methodsMatthew Draper2014-06-142-0/+9
|\ \ \ \ | | | | | | | | | | Ensure we always define attribute methods
| * | | | Ensure we always define attribute methodsSean Griffin2014-06-132-0/+9
| | | | |
* | | | | Merge pull request #15593 from sgrif/sg-attributeRafael Mendonça França2014-06-1316-88/+225
|\ \ \ \ \ | | | | | | | | | | | | Introduce an Attribute object to handle the type casting dance
| * | | | | Introduce an Attribute object to handle the type casting danceSean Griffin2014-06-1316-88/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a lot more that can be moved to these, but this felt like a good place to introduce the object. Plans are: - Remove all knowledge of type casting from the columns, beyond a reference to the cast_type - Move type_cast_for_database to these objects - Potentially make them mutable, introduce a state machine, and have dirty checking handled here as well - Move `attribute`, `decorate_attribute`, and anything else that modifies types to mess with this object, not the columns hash - Introduce a collection object to manage these, reduce allocations, and not require serializing the types
* | | | | | Copy edits and code font wrap for Active Record [ci skip]Zachary Scott2014-06-132-30/+30
| | | | | |
* | | | | | Specifically talking about Rake the library [ci skip]Zachary Scott2014-06-131-2/+1
| |/ / / / |/| | | |
* | | | | PG arrays should type cast user inputSean Griffin2014-06-132-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We guarantee that `model.value` does not change after `model.save && model.reload`. This requires type casting user input for non-string types.
* | | | | Merge pull request #15678 from sgrif/sg-test-hashMatthew Draper2014-06-131-0/+7
|\ \ \ \ \ | | | | | | | | | | | | Add a test to ensure we don't get a performance regression on #hash
| * | | | | Add a test to ensure we don't get a performance regression on #hashSean Griffin2014-06-121-0/+7
| | | | | |
* | | | | | Merge pull request #15677 from sgrif/sg-less-imperative-pkMatthew Draper2014-06-131-3/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | Use a conditional rather than early return in `id`
| * | | | | | Use a conditional rather than early return in `id`Sean Griffin2014-06-121-3/+4
| |/ / / / /
* / / / / / Defer to super, rather than re-implementing Object#hashSean Griffin2014-06-121-1/+5
|/ / / / /
* | | | | Merge pull request #15665 from sgrif/sg-id-perfSean Griffin2014-06-122-1/+2
|\ \ \ \ \ | |_|/ / / |/| | | | Fix performance regression on preloading HABTM associations
| * | | | Fix performance regression on preloading HABTM associationsSean Griffin2014-06-122-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'd spend a lot of time calling `hash` and `eql?` on the join model, which has no primary key. Calling `id` with no primary key is a really slow way to get back `nil`, so we can improve the performance there. However, even with the escape clause, we *still* weren't getting high enough performance, as we were checking the primary key too much. `hash` will always return `nil.hash` for records with no id, and `==` will always return `false`. We can optimize those cases in the HABTM join model.
* | | | | Update test data which doesn't reflect expected usageSean Griffin2014-06-122-11/+11
|/ / / / | | | | | | | | | | | | | | | | | | | | Topics call `serialize :content`, which means that the values in the database should be YAML encoded, and we would only expect to receive YAML strings to `update_column` and `update_columns`.