| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| | |
Also fix some wrong formatting.
Related discussion:
https://github.com/rails/rails/commit/ab72040b74f742b6676b2d2a5dd029bfdca25a7a#commitcomment-1525256
|
| |
| |
| |
| | |
little refactor for the same price
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Calculate the seconds since the UNIX epoch using the difference in
Julian day numbers from the epoch date. By reducing the Rational math
to just the offset component this gives a significant improvement.
Benchmark:
Calculating --------------------------------------------
new 27733 i/100ms
current 15031 i/100ms
new 27737 i/100ms
current 15549 i/100ms
--------------------------------------------------------
new 548182.1 (±0.9%) i/s - 2745567 in 5.008943s
current 216380.9 (±1.6%) i/s - 1082232 in 5.002781s
new 510281.9 (±1.2%) i/s - 2551804 in 5.001525s
current 219858.3 (±1.8%) i/s - 1103979 in 5.023039s
|
| |
| |
| |
| |
| |
| |
| | |
There appears to be a bug with DateTime#strftime("%s") on 32-bit platforms.
Bug report: http://bugs.ruby-lang.org/issues/6683
This reverts commit 210cd756a628cc19c0d6e44bee8c33dfb2d9d598.
|
| |
| |
| |
| |
| | |
Use Time.new to create times where the current offset is not zero or
not in the local time zone - closes #4847 and #6651.
|
| |
| |
| |
| |
| | |
Time#at no longer raises an error for large values so we can remove
the rescue clause from ActiveSupport::TimeZone#to_f.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Currently if the offset is not zero then to_time returns self which
can lead to errors where a developer assumes that the value is a
Time. To solve this we can use the native implementation of
DateTime#to_time in Ruby 1.9.3 as it handles offsets properly and
is faster than our override.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The native implementation of the seconds since the UNIX epoch in
strftime is significantly faster than our method.
Benchmark:
----------
require 'benchmark/ips'
require 'date'
require 'time'
date = DateTime.civil(1253,7,6,20,4,0)
Benchmark.ips do |x|
x.report("strftime.to_i") { date.strftime('%s').to_i }
x.report("ssue.to_i") { ((date - DateTime.civil(1970)) * 86400).to_i }
x.report("strftime.to_f") { date.strftime('%s').to_f }
x.report("ssue.to_f") { ((date - DateTime.civil(1970)) * 86400).to_f }
end
Output:
-------
Calculating -------------------------------------
strftime.to_i 26480 i/100ms
ssue.to_i 13818 i/100ms
strftime.to_f 26561 i/100ms
ssue.to_f 14479 i/100ms
-------------------------------------------------
strftime.to_i 616937.3 (±2.4%) i/s - 3098160 in 5.024749s
ssue.to_i 200108.8 (±6.9%) i/s - 994896 in 4.999278s
strftime.to_f 553581.3 (±2.2%) i/s - 2788905 in 5.040397s
ssue.to_f 204260.3 (±4.3%) i/s - 1028009 in 5.043072s
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
activemodel/lib/active_model/errors.rb
|
| | |
| | |
| | |
| | | |
1eecd9483b0439ab4913beea36f0d0e2aa0518c7
|
| | |
| | |
| | |
| | | |
active_support/core_ext/string/inflections.rb [fixes #6884]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduced in 1abe31670fdad2c357b4356b40a4567a46d16693
The test was failing when running on isolation, because the extensions were
not being loaded, thus 1.year.from_now was failing. Just use mktime
instead, adding 1 year to Time.now.
|
| | | |
|
| | |
| | |
| | | |
See https://gist.github.com/3007749 for justification
|
| | |
| | |
| | |
| | |
| | | |
Also simplify I18n logic for Array#to_sentence, doing only one lookup
for all keys and using merge!, instead of one lookup for each option key.
|
| | |
| | |
| | |
| | |
| | | |
Deprecate usage of filter object with #before and #after
methods as around callback
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you selectively require core_exts (e.g., require
'active_support/core_ext/string'), it is possible for
'active_support/core_ext/time/calculations' to be required when
`ActiveSupport::TimeWithZone` is not available. If this happens, the next call
to Time.=== will fail with a NameError.
|
| | |
| | |
| | |
| | |
| | | |
Use a different and very specific locale for testing currency negative
format, and an empty store for currency defaults.
|
| | |
| | |
| | |
| | |
| | | |
They also make more sense here since all the related logic with I18n is
handled by AS::NumberHelper, and not by AV anymore.
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
|\ \ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a follow up to #4719. It appears that singularize and pluralize
are supposed to be idempotent - i.e. when you call singularize or
pluralize multiple times on the same string, you should get the same
result. (At least for the "officially supported" cases that the stock
inflector is designed to handle.) #4719 added the missing tests for
regular cases, and this commit added the missing tests for the
irregularities.
While I'm at that, I also synced up the irregularity test cases with
the current set of irregularity cases that we ship out-of-the-box.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Log listener is a singleton shared across threads, so make sure the
event queues are local to each thread.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
* remote:
move fanout back to a global variable, add a mutex for safety
|
| | | | |
|
| | | | |
|
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Remove extra test case.
|
| | | |
| | | |
| | | |
| | | | |
Make the test description better reflect what is happening
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / / |
|