| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Adding support for these options now allows us to update the
`DateTime#end_of` methods to match the equivalent `Time#end_of`
methods, e.g:
datetime = DateTime.now.end_of_day
datetime.nsec == 999999999 # => true
Fixes #21424.
|
|
|
|
| |
Marshal#load so it can take a proc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the delegation target is nil and the allow_nil option is not
in use, a Module::DelegationError is raised.
class C
delegate :a, to: :b
def b
nil
end
end
C.new.a
# => Module::DelegationError: C#a delegated to b.a, but b is nil
[ci skip]
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The exact inspect output of a BigDecimal is out of scope for what we're trying
to communicate about `dup` and `duplicable?` here.
Adding two examples distracts is disctracting, so keep the docs from before
since our minimal version is Ruby 2.2.2.
[ Koichi ITO, Jon Moss, Kasper Timm Hansen ]
This reverts commit 2163874dedaf83e67599c2930c2686caa165fbad, reversing
changes made to 46fdbc5290335ed38fa9fe2b6b0ef8abe4eccb1b.
|
|
|
|
| |
cf. https://github.com/ruby/bigdecimal/pull/42
|
|
|
|
|
| |
The Numeric extensions like 1.day, 1.month, etc. shouldn't know
how the internals of ActiveSupport::Duration works.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
durations from code
ActiveSupport::Duration.parse('P3Y') == 3.years # It should be true
Duration parsing made independent from any moment of time:
Fixed length in seconds is assigned to each duration part during parsing.
Changed duration of months and years in seconds to more accurate and logical:
1. The value of 365.2425 days in Gregorian year is more accurate
as it accounts for every 400th non-leap year.
2. Month's length is bound to year's duration, which makes
sensible comparisons like `12.months == 1.year` to be `true`
and nonsensical ones like `30.days == 1.month` to be `false`.
Calculations on times and dates with durations shouldn't be affected as
duration's numeric value isn't used in calculations, only parts are used.
Methods on `Numeric` like `2.days` now use these predefined durations
to avoid duplicating of duration constants through the codebase and
eliminate creation of intermediate durations.
|
|
|
|
| |
Actually, private methods cannot be called with `self.`, so it's not just redundant, it's a bad habit in Ruby
|
| |
|
|\
| |
| | |
Clarify that mattr_* creates public methods
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Should have been removed via 8e43fc5ace8039370f233570863b34821a3be46f.
|
|\ \
| | |
| | | |
Refining Array#sum monkey-patch using Refinements
|
| | |
| | |
| | |
| | | |
Because we don't want to see our ugly orig_sum method outside of this file
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ruby 2.4.0 has trouble duplicating certain symbols created from
strings via `to_sym`.
It didn't happen with `'symbol'.to_sym.dup` for some reason, but
works fine with the longer string sample.
Once a newer Ruby version with a fix is released we'll get have
a failing test case we can fix.
Ref: #27532
|
|/ /
| |
| |
| | |
See [this test](https://gist.github.com/utilum/78918f1b64f8b61ee732cb266db7c43a).
|
| |
| |
| |
| |
| |
| |
| | |
`NilClass`, `FalseClass`, `TrueClass`, `Symbol` and `Numeric` can dup
with Ruby 2.4+.
Ref: https://bugs.ruby-lang.org/issues/12979
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This behavior changed in Ruby starting with 2.3.0, as a result of
https://bugs.ruby-lang.org/issues/11360. This results in a change in
behavior of these methods which is likely undesirable.
Fixes #27238
|
|\ \
| | |
| | | |
Remove Active Support deprecations
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
This reverts commit bad3a120f1690f393d8f6204b3ceee60f0ce707b, reversing
changes made to 2384317465ccb1dfca456a2b7798714b99f32711.
Reason: Adding a new option in the API for something that can be done
with a `#presence` check could do.
|
|\ \
| | |
| | | |
Add missing `+` around a some literals.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Mainly around `nil`
[ci skip]
|
|/ / |
|
| |
| |
| |
| |
| |
| | |
- Ruby 2.4 has added Hash#compact and Hash#compact! so we can use it
now.
- Reference: https://bugs.ruby-lang.org/issues/11818 and https://bugs.ruby-lang.org/issues/12863.
|
|\ \
| | |
| | | |
Fix copy_time_to: Copy nsec instead of usec
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`copy_time_to` is a helper function for date and time calculations.
It's being used by `prev_week`, `next_week` and `prev_weekday` to keep
the time fraction when jumping around between days.
Previously the nanoseconds part was lost during the operation. This
lead to problems in practice if you were using the `end_of_day`
calculation. Resulting in the time fraction of `end_of_day` not being
the same as next week's `end_of_day`.
With this fix `copy_time_to` doesn't forget the `nsec` digits.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
This is a follow up to #25681, specifically this comment:
https://github.com/rails/rails/pull/25681#issuecomment-238294002
The way the thread local variable is stored is an implementation detail
and subject to change. It makes no sense to only generate a reader or
writer as you'd have to know where to read from or where it writes to.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The methods Hash#transform_values and Hash#transform_values! have been
implemented in Ruby and they'll be available as part of the standard
library.
Here's the link to the discussion in Ruby's issue tracker:
https://bugs.ruby-lang.org/issues/12512
These methods are implemented in C so they're expected to perform
better.
|
| |
| |
| |
| | |
https://bugs.ruby-lang.org/issues/12739
|