| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When working with objects with a nanosecond component, the `-` method may
unnecessarily cause loss of precision.
`ActiveSupport::TimeWithZone#-` should return the same result as if we were
using `Time#-`:
Time.now.end_of_day - Time.now.beginning_of_day #=> 86399.999999999
Before:
Time.zone.now.end_of_day.nsec #=> 999999999
Time.zone.now.end_of_day - Time.zone.now.beginning_of_day #=> 86400.0
After:
Time.zone.now.end_of_day - Time.zone.now.beginning_of_day
#=> 86399.999999999
|
| | |
|
|\ \
| | |
| | | |
Test `except!` in other cases too
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
before this change, we were allocating AS::SafeBuffer objects that were
being interpolated in to a string, so the safe buffer object was being
thrown away. This change only allocates a string (vs a string *and* a
safebuffer) and interpolates the string.
On my test application, this reduced the AS::SafeBuffer objects from
1527k per request to about 500 per request.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
html_escape_interpolated_argument is only used in mutation methods:
https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L174
https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L179
The return value doesn't need to be converted to an AS::SafeBuffer since
we know that the current object is an AS::SafeBuffer and will be
mutated, and the return value from html_escape_interpolated_argument
will be thrown away
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix AS::NumberHelper results with rationals
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
:precision was incorrectly being applied to Rationals
before:
ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2
=> "3.3"
after:
ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2
=> "3.33"
|
|\ \ \
| | | |
| | | | |
Improvements to ActiveSupport::Notifications.
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
the issue tracker. See also #15455 [ci skip]
|
|/ / |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
The phrase "exact copy" in the existing docmentation is somewhat
misleading.
|
|\ \
| | |
| | |
| | |
| | | |
andreychernih/time-with-zone-string-conversion-speed-up
Speed-up TimeWithZone to String conversion
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I've noticed that `String(model.created_at)` is performing poorly in comparision
with other fields. The source of the problem is a way `Kernel#String` works: it first
tries to call `to_str` (which causes `NoMethodError` in `method_missing`) and then calls `to_s`.
Performance tests:
tz = Time.zone.now
Benchmark.ips do |x|
x.report { String(tz) }
end
Without this code:
Calculating -------------------------------------
572 i/100ms
-------------------------------------------------
10177.7 (±18.2%) i/s - 48620 in 5.000325s
With this code:
Calculating -------------------------------------
1518 i/100ms
-------------------------------------------------
138984.2 (±10.1%) i/s - 677028 in 4.974897s
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replacements:
5.ago => 5.seconds.ago
5.until => 5.seconds.until
5.since => 5.seconds.since
5.from_now => 5.seconds.from_now
The removed tests does not affect coverage – we have equivalent test cases in
the tests for `AS::Duration`.
See #12389 for the history and rationale behind this.
|
|\ \
| | |
| | |
| | | |
Added partial days support to `DateTime`'s `advance` method.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
You can now add partial days (e.g. 2.5.days) to `DateTime` with the advance method.
This was acheived by mimicing the `advance` implementation in `Time`.
|
| | |
| | |
| | |
| | | |
Railties need to be used without having to require any dependecy first.
|
| | |
| | |
| | |
| | |
| | | |
Let users require `active_support` before loading any ActiveSupport modules
http://guides.rubyonrails.org/active_support_core_extensions.html
|
|\ \ \
| |_|/
|/| |
| | | |
Fix test cases for inflector.rb
|
|/ /
| |
| |
| |
| |
| | |
`yield` was missing in #with_dup, due to which 57 assertions were not running
in real, and all tests were passing by default.
Error was introduced in commit - 31ceb5e.
|
|\ \
| | |
| | | |
Remove unnecessary require of Minitest.
|
| | |
| | |
| | |
| | | |
Minitest has already been required when calling Minitest.autorun.
|
|\ \ \
| | | |
| | | | |
[ci skip] Improve doc for ModuleConstMissing.guess_for_anonymous
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Array#to now accept negative position also.
|
| |/ / /
| | | |
| | | |
| | | | |
`Array#to` is working for negative position
|
|\ \ \ \
| | | | |
| | | | | |
add test cases for negative position in Array#from
|
| | |/ /
| |/| | |
|
| |/ /
|/| | |
|
|/ /
| |
| |
| |
| |
| |
| | |
We need to test if the same method defined more than once only register
one subscriber for it. We can safelly remove because the method body is
the same and Subscriber use method_added hook for register the
subscriber.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Hash#deep_*_keys(!) recurse into nested arrays.
Conflicts:
activesupport/CHANGELOG.md
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Following methods now recursively transform nested arrays, too.
* Hash#deep_transform_keys
* Hash#deep_transform_keys!
* Hash#deep_stringify_keys
* Hash#deep_stringify_keys!
* Hash#deep_symbolize_keys
* Hash#deep_symbolize_keys!
|
| | | |
|
| | |
| | |
| | |
| | | |
Just moved class methods up in file and moved `def self.` methods into `class << self`.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
roccoblues/fix_duplicate_activesupport_subscribers
Fixed duplicate subscribers in ActiveSupport::Subscriber
Conflicts:
activesupport/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | |
| | | | |
ActiveSupport::Subscriber no longer creates multiple subscribers when
you redefine a method.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This deprecation was released in 4.1.0 and can be removed for 4.2.0,
deprecation message / handling is no longer necessary.
|
|\ \ \ \
| | | | |
| | | | | |
[Fixes #15064] Calling number_to_delimited on a ActiveSupport::SafeBuffer results in mangled output
|
| | | | |
| | | | |
| | | | |
| | | | | |
rather than use non-public SafeBuffer API.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`ActiveSupport::SafeBuffer` values aren't mangled.
Fixes #15064
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Update and add tests in array_ext_test.rb
|