| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Mirrors the DateTime#sec_fraction method by returning the fraction
of the second as a Rational.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Move `DateTime#getlocal` to `/core_ext/date_time/calculations.rb`
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`DateTime#getlocal` is newly added public API.
It's responsible is same as `DateTime#utc`, so `calculations.rb` is
a best plase to define this method.
For keeping consistency with `DateTime#utc`, defines `#localtime` and
defines `getlocal` as an alias method.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In Ruby 2.4 the `to_time` method for both `DateTime` and `Time` will
preserve the timezone of the receiver when converting to an instance
of `Time`. Since Rails 5.0 will support Ruby 2.2, 2.3 and later we
need to introduce a compatibility layer so that apps that upgrade do
not break. New apps will have a config initializer file that defaults
to match the new Ruby 2.4 behavior going forward.
For information about the changes to Ruby see:
https://bugs.ruby-lang.org/issues/12189
https://bugs.ruby-lang.org/issues/12271
Fixes #24617.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Actionpack documentation typos [ci skip]
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Re. 6e098284e97250eaed6f30f5c7c362d87da986b0
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix test name
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Gracefully fallback on version migrations for sqlite < 3.7.11
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
78 changed INSERT INTO versions to run in 1 single query.
This breaks for sqlite versions < 3.7.11, which is especially the case on Ubuntu 12.04 LTS, that has SQLite version 3.7.9 as default.
So we check for support for multi insert, before performing single query inserts, else fallback to older version of running multiple queries.
[Vipul A M & Yasuo Honda]
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When the query cache completes, if Active Record is still inside of a
transaction, it is because the transaction is meant to be left open
above this unit of work (such as transactional fixtures in tests). There
were several tests around the behavior of "tests" that were invalid, as
tests are not run through the executor. They have been changed to
reflect the new behavior, which is closer to what actually occurs in
Rails tests.
Fixes #23989
Fixes #24491
Close #24500
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Slight refactor to improve boot performance on some Ruby
implementations (for now).
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
Fix broken links in 'Ruby on Rails 3.0 Release Notes' [ci skip]
|
|/ / / / / |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Change definition of what async means for an Active Job Job [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
definition.
- [ci skip] Active Job Async doesn't support to Async feature as per it's definition.
- [ci skip] Active Job Async doesn't support to Async feature as per it's definition.
- [ci skip] Active Job Async doesn't support to Async feature as per it's definition.
- [ci skip] Active Job Async doesn't support to Async feature as per it's definition.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Combine inequality and equality and add SQL examples [ci skip]
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Actioncable and Actionpack documentation typos [ci skip]
|
| | |/ / /
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Further investigation seems to disprove that backtracking is the
reason why the positive variant is slower, see
https://github.com/rails/rails/pull/24658#issuecomment-213079710
so, just say nothing about it, only assert it is slower.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
using rails dev:cache instead of rake dev:cache
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Log if redis connection is in stale/failed state.
|
| | | | | | |
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Without the `wdm` gem, it appears that `listen` keeps an open handle to
each of these files, causing them not to be removed when the tempdir
tries to clean iteslf up, and then directory to fail to unlink. In
addition to fixing that particular failure, we now construct OS agnostic
paths, and capture exceptions if the directory fails to unlink so that
minitest will report it rather than crash
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix ApplicationController.renderer.defaults.merge!
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, users were trying to modify a frozen Hash. Includes a
regression test :)
Fixes #22975
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Minor space bump.
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | |
| | | | | |
| | | | | | |
y-yagi/use_wrapper_file_to_add_rake_task_for_engines
use wrapper file to add rake task for engines
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`bundler` provides wrapper file to add rask tasks.
https://github.com/bundler/bundler/blob/master/lib/bundler/gem_tasks.rb
Instead of directly call method, by which require this file,
it can be used without updating of Rakefile if task has been added.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When you come here without context, it is important to hightlight that
checking the predicate is worthwhile due to the observation that blank
strings are often empty. So you complicate the code (which has a cost
in terms of readability and aesthetics), but statistically makes sense.
Then, you also need to explain why the second operand is so convoluted.
Otherwise, you wonder why this line is written precisely this way. That
is what code comments are for.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Remove unused `BLANK_RE`
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | | |
Follow up to #24658.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add #18323 to 5.0 release notes
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixes #23643.
[ci skip]
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Update delegate to use newer Ruby syntax
|
| | | | | | |
| | | | | | |
| | | | | | | |
This commit updates `delegate` to use the keyword argument syntax added in Ruby 2. I left the `ArgumentError` when `to` is missing, because it better explains how to correctly use `delegate`. We could instead rely on the default `ArgumentError` that would be raised if `to` were a required keyword argument.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Revert "add doc for `:type` option of `#create_join_table` [ci skip]"
|
|/ / / / / / / |
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
add doc for `:type` option of `#create_join_table` [ci skip]
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | | |
Follow up to #24221.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Fix small typos [ci skip]
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Speed up String#blank? Regex
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Follow up on https://github.com/rails/rails/commit/697384df36a939e565b7c08725017d49dc83fe40#commitcomment-17184696.
The regex to detect a blank string `/\A[[:space:]]*\z/` will loop through every character in the string to ensure that all of them are a `:space:` type. We can invert this logic and instead look for any non-`:space:` characters. When that happens, we would return on the first character found and the regex engine does not need to keep looking.
Thanks @nellshamrell for the regex talk at LSRC.
By defining a "blank" string as any string that does not have a non-whitespace character (yes, double negative) we can get a substantial speed bump.
Also an inline regex is (barely) faster than a regex in a constant, since it skips the constant lookup. A regex literal is frozen by default.
```ruby
require 'benchmark/ips'
def string_generate
str = " abcdefghijklmnopqrstuvwxyz\t".freeze
str[rand(0..(str.length - 1))] * rand(0..23)
end
strings = 100.times.map { string_generate }
ALL_WHITESPACE_STAR = /\A[[:space:]]*\z/
Benchmark.ips do |x|
x.report('current regex ') { strings.each {|str| str.empty? || ALL_WHITESPACE_STAR === str } }
x.report('+ instead of * ') { strings.each {|str| str.empty? || /\A[[:space:]]+\z/ === str } }
x.report('not a non-whitespace char') { strings.each {|str| str.empty? || !(/[[:^space:]]/ === str) } }
x.compare!
end
# Warming up --------------------------------------
# current regex
# 1.744k i/100ms
# not a non-whitespace char
# 2.264k i/100ms
# Calculating -------------------------------------
# current regex
# 18.078k (± 8.9%) i/s - 90.688k
# not a non-whitespace char
# 23.580k (± 7.1%) i/s - 117.728k
# Comparison:
# not a non-whitespace char: 23580.3 i/s
# current regex : 18078.2 i/s - 1.30x slower
```
This makes the method roughly 30% faster `(23.580 - 18.078)/18.078 * 100`.
cc/ @fxn
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
create_join_table should work with uuid
|