| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
This file uses Time.zone, which is defined in
active_support/core_ext/time/zones.rb.
|
|/
|
|
|
|
| |
This way you can `require 'active_record/core_ext/time'` for example
I see these libs are available through `active_record/time` but not
individually
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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
|
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| | |
Ruby2.0 already has LoadError#path.
|
| | |
|
|/
|
|
| |
Module#methods are Symbols in Ruby >= 1.9
|
|\ |
|
| | |
|
| |
| |
| |
| | |
skip]
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For future reference, this is the regex I used: ^\s*#\s*\n(?!\s*#). Replace
with the first match, and voilà! Note that the regex matches a little bit too
much, so you probably want to `git add -i .` and go through every single diff
to check if it actually should be changed.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some of these requires are now only necessary in
ActiveSupport::NumberHelper. Add hash/keys require due to symbolize_keys
usage in number helpers. Also remove some whitespaces.
Closes #6414
|
| | |
| | |
| | |
| | |
| | | |
AS::Multibyte are no longer required by access and filters string
core extensions.
|
| |/
|/| |
|
|\ \ |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Unnecessary peace of text was injected at
507da04a149b44e20c5a0ba72a218fe1762b6baf by mistake.
|
| | |
| | |
| | |
| | |
| | | |
Examples should be not square to visually underline a difference between
Array#in_groups and Array#in_groups_of.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At 1bd4d1c67459a91415ee73a8f55d2309c0d62a87 was added Range#sum
optimized version for arithmetic progressions. This improvment injected
a defect with not integer range boundaries. The defect was fixed by
e0adfa82c05f9c975005f102b4bcaebfcd17d241. The second commit really
disabled optimization at all because in Ruby integer-valued numbers are
instances of Fixnum and Bignum classes. We should #use is_a?
(#kind_of?) method instead #instance_of? to check if value is numerical:
1.class # => Fixnum
1.instance_of?(Integer) # => false
1.is_a?(Integer) # => true
-100_000_000_000.class # => Bignum
-100_000_000_000.instance_of?(Integer) # => false
-100_000_000_000.is_a?(Integer) # => true
Moreover original implementation of Range#sum has a defect with reverse
range boundaries. If the first boundary is less than the second range is
empty. Current commit fixes and tests this case too.
|
| | | |
|
|/ /
| |
| |
| | |
deep_*_keys to use deep_transform_keys.
|
| |
| |
| |
| | |
for nested hashes
|