diff options
author | claudiob <claudiob@gmail.com> | 2016-02-24 10:51:30 -0800 |
---|---|---|
committer | sinsoku <sinsoku.listy@gmail.com> | 2018-04-04 16:20:16 +0900 |
commit | 398267b14220c6659d6b1f8fdebf36ce7f8d58c9 (patch) | |
tree | 82118424dab2a3d1b85d643afe52e6994d8d722f /activemodel/activemodel.gemspec | |
parent | a07d0680787ced3c04b362fa7a238c918211ac70 (diff) | |
download | rails-398267b14220c6659d6b1f8fdebf36ce7f8d58c9.tar.gz rails-398267b14220c6659d6b1f8fdebf36ce7f8d58c9.tar.bz2 rails-398267b14220c6659d6b1f8fdebf36ce7f8d58c9.zip |
Add #dig to ActionDispatch::Request::Session
### Summary
The `session` object is not a real Hash but responds to many methods of Hash
such as `[]`, `[]`, `fetch`, `has_key?`.
Since Ruby 2.3, Hash also supports a `dig` method.
This commit adds a `dig` method to `ActionDispatch::Request::Session` with the
same behavior as `Hash#dig`.
This is useful if you store a hash in your session, such as:
```ruby
session[:user] = { id: 1, avatar_url: "http://example.org/nyancat.jpg" }
```
Then you can shorten your code from `session[:user][:avatar_url]` to `session.dig :user, :avatar_url`.
### Other Information
I cherry-picked a commit from https://github.com/rails/rails/pull/23864, and modify a bit.
The changes are below:
* Converts only the first key to a string adjust to the `fetch` method.
* Fixes a test case because we cannot use the indifferent access since ee5b621e2f8fde380ea4bc75b0b9d6f98499f511.
Diffstat (limited to 'activemodel/activemodel.gemspec')
0 files changed, 0 insertions, 0 deletions