aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Mark Relation mutators as :nodoc:Jon Leighton2012-11-302-48/+23
| | | | | These are for internal use only and cannot be relied on as part of the public API. See discussion on 8c2c60511beaad05a218e73c4918ab89fb1804f0.
* Revert "Fix annoy warning, when executing testcase."Andrey Deryabin2012-11-302-13/+0
| | | | | | This reverts commit a3024f81228d7b3b446408114a5dc2a86870cd35. REASON: Since warning doesn't exist
* Move instantiation responsibilities from Inheritance to Persistence. Have ↵Jeremy Kemper2012-11-292-24/+50
| | | | Inheritance#discriminate_class_for_record handle STI lookup duties.
* User assert_kind_of, invert assert_equal expectationsCarlos Antonio da Silva2012-11-294-12/+12
|
* Added STI support to init and building associationsJason Rush2012-11-2911-1/+163
| | | | | | | | Allows you to do BaseClass.new(:type => "SubClass") as well as parent.children.build(:type => "SubClass") or parent.build_child to initialize an STI subclass. Ensures that the class name is a valid class and that it is in the ancestors of the super class that the association is expecting.
* Add CHANGELOG entries for the observes extractionRafael Mendonça França2012-11-291-0/+4
| | | | [ci skip]
* Fix typo in the Observers deprecation message. [ci skip]Lucas Mazza2012-11-281-1/+1
|
* Gracefully handle upgrading apps with observersRafael Mendonça França2012-11-281-0/+12
| | | | | | Rather than just raising a NoMethodError when copying the config, this commit adds a warning message until either the rails-observers gem is installed or the relevant config options are removed.
* Remove observers and sweepersRafael Mendonça França2012-11-2811-503/+5
| | | | | | | | They was extracted from a plugin. See https://github.com/rails/rails-observers [Rafael Mendonça França + Steve Klabnik]
* Ensure that associations have a symbol argument.Steve Klabnik2012-11-283-0/+12
| | | | Fixes #7418.
* Fix some indentation in the postgresql_specific_schemaRafael Mendonça França2012-11-281-9/+9
|
* Add comment to a table without model.Rafael Mendonça França2012-11-281-0/+1
| | | | | This table is being used to verify if the :limit options is being ignored for text and binary columns
* Use assert_nil instead of assert_equalRafael Mendonça França2012-11-282-3/+3
|
* Use "refute" instead of "assert !"Carlos Antonio da Silva2012-11-271-6/+5
| | | | Remove FIXME tag from abstract adapter test.
* Remove useless check of AR being defined from teardown fixturesCarlos Antonio da Silva2012-11-271-5/+4
| | | | | | | We are already in the AR namespace, there's no way for it to be undefined. See the cousin commit 13e72db77063f57c3028a906690d42fb068845bb Refactor a bit teardown fixtures to avoid two conditionals.
* Merge pull request #8319 from alindeman/typoCarlos Antonio da Silva2012-11-261-1/+1
|\ | | | | Corrects typo in test name [ci skip]
| * Corrects typo in test nameAndy Lindeman2012-11-261-1/+1
| |
* | Don't run explain on slow queries for database adapters that don't support itBlake Smith2012-11-263-6/+24
|/
* schema cache already has the columns as a hash, so use thatAaron Patterson2012-11-252-2/+12
|
* speed up fixture loading by querying the schema cache for column namesAaron Patterson2012-11-252-2/+11
|
* Don't call will_change! for datetime nil->"".Alisdair McDiarmid2012-11-253-0/+21
| | | | | | | Setting a nil datetime attribute to a blank string should not cause the attribute to be dirty. Fix #8310
* Fix changelog entry about fast_string_to_time fixCarlos Antonio da Silva2012-11-241-2/+2
| | | | | Introduced in 53ca22f2e11cd3050d75385bc31b6bb5055a2738. Thanks @rochefort. [ci skip]
* Move initialize_copy method around to let new method / build alias closerCarlos Antonio da Silva2012-11-241-8/+8
|
* Merge pull request #8291 from senny/8265_build_with_polymorphic_associationRafael Mendonça França2012-11-223-1/+15
|\ | | | | | | | | | | | | prevent mass assignment of polymorphic type when using `build` Conflicts: activerecord/CHANGELOG.md
| * prevent mass assignment of polymorphic type when using `build`Yves Senn2012-11-223-1/+15
| | | | | | | | Closes #8265
* | Remove the #sum method from CollectionAssociationCarlos Antonio da Silva2012-11-211-9/+0
| | | | | | | | | | | | | | Since edd94cee9af1688dd036fc58fd405adb30a5e0da, CollectionProxy delegates all calculation methods - except count - to the scope, which does basically what this method was doing, but since we're delegating from the proxy, the association method was never called.
* | Deprecate Relation#sum with a block.Carlos Antonio da Silva2012-11-215-3/+22
| | | | | | | | | | | | | | To perform a sum calculation over the array of elements, use to_a.sum(&block). Please check the discussion in f9cb645dfcb5cc89f59d2f8b58a019486c828c73 for more context.
* | Revert "Yield only one argument instead of splatting."Carlos Antonio da Silva2012-11-213-37/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f9cb645dfcb5cc89f59d2f8b58a019486c828c73. Conflicts: activerecord/CHANGELOG.md Revert "Allow blocks for count with ActiveRecord::Relation. Document and test that sum allows blocks" This reverts commit 9cc2bf69ce296b7351dc612a8366193390a305f3. Conflicts: activerecord/lib/active_record/relation/calculations.rb
* | Don't allocate new strings in compiled attribute methodsJon Leighton2012-11-213-21/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This improves memory and performance without having to use symbols which present DoS problems. Thanks @headius and @tenderlove for the suggestion. This was originally committed in f1765019ce9b6292f2264b4601dad5daaffe3a89, and then reverted in d3494903719682abc0948bef290af0d3d7b5a440 due to it causing problems in a real application. This second attempt should solve that. Benchmark --------- require 'active_record' require 'benchmark/ips' ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') class Post < ActiveRecord::Base connection.create_table :posts, force: true do |t| t.string :name end end post = Post.create name: 'omg' Benchmark.ips do |r| r.report('Post.new') { Post.new name: 'omg' } r.report('post.name') { post.name } r.report('post.name=') { post.name = 'omg' } r.report('Post.find(1).name') { Post.find(1).name } end Before ------ Calculating ------------------------------------- Post.new 1419 i/100ms post.name 7538 i/100ms post.name= 3024 i/100ms Post.find(1).name 243 i/100ms ------------------------------------------------- Post.new 20637.6 (±12.7%) i/s - 102168 in 5.039578s post.name 1167897.7 (±18.2%) i/s - 5186144 in 4.983077s post.name= 64305.6 (±9.6%) i/s - 317520 in 4.998720s Post.find(1).name 2678.8 (±10.8%) i/s - 13365 in 5.051265s After ----- Calculating ------------------------------------- Post.new 1431 i/100ms post.name 7790 i/100ms post.name= 3181 i/100ms Post.find(1).name 245 i/100ms ------------------------------------------------- Post.new 21308.8 (±12.2%) i/s - 105894 in 5.053879s post.name 1534103.8 (±2.1%) i/s - 7634200 in 4.979405s post.name= 67441.0 (±7.5%) i/s - 337186 in 5.037871s Post.find(1).name 2681.9 (±10.6%) i/s - 13475 in 5.084511s
* | Move migration test together with other join table testsCarlos Antonio da Silva2012-11-212-7/+6
|/
* Merge pull request #7716 from steveklabnik/issue_7715Rafael Mendonça França2012-11-212-1/+8
|\ | | | | Coerce strings in create_join_table.
| * Coerce strings in create_join_table.Steve Klabnik2012-11-212-1/+8
| | | | | | | | | | | | | | If you accidentally pass a string and a symbol, this breaks. So we coerce them both to strings. Fixes #7715
* | TypoChris Patuzzo2012-11-211-1/+1
| |
* | Merge pull request #6245 from bogdan/bc_timestampRafael Mendonça França2012-11-214-3/+24
|\ \ | | | | | | Postgresql adapter: fix handling of BC timestamps
| * | Fix postgresql adapter to handle bc timestamps correctlyBogdan Gusiev2012-11-214-3/+24
| | |
* | | Refactoring, testing and documenting pg_connection.distinctSemyon Perepelitsa2012-11-212-13/+39
|/ /
* | Remove return guard and use code convetionsRafael Mendonça França2012-11-201-7/+11
| |
* | Postgresql doesn't accepts limits on text columns.Victor Costan2012-11-204-0/+35
| |
* | Be a bit less conservative with mysql in adapterCarlos Antonio da Silva2012-11-191-1/+1
| |
* | Remove not needed begin..end from AR#saveCarlos Antonio da Silva2012-11-191-5/+3
| |
* | Initialize accessors to remove some warnings in Ruby 2.0Carlos Antonio da Silva2012-11-192-7/+4
| |
* | Merge pull request #3023 from Tho85/preserve_sti_typeRafael Mendonça França2012-11-183-2/+31
|\ \ | | | | | | | | | | | | | | | | | | AR::Base.becomes should not change the STI type Conflicts: activerecord/CHANGELOG.md
| * | AR::Base.becomes should not change the STI typeThomas Hollstegge2012-11-173-2/+31
| | | | | | | | | | | | If you want to change the STI type too, use AR::Base.becomes! instead
* | | Add rename_index to change_table.Jarek Radosz2012-11-193-0/+23
| | |
* | | Ensure ordering to make the test pass with postgresqlCarlos Antonio da Silva2012-11-181-4/+5
| | |
* | | Add test to ensure preloading works as expected with "select" and "includes".Dieter Komendera2012-11-181-0/+13
| | | | | | | | | | | | This didn't work in rails 3.1. See #2303 for more information and original pull request.
* | | Remove not used require and some useless test commentsCarlos Antonio da Silva2012-11-172-14/+3
| | |
* | | Bump mysql gem version to the newly 2.9.0, fix build.Carlos Antonio da Silva2012-11-171-1/+1
| | |
* | | Fix typo in module name and make #in_time_zone privateCarlos Antonio da Silva2012-11-173-3/+5
| | |
* | | Extract #in_time_zone helper method duplication to a moduleCarlos Antonio da Silva2012-11-173-24/+17
| | |