| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Support migrating from Hash to HashWithIndifferentAccess for accessing attributes.
|
| |
| |
| |
| |
| |
| |
| | |
In order to make migration from 3.x apps easier, we should try to
convert
Hash instances to HashWithIndifferentAccess, to allow accessing values
with both symbol and a string. This is follow up to changes in 3c0bf043.
|
|\ \
| | |
| | | |
refactor lazy_load_hooks load position, fix #6435
|
| | | |
|
|\ \ \
| | | |
| | | | |
Use new hash syntax for generators gem method
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
The Gemfile of new application uses ruby 1.9 hashes. Gem method of
generators should use them too. It prevents from mixing two kinds of
syntax in one file.
|
|\| |
| | |
| | | |
remove useless require
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| | |
Using require in development mode will prevent required files from
reloading, even if they're changed. In order to keep namespaced
application_controller reloadable, we need to use require_dependency
instead of require.
|
|\ \
| | |
| | | |
Rails db console improvements
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ruby tries to use '-h' as short version of '--header' by default
https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb#L1372-1381.
To force `rails db -h` prints an usage message we should add the `-h`
options explicitly.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rails uses sqlit3 db file with a path relative to the rails root. It
allows to execute server not from rails root only. For example you
can fire `./spec/dummy/script/rails s` to start dummy application
server if you develop some engine gem.
Now the `rails db` command uses relative paths also and you can explore
your dummy db via `./spec/dummy/script/rails db` command.
|
|\ \
| | |
| | |
| | |
| | | |
chancancode/master_restore_frozen_state_on_rollback
Restore frozen state on rollback, fixes #6417
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, when saving a frozen record, an exception would be thrown
which causes a rollback. However, there is a bug in active record that
"defrost" the record as a side effect:
>> t = Topic.new
=> #<Topic id: nil, ...>
>> t.freeze
=> #<Topic id: nil, ...>
>> t.save
RuntimeError: can't modify a frozen Hash
>> t.frozen?
=> false
>> t.save
=> true
This patch fixes the bug by explictly restoring the frozen state on the
attributes Hash after every rollback.
|
|\ \ \
| | | |
| | | | |
#read_entry in ActiveSupport::Cache::FileStore should log details of the exception when an exception is thrown
|
| | | |
| | | |
| | | |
| | | | |
exception when an exception is thrown.
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix bug when Rails.application is defined but is nil. See #881
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
These variables were issuing some "not used" warnings.
|
| | | |
| | | |
| | | |
| | | | |
Only constantize class_name once.
|
|\ \ \ \
| |/ / /
|/| | | |
Add instance_accessor option to class_attribute
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | | |
This reverts commit 254c04286c5916ae7f91eb6e173b312e7a74e364, reversing
changes made to 513a0525c24c2944630acfa465b22cd2f4601adf.
|
|\ \ \
| | | |
| | | | |
Resolver concurrency fix
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In order to avoid holding a global lock when doing template
resolution, instead add individual locks on a per cache entry
basis. The global lock is now only used for manipulation of the main
cache data structure.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The Template cache in the Resolver can be accessed by multiple threads
similtaneously in multi-threaded environments. The cache is implemented
using a Hash, which isn't threadsafe in all VMs (notably JRuby).
This commit extracts the cache to a new Cache class and adds mutexes to
prevent concurrent access.
|
|\ \ \ \
| | | | |
| | | | | |
When a route references a missing controller, raise ActionController::RoutingError with clearer message
|
| | | | |
| | | | |
| | | | |
| | | | | |
ActionController::RoutingError with a clearer message
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Make connection pool fair with respect to waiting threads.
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
allow the :converter Proc form composed_of to return nil
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This makes it possible to filter invalid input values before they are passed
into the value-object (like empty strings). This behaviour is only relevant
if the :allow_nil options is set to true. Otherwise you will get
the resulting NoMethodError.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Refactoring: just turn unless/else into if/else
|
|/ / / / / / / |
|
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add more info on how to write a good commit messages along with
example showing nicely formatted commit message.
Rails git history does not look too well when you try to figure out why
particular changes were introduced. We can do much better than that and
it's never too late to start.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In development mode, dependencies are loaded dynamically at runtime,
using `const_missing`. Because of that, when one of the constants is
already loaded and `const_missing` is not triggered, user can end up
with unexpected results.
Given such file in an Engine:
```ruby
module Blog
class PostsController < ApplicationController
end
end
```
If you load it first, before loading any application files, it will
correctly load `Blog::ApplicationController`, because second line will
hit `const_missing`. However if you load `ApplicationController` first,
the constant will be loaded already, `const_missing` hook will not be
fired and in result `PostsController` will inherit from
`ApplicationController` instead of `Blog::ApplicationController`.
Since it can't be fixed in `AS::Dependencies`, the easiest fix is to
just explicitly load application controller.
closes #6413
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Template concurrency fixes
Conflicts:
actionpack/lib/action_view/template.rb
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Action Pack in the upgrading guide. [ci skip]
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fixed typo in AR test name
|
|/ / / / / / |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit cae1ca7d1be9c79c7ef012a1f62aef9d3bb815f8, reversing
changes made to da97cf016a8ffd1f54f804cd881f393e5d6efc18.
These changes break the build, it needs more investigation.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Although no recognized formats use non-ASCII characters, sometimes they
can be included in the :format parameter because of invalid URLS. To
prevent encoding incompatibility errors we need to escape them before
passing the path to URI.unescape.
Closes #4379
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Passing path parameters with invalid encoding is likely to trigger errors
further on like `ArgumentError (invalid byte sequence in UTF-8)`. This will
result in a 500 error whereas the better error to return is a 400 error which
allows exception notification libraries to filter it out if they wish.
Closes #4450
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently Rack raises a TypeError when it encounters a malformed or
ambiguous hash like `foo[]=bar&foo[4]=bar`. Rather than pass this
through to the application this commit captures the exception and
re-raises it using a new ActionController::BadRequest exception.
The new ActionController::BadRequest exception returns a 400 error
instead of the 500 error that would've been returned by the original
TypeError. This allows exception notification libraries to ignore
these errors if so desired.
Closes #3051
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Raise Assertion instead of RoutingError for routing assertion failures.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Before this change, assert_recognizes, assert_generates, and
assert_routing raised ActionController::RoutingError when they failed to
recognize the route.
This commit changes them to raise Assertion instead. This aligns with
convention for logical failures, and supports reporting tools that care
about the difference between logical failures and errors e.g. the
summary at the end of a test run.
- Fixes #5899
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Show in log correct wrapped keys
|