- 19 1月, 2014 6 次提交
-
-
由 Robin Dupret 提交于
Spring in now under rails/spring [ci skip]
-
由 Rashmi Yadav 提交于
-
由 Andrew White 提交于
spring gem moved to rails/spring
-
由 Washington Luiz 提交于
-
由 Godfrey Chan 提交于
Restore ActiveRecord states after a rollback for models w/o callbacks
-
由 Godfrey Chan 提交于
This fixes a regression (#13744) that was caused by 67d8bb96. In 67d8bb96, we introduced lazy rollback for records, such that the record's internal states and attributes are not restored immediately after a transaction rollback, but deferred until they are first accessed. This optimization is only performed when the model does not have any transactional callbacks (e.g. `after_commit` and `after_create`). Unfortunately, the models used to test the affected codepaths all comes with some sort of transactional callbacks. Therefore this codepath remains largely untested until now and as a result there are a few issues in the implementation that remains hidden until now. First, the `sync_with_transaction_state` (or more accurately, `update_attributes_from_transaction_state`) would perform the synchronization prematurely before a transaction is finalized (i.e. comitted or rolled back). As a result, when the actuall rollback happens, the record will incorrectly assumes that its internal states match the transaction state, and neglect to perform the restore. Second, `update_attributes_from_transaction_state` calls `committed!` in some cases. This in turns checks for the `destroyed?` state which also requires synchronization with the transaction stae, which causes an infnite recurrsion. This fix works by deferring the synchronization until the transaction has been finalized (addressing the first point), and also unrolled the `committed!` and `rolledback!` logic in-place (addressing the second point). It should be noted that the primary purpose of the `committed!` and `rolledback!` methods are to trigger the relevant transactional callbacks. Since this code path is only entered when there are no transactional callbacks on the model, this shouldn't be necessary. By unrolling the method calls, the intention here (to restore the states when necessary) becomes more clear.
-
- 18 1月, 2014 6 次提交
-
-
由 Richard Schneeman 提交于
Correct the version number to 4 in guides[ci skip]
-
由 Charlie Jade 提交于
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
-
由 Aaron Patterson 提交于
-
由 Carlos Antonio da Silva 提交于
-
- 17 1月, 2014 17 次提交
-
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
find_by_* and find_by_*! are not deprecated for example, so lets add a note only where it is needed [ci skip]
-
由 Lauro Caetano 提交于
clean up security guide: his => their [ci skip]
-
由 Rex Feng 提交于
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
Improve ERB dependency detection
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
Just create a local variable whenever we need the record, rather than doing an extra find for every test on the setup method.
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
-
由 Carlos Antonio da Silva 提交于
Update fixture class name deprecation warning to give more information about caller
-
由 T.J. Schuck 提交于
-
由 Aaron Patterson 提交于
sup haters
-
- 16 1月, 2014 11 次提交
-
-
由 Carlos Antonio da Silva 提交于
Make AR::Base#touch fire the after_commit and after_rollback callbacks. Closes #12031.
-
由 Harry Brundage 提交于
-
由 Carlos Antonio da Silva 提交于
Ensure the child can actually be touched. The `Bulb` model has no timestamp column, thus trying to touch it would return `nil`.
-
由 Piotr Sarnacki 提交于
This change breaks tests in activesupport/test/core_ext/module_test.rb: * test_delegation_exception_backtrace * test_delegation_exception_backtrace_with_allow_nil This reverts commit 0167765e.
-
由 Piotr Sarnacki 提交于
The revert is needed because of a regression described in #13369, routes with trailing slash are no longer recognized properly. This reverts commit 50311f13.
-
由 Piotr Sarnacki 提交于
After introducing 50311f13 a regression was introduced: routes with trailing slash are no longer recognized properly. This commit provides a failing test for this situation.
-
由 Yves Senn 提交于
This gets the whole Active Record suite working without calling `self.i_suck_and_my_tests_are_order_dependent!` on `ActiveSupport::TestCase`. Note that the test files themselves still run in order. This means that only order dependencies within a single test file were addressed.
-
由 Yves Senn 提交于
This solves order depndent problems in `base_test.rb`. The leaked column information crashed test cases using the `Weird` class later on: ``` 2) Error: BasicsTest#test_group_weirds_by_from: SyntaxError: /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:387: invalid hex escape ... attribute_before_type_cast("\x{A4CA}\x{A4DE}\x{A4A8}", *arg... ... ^ /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:387: invalid hex escape ...te_before_type_cast("\x{A4CA}\x{A4DE}\x{A4A8}", *args) ... ^ /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:387: invalid hex escape ...e_type_cast("\x{A4CA}\x{A4DE}\x{A4A8}", *args) ... ^ /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:385:in `module_eval' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:385:in `define_proxy_call' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:294:in `block in define_attribute_method' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:285:in `each' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:285:in `define_attribute_method' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:252:in `block in define_attribute_methods' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:252:in `each' /Users/senny/Projects/rails/activemodel/lib/active_model/attribute_methods.rb:252:in `define_attribute_methods' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_methods.rb:72:in `block in define_attribute_methods' /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/2.0.0/mutex_m.rb:73:in `synchronize' /Users/senny/.rbenv/versions/2.0.0-p353/lib/ruby/2.0.0/mutex_m.rb:73:in `mu_synchronize' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_methods.rb:69:in `define_attribute_methods' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_methods.rb:174:in `method_missing' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_assignment.rb:45:in `public_send' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_assignment.rb:45:in `_assign_attribute' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_assignment.rb:26:in `each' /Users/senny/Projects/rails/activerecord/lib/active_record/attribute_assignment.rb:26:in `assign_attributes' /Users/senny/Projects/rails/activerecord/lib/active_record/core.rb:458:in `init_attributes' /Users/senny/Projects/rails/activerecord/lib/active_record/core.rb:191:in `initialize' /Users/senny/Projects/rails/activerecord/lib/active_record/inheritance.rb:30:in `new' /Users/senny/Projects/rails/activerecord/lib/active_record/inheritance.rb:30:in `new' /Users/senny/Projects/rails/activerecord/lib/active_record/persistence.rb:33:in `create' test/cases/base_test.rb:646:in `test_group_weirds_by_from' ```
-
由 Yves Senn 提交于
-
由 Yves Senn 提交于
This makes the tests inside `migration_test.rb` order independent. The assignments to `Reminder.table_name_prefix` and `Reminder.table_name_suffix` previously leaked and had impact on following test cases. This patch isolates the assignments on a throw-away subclass.
-
由 Yves Senn 提交于
This solves order dependent issues where the last test leaked the query cache state. This resulted in the following error: ``` QueryCacheExpiryTest#test_cache_is_expired_by_habtm_delete [test/cases/query_cache_test.rb:275]: not all expectations were satisfied unsatisfied expectations: - expected exactly twice, invoked once: #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x7f93e0c65838>.clear_query_cache(any_parameters) ```
-