| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
`ActiveStorage::DiskController#show` generates a 404 Not Found response when
the requested file is missing from the disk service. It previously raised
`Errno::ENOENT`.
|
|
|
|
|
|
|
|
|
| |
`ActiveStorage::Blob#download` and `ActiveStorage::Blob#open` raise
`ActiveStorage::FileNotFoundError` when the corresponding file is missing
from the storage service. Services translate service-specific missing
object exceptions (e.g. `Google::Cloud::NotFoundError` for the GCS service
and `Errno::ENOENT` for the disk service) into
`ActiveStorage::FileNotFoundError`.
|
| |
|
|
|
|
|
|
|
|
| |
Currently, the execution count increments after deserializes arguments.
Therefore, if an error occurs with deserialize, it retries indefinitely.
In order to prevent this, the count is moved before deserialize.
Fixes #33344.
|
|\
| |
| | |
[skip ci] Fix overlapping text in the guide
|
|/
|
|
| |
Fix a layout issue in the rails guides, where the navigation covers the main text,
if the page is between 800 and 960 pixels wide. (issue #33406)
|
| |
|
|\
| |
| |
| |
| |
| | |
ZASMan/update_action_mailer_docs_custom_view_paths
Add note for custom mailer view paths in action mailer guide. [ci skip]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adds stuff
Fixes a typo
Integrates changes
Adds link to append_view_path in actionmailer guide.
|
|\ \
| | |
| | | |
add missing indifferent_access require for #normalize_encode_params
|
|/ /
| |
| |
| | |
Fixes #33634.
|
|\ \
| | |
| | | |
Update image_processing to the latest version
|
|/ /
| |
| |
| |
| |
| | |
Version 1.6.0 includes https://github.com/janko-m/image_processing/commit/3a958bc419854703860fae606423bca3667a4127 which saves us a warning: shadowing outer local variable - options.
I see it locally, but for some reason not on the CI.
|
|\ \
| | |
| | | |
Harmonize shell commands in dev guide [ci skip]
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | | |
SQLite3 adapter `alter_table` method restores foreign keys
|
| | | |
| | | |
| | | |
| | | | |
Related to #33520
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix numericality validator not to be affected by custom getter
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since fe9547b6, numericality validator would parse raw value only when a
value came from user to work type casting to a value from database.
But that was caused a regression that the validator would work against
getter value instead of parsed raw value, a getter is sometimes
customized by people. #33550
There we never guarantees that the value before type cast was going to
the used in this validation (actually here is only place that getter
value might not be used), but we should not change the behavior unless
there is some particular reason.
The purpose of fe9547b6 is to work type casting to a value from
database. We could achieve the purpose by using `read_attribute`,
without using getter value.
Fixes #33550.
|
|\ \ \ \
| | | | |
| | | | | |
Add example `perform_enqueued_jobs` without block to api docs [ci skip]
|
|/ / / /
| | | |
| | | |
| | | | |
Follow up #33626
|
| | | |
| | | |
| | | |
| | | | |
Provide a handy concern for custom Active Storage controllers that can't inherit from ActiveStorage::BaseController.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
future
Follow up #33627.
|
|\ \ \ \
| | | | |
| | | | | |
Fix obsoleted method URI.unescape in activesupport/test
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Allow `perform_enqueued_jobs` to be called without a block.
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Performs all of the jobs that have been enqueued up to this point in the test.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
use BacktraceCleaner for ActiveRecord verbose logging
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Move `dev:cache` rake task to use Rails::Command
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* Call the Rails::Command::DevCommand in the rake task for dev:cache
* Add deprecation for using `bin/rake` in favor of `bin/rails`
|
| | | | | | |
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Changelog and improved tests for purpose metadata added to cookies
|
| |/ / / / |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix rubocop offenses
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Layout/TrailingWhitespace
```
actionpack/lib/action_controller/metal/request_forgery_protection.rb:49:4:
C: Layout/TrailingWhitespace: Trailing whitespace detected.
#
^
```
Related to c3787494eda
- Performance/StartWith
```
tasks/release.rb:108:44: C: Performance/StartWith:
Use String#start_with? instead of a regex match anchored to the beginning of the string.
header += "* No changes.\n\n\n" if current_contents =~ /\A##/
```
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Test `assert_called` and `assert_called_with`
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- ActiveSupport::Testing::MethodCallAssertions#assert_called
- Ensure that the method stubbed by `assert_called` returns correct value after
- ActiveSupport::Testing::MethodCallAssertions#assert_called_with
- Ensure that `#assert_called_with` stubs the method to return a specific value
- Ensure that the method stubbed by `assert_called_with` returns correct value after
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Fix bulk change table ignores comment option on PostgreSQL.
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Follow up #33530
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Move changelog entry of #33530 up in order to preserve the chronology
since we always add new entries on the top of a changelog file.
- Clarify the changelog entry
- Clarify the docs of remove_foreign_key
- Ensure reversible of `remove_foreign_key` with `:primary_key` and `:to_table`
options.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
33515 invert remove foreign key support "to_table"
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
remove_foreign_key supports
- remove_foreign_key :accounts, :branches
- remove_foreign_key :accounts, to_table: :branches
but the second one is not reversible.
This branch is to fix and allow second one to be reversible.
[Nikolay Epifanov, Rich Chen]
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Add `Array#extract!`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Avoid allocating the second array by using `Array#reject!` instead of
`Enumerable#partition` in `Array#extract!`.
There are benchmarks in order to ensure that the changes speed up the method:
```
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update
your Bundler"
raise e
end
class Array
def extract_v1!(&block)
unless block_given?
to_enum(:extract!) { size }
else
extracted_elements, other_elements = partition(&block)
replace(other_elements)
extracted_elements
end
end
def extract_v2!
return to_enum(:extract!) { size } unless block_given?
extracted_elements = []
reject! do |element|
extracted_elements << element if yield(element)
end
extracted_elements
end
end
gemfile(true) do
source "https://rubygems.org"
gem "benchmark-ips"
end
arrays_for_partition = Array.new(1000) { (0..10000).to_a }
arrays_for_extract_v1 = Array.new(1000) { (0..10000).to_a }
arrays_for_extract_v2 = Array.new(1000) { (0..10000).to_a }
Benchmark.ips do |x|
x.report("Array#partition") do
arrays_for_partition.each do |numbers|
odd_numbers, numbers = numbers.partition { |number| number.odd? }
numbers
end
end
x.report("Array#extract_v1!") do
arrays_for_extract_v1.each do |numbers|
odd_numbers = numbers.extract_v1! { |number| number.odd? }
numbers
end
end
x.report("Array#extract_v2!") do
arrays_for_extract_v2.each do |numbers|
odd_numbers = numbers.extract_v2! { |number| number.odd? }
numbers
end
end
x.compare!
end
```
The result of the benchmarks:
```
ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using benchmark-ips 2.7.2
Using bundler 1.16.1
Warming up --------------------------------------
Array#partition 1.000 i/100ms
Array#extract_v1! 1.000 i/100ms
Array#extract_v2! 1.000 i/100ms
Calculating -------------------------------------
Array#partition 1.390 (± 0.0%) i/s - 7.000 in 5.044843s
Array#extract_v1! 2.781 (± 0.0%) i/s - 14.000 in 5.050589s
Array#extract_v2! 3.151 (± 0.0%) i/s - 16.000 in 5.080608s
Comparison:
Array#extract_v2!: 3.2 i/s
Array#extract_v1!: 2.8 i/s - 1.13x slower
Array#partition: 1.4 i/s - 2.27x slower
```
Avoid `unless`/`else` in favour of an early return.
The double-negative of that `else` can be confusing,
even though the code layout is nearly the same.
Also using of early return would improve `git diff`
if we needed to change this method.
|
| | | | | |
|