| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit speeds up allocating homogeneous lists of AR objects. We
can know if the result set contains an STI column before initializing
every AR object, so this change pulls the "does this result set contain
an STI column?" test up, then uses a specialized instantiation function.
This way we only have to check for an STI column once rather than N
times.
This change also introduces a new initialization function that is meant
for use when allocating AR objects that come from the database. Doing
this allows us to eliminate one hash allocation per AR instance.
Here is a benchmark:
```ruby
require 'active_record'
require 'benchmark/ips'
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
ActiveRecord::Migration.verbose = false
ActiveRecord::Schema.define do
create_table :users, force: true do |t|
t.string :name
t.timestamps null: false
end
end
class User < ActiveRecord::Base; end
2000.times do
User.create!(name: "Gorby")
end
Benchmark.ips do |x|
x.report("find") do
User.limit(2000).to_a
end
end
```
Results:
Before:
```
[aaron@TC activerecord (master)]$ be ruby -I lib:~/git/allocation_tracer/lib speed.rb
Warming up --------------------------------------
find 5.000 i/100ms
Calculating -------------------------------------
find 56.192 (± 3.6%) i/s - 285.000 in 5.080940s
```
After:
```
[aaron@TC activerecord (homogeneous-allocation)]$ be ruby -I lib:~/git/allocation_tracer/lib speed.rb
Warming up --------------------------------------
find 7.000 i/100ms
Calculating -------------------------------------
find 72.204 (± 2.8%) i/s - 364.000 in 5.044592s
```
|
|\
| |
| | |
Lazily add `Aggregations` to `composed_of` models
|
| |
| |
| |
| |
| |
| |
| |
| | |
`composed_of` is a fairly rare method to call on models. This commit
adds the `Aggregations` module to models that call `composed_of` so that
models that *don't* call `composed_of` don't need to instantiate the
`aggregation_cache` hash. This saves one hash allocation per model
instance that doesn't use `composed_of`
|
|/ |
|
|
|
|
| |
hash condition
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The "join" affix in `table_alias_for` was added 12 years ago at 02d3444
to address poor alias tracking.
`AssociationScope` no longer uses the "join" suffixed alias since
0408e21 and had been removed at a1ec8b5.
`table_alias_for` is the last place that using the useless legacy
suffixed alias, but we can't remove the suffix since some test cases
directly refers the alias name by `where` with string literal, so at
least removing the suffix would break our test cases.
(e.g. https://github.com/rails/rails/blob/b2eb1d1c55a59fee1e6c4cba7030d8ceb524267c/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb#L699-L731).
|
|
|
|
|
|
|
| |
This reverts commit 691addbffad10aa249d5fb1b0e47b46a086e5332.
Reason: v10.5.0 has been released, and it seems that the issue is fixed.
Ref: https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V10.md#10.5.0
|
|\
| |
| |
| |
| | |
bogdanvlviv/change-rails_welcome-image-on-localhost3000
Changes Rails Welcome image on localhost:3000
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Note that I used https://www.base64-image.de/ in order to
convert the image to Base64 with enabled optimization status.
Closes #33181.
Closes #33186.
Follow up #32735.
|
| |
| |
| |
| | |
is specified
|
|\ \
| | |
| | |
| | |
| | | |
Update service.rb
[ci skip]
|
|/ / |
|
| | |
|
|\ \
| | |
| | | |
Update raabro to latest version
|
|/ /
| |
| |
| | |
[v 1.1.6](https://github.com/floraison/raabro/blob/master/CHANGELOG.md#raabro-116--released-2018-06-22) fixes a warning we see on [Rails CI](https://travis-ci.org/rails/rails/jobs/395177524#L3763).
|
| |
| |
| |
| | |
[Jon Moss & Xavier Noria]
|
|\ \
| |/
|/| |
Active Storage: Explicit form field in basic example
|
|/
|
| |
Also fix syntax highlighting in the more advanced JS example.
|
|\
| |
| |
| |
| | |
bogdanvlviv/document-year_format-option-of-date_select
Add to docs mention about `:year_format` option of date select
|
|/
|
|
|
|
| |
Follow up #32190
[ci skip]
|
| |
|
| |
|
|\
| |
| | |
Update fugit to latest version
|
|/
|
|
|
|
|
| |
[fugit 1.1.3](https://github.com/floraison/fugit/commit/03a3ee86f3cd5d929442dd25896b99acbd151947)
fixes warnings that show up in ActiveJob tests.
See [CI](https://travis-ci.org/rails/rails/jobs/394107740#L3764-L3778).
|
|\
| |
| |
| | |
Add `use_year_names` option to date_select tag
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
to customize year
names. Lambda should be passed to use this option. Example:
date_select('user_birthday', '', start_year: 1998, end_year: 2000, year_format: ->year { "Heisei #{year - 1988}" })
The HTML produced:
<select id="user_birthday__1i" name="user_birthday[(1i)]">
<option value="1998">Heisei 10</option>
<option value="1999">Heisei 11</option>
<option value="2000">Heisei 12</option>
</select>
/* The rest is omitted */
|
|\ \
| | |
| | |
| | |
| | | |
Fix actionpack changelog typo
[ci skip]
|
| | |
| | |
| | |
| | | |
I spotted it while working on a PR.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
thomasdziedzic-pd/add-use_authenticated_message_encryption-documentation
add documentation for config.active_support.use_authenticated_message_encryption
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
config.active_support.use_authenticated_message_encryption [ci skip]
related to https://github.com/rails/rails/issues/33170
|
| | |
| | |
| | |
| | | |
Follow up of 15367a2c674bf19eeefa12ccb64391bdd50d883d.
|
| | |
| | |
| | |
| | |
| | | |
Since `aliases` is a part of `JoinDependency` and already cached at
1a723c65bbe91ad969b67416233d20eff6d2a46a.
|
|/ /
| |
| |
| | |
It was no longer used since d7ddaa530fd1b94e22d745cbaf2e8a5a34ee9734.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Convert hashes into parameters
Ensure `ActionController::Parameters#transform_values` and
`ActionController::Parameters#transform_values!` converts hashes into
parameters.
* fixup! Convert hashes into parameters
[Rafael Mendonça França + Kevin Sjöberg]
|
|\ \
| | |
| | | |
Reduce Memory Allocation when using .pluck
|
| | |
| | |
| | |
| | | |
to speed up pluck
|
|\ \ \
| | | |
| | | | |
Removed useless utility classes inside HABTM association builder
|
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, column aliases which is used for eager loading are calculated
before constructing all table aliases in FROM clause.
`JoinDependency#join_constraints` constructs table aliases for `joins`
first, and then always re-constructs table aliases for eager loading.
If both `joins` and eager loading are given a same table association,
the re-construction would cause the discrepancy between column aliases
and table aliases.
To avoid the discrepancy, the column aliases should be calculated after
all table aliases are constructed.
Fixes #30603.
|
|\ \ \
| |/ /
|/| | |
Add support for more HTTP cache controls
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
From <https://tools.ietf.org/html/rfc5861>:
> The stale-if-error HTTP Cache-Control extension allows a cache to
> return a stale response when an error -- e.g., a 500 Internal Server
> Error, a network segment, or DNS failure -- is encountered, rather
> than returning a "hard" error. This improves availability.
>
> The stale-while-revalidate HTTP Cache-Control extension allows a
> cache to immediately return a stale response while it revalidates it
> in the background, thereby hiding latency (both in the network and on
> the server) from clients.
These are useful, fully standardized parts of the HTTP protocol with
widespread support among CDN vendors. Supporting them will make it
easier to utilize reverse proxies and CDNs from Rails.
|
|\ \ \
| | | |
| | | | |
Fix Ruby version in `.ruby-version`
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since #30016 Rails generates `.ruby-version` file
in order to help Ruby version manager tools like `rbenv`, `rvm`
determine which Ruby version should be used for the current Rails
project.
Since #32649 Rails sets Ruby version to the file compatible with MRI/JRuby
by default.
Pull Request #31496 reports that `.ruby-version` doesn't match ruby version other
than stable version and recommends to use `ENV["RBENV_VERSION"]`, and
`ENV["rvm_ruby_string"]` in order to set correct Ruby version to the file
that `rbenv` or `rvm` can understand.
Also, there is another similar issue that reports the same case if use
JRuby https://github.com/jruby/jruby/issues/5144.
Closes #31496, https://github.com/jruby/jruby/issues/5144.
|
|\ \ \ \
| | | | |
| | | | | |
Add test case for the `|` token in Journey scanner
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Journey's scanner tokenizes the `|` (:OR) operator when scanning route
urls such as `"/:foo|*bar"`. However, the current scanner test does not
have any test cases for the `|` operator. This commit adds a test case
for this particular token.
|
|\ \ \ \
| | | | |
| | | | | |
Add docs for ActiveRecord::Migration#say, #say_with_time, #suppress_messages [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | | |
[ci skip]
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`touch` option was added to `increment!` (#27660) and `update_counters`
(#26995). But that option behaves inconsistently with
`Persistence#touch` method.
If `touch` option is passed attribute names, it won't update
update_at/on attributes unlike `Persistence#touch` method.
Due to changed from `Persistence#touch` to `increment!` with `touch`
option, #31405 has a regression that `counter_cache` with `touch` option
which is passed attribute names won't update update_at/on attributes.
I think that the inconsistency is not intended. To get back consistency,
ensure that `touch` option updates update_at/on attributes.
|
|/ / /
| | |
| | |
| | | |
`optparse` is unused since #26977.
|
| | |
| | |
| | |
| | | |
Ref: https://github.com/ruby/ruby/blob/cc77a811298bd7ab1c422f7f999b93c858327da9/lib/net/http/response.rb#L138-L155
|