| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Save a hash allocation in MySQL statement pool
|
| |
| |
| |
| | |
There's no need to wrap the statement in a hash with a single key.
|
| |
| |
| |
| | |
Ensure that other processes like ImageMagick and FFmpeg see the complete contents of the file.
|
|\ \
| |/
|/| |
Use ImageProcessing gem for ActiveStorage variants
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This is not true anymore, the image will be downloaded into a temporary
file in a streaming fashion.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ImageProcessing gem is a wrapper around MiniMagick and ruby-vips, and
implements an interface for common image resizing and processing. This
is the canonical image processing gem recommended in [Shrine], and
that's where it developed from. The initial implementation was extracted
from Refile, which also implements on-the-fly transformations.
Some features that ImageProcessing gem adds on top of MiniMagick:
* resizing macros
- #resize_to_limit
- #resize_to_fit
- #resize_to_fill
- #resize_and_pad
* automatic orientation
* automatic thumbnail sharpening
* avoids the complex and inefficient MiniMagick::Image class
* will use "magick" instead of "convert" on ImageMagick 7
However, the biggest feature of the ImageProcessing gem is that it has
an alternative implementation that uses libvips. Libvips is an
alternative to ImageMagick that can process images very rapidly (we've
seen up 10x faster than ImageMagick).
What's great is that the ImageProcessing gem provides the same interface
for both implementations. The macros are named the same, and the libvips
implementation does auto orientation and thumbnail sharpening as well;
only the operations/options specific to ImageMagick/libvips differ. The
integration provided by this PR should work for both implementations.
The plan is to introduce the ImageProcessing backend in Rails 6.0 as the
default backend and deprecate the MiniMagick backend, then in Rails 6.1
remove the MiniMagick backend.
|
|\ \
| | |
| | | |
Halve memory allocation in S3Service#download
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Aws::S3::Object#get returns a response with object content wrapped in an
in-memory StringIO object. StringIO#read will return a copy of the
content, which is not necessary because we can return the content
directly using StringIO#string. This halves memory allocation of
S3Service#download, because we remove unnecessary content duplication.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Remove key from session by using session.delete
You are not deleting a key from session when you assign nil to that key.
* Update guides on how to destroy a user session
In this commit, the user id is removed from session and controller's variables related to the user are nullified.
[Rafael Mendonça França + Rafael Barbolo]
|
|\ \
| | |
| | | |
Update rails-ujs readme
|
| | |
| | |
| | | |
Add a note on using `yarn autoclean`.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since other views use the `h2` tag, should also use `h2` on
`missing_exact_template.html.erb`.
https://github.com/rails/rails/blob/76acaf6eb9ef3635e4c6f2ca9dba34edb50f541d/actionpack/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb#L5
https://github.com/rails/rails/blob/76acaf6eb9ef3635e4c6f2ca9dba34edb50f541d/actionpack/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb#L11
https://github.com/rails/rails/blob/76acaf6eb9ef3635e4c6f2ca9dba34edb50f541d/actionpack/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb#L5
|
|\ \ \
| | | |
| | | | |
Update results of command in Testing guides [ci skip]
|
| | | |
| | | |
| | | |
| | | |
| | | | |
* Results of command in testing guides are different from actual ones.
* Updated them.
|
|\ \ \ \
| | | | |
| | | | | |
Refactor guides javascripts
|
|/ / / /
| | | |
| | | |
| | | |
| | | | |
* Remove `$` prefix from all variables (`$` prefix means jQuery object)
* Old browsers doesn't support forEach. So use for instead of forEach.
|
|\ \ \ \
| | | | |
| | | | | |
:scissors: jQuery for Rails Guides
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Rewrite with Vanilla JS
* Confirmed with Chrome, Safari, Firefox
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Fix indentation manually
|
| | | | |
| | | | |
| | | | |
| | | | | |
Rubocop auto-correct doesn't work well, so I fixed indentation manually.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Gracefully handle extra "controller" when generating controller
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In the previous code incorrectly removes intermediate words.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Rubocop 0.54
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fix `.rubocop.yml: Lint/EndAlignment has the wrong namespace - should be Layout` warning
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix duplicated suffix for JobGenerator
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| |_|_|_|/ / / /
|/| | | | | | | |
Add test case to ChannelGeneratorTest
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | | |
* Add a test case to ensure avoid duplicated suffix in channel generator
|
|/ / / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Reset RAW_POST_DATA between test requests
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`RAW_POST_DATA` is derived from the `rack.input` header, which changes
with each test request. It needs to be cleared in `scrub_env!`, or all
requests within the same test will see the value from the first request.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Follow up of #32514.
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | |
| | | | | |
| | | | | | |
samdec/multiple-has-one-through-associations-build-bug
Fix .new with multiple through associations
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This fixes a bug with building an object that has multiple
`has_many :through` associations through the same object.
Previously, when building the object via .new, the intermediate
object would be created instead of just being built.
Here's an example:
Given a GameBoard, that has_one Owner and Collection through Game.
The following line would cause a game object to be created in the
database.
GameBoard.new(owner: some_owner, collection: some_collection)
Whereas, if passing only one of those associations into `.new` would
cause the Game object to be built and not created in the database.
Now the above code will only build the Game object, and not save it.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
So `target.is_a?(Array)` is meaningless, and just use `target.empty?`
instead of `target.blank?`.
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Relax assertions in connection config tests
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
At the moment these two ActiveRecord tests pass with `rake test:sqlite3`,
but fail with `ARCONN=sqlite3 bin/test`.
`Rails.root` is defined when running `bin/test`, but not when running
the rake task. When `Rails.root` is defined, `config[:database]` will
look something like `vagrant/rails/activerecord/db/primary.sqlite3`
instead of just `db/primary.sqlite3`.
(See https://github.com/rails/rails/blob/00caf95e14b90782ab17fbd6d2b930844df99980/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L27)
Relaxing `assert_equal` to `assert_match` will allow these tests to pass
regardless of how they are run.
I do have a question why we need both ways to run tests. I have been
using `bin/test` lately, but I see from #32426 that this is not the preferred
method.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
robotdana/preload-through-polymorphic-associations
Preloading through polymorphic associations (still raises for typos on regular associations)
|