| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
These two tests are explicitly testing that to_time is returning times
with the sytem timezone's UTC offset, therefore they will fail when
running them with `ActiveSupport.to_time_preserves_timezone = true`.
|
|
|
|
|
|
|
|
|
| |
The to_yaml method is undefined when running the test as:
$ ruby -I lib:test test/core_ext/string_ext_test.rb
Doesn't fail when running rake test:isolated presumably because
something else has required 'yaml' already.
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
|
|
|
|
| |
This is just to remove astonishment from getting `3600 seconds` from typing `1.hour`.
|
|
|
|
|
|
| |
Regression: adding minutes/hours to a time would change its time zone
This reverts commit 1bf9fe75a6473cb7501cae544cab772713e68cef.
|
|
|
|
|
|
|
|
|
| |
Calculating -------------------------------------
before 40.770k i/100ms
after 58.464k i/100ms
-------------------------------------------------
before 629.568k (± 5.0%) i/s - 3.180M
after 1.159M (± 4.5%) i/s - 5.788M
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously these methods could return either a DateTime or a Time
depending on how the ActiveSupport::TimeWithZone instance had
been constructed. Changing to always return an instance of Time
eliminates a possible stack level too deep error in to_time where
it was wrapping a DateTime instance.
As a consequence of this the internal time value is now always an
instance of Time in the UTC timezone, whether that's as the UTC
time directly or a representation of the local time in the timezone.
There should be no consequences of this internal change and if
there are it's a bug due to leaky abstractions.
|
|
|
|
|
| |
Mirrors the Time#subsec method by returning the fraction
of the second as a Rational.
|
|
|
|
| |
Time instances can have fractional parts smaller than a nanosecond.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
Raise `ArgumentError` when an invalid form is passed to `Date#to_time`
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before this commit
`NoMethodError: undefined method `form_name' for Time:Class` is raised
when an invalid argument is passed.
It is better to raise `ArgumentError` and show list of valid arguments
to developers.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ruby 2.4 introduces `Array#sum`, but it only supports numeric elements,
breaking our `Enumerable#sum` which supports arbitrary `Object#+`.
To fix, override `Array#sum` with our compatible implementation.
Native Ruby 2.4:
%w[ a b ].sum
# => TypeError: String can't be coerced into Fixnum
With `Enumerable#sum` shim:
%w[ a b ].sum
# => 'ab'
We tried shimming the fast path and falling back to the compatible path
if it fails, but that ends up slower even in simple causes due to the cost
of exception handling. Our only choice is to override the native `Array#sum`
with our `Enumerable#sum`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
```ruby
ActiveSupport::Duration.parse('P3Y6M4DT12H30M5S')
(3.years + 3.days).iso8601
```
Inspired by Arnau Siches' [ISO8601 gem](https://github.com/arnau/ISO8601/)
and rewritten by Andrey Novikov with suggestions from Andrew White. Test
data from the ISO8601 gem redistributed under MIT license.
(Will be used to support the PostgreSQL interval data type.)
|
| |
| |
| |
| | |
This is just to remove astonishment from getting `3600 seconds` from typing `1.hour`.
|
|/ |
|
|\
| |
| |
| |
| | |
mtsmfm/fix-marshal-with-autoloading-for-nested-class
Fix marshal with autoloading for nested class/module
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
#24150 break autoloading for nested class/module.
There is test for nested class but it doesn't work correctly.
Following code will autoload `ClassFolder::ClassFolderSubclass` before `Marshal.load`:
`assert_kind_of ClassFolder::ClassFolderSubclass, Marshal.load(dumped)`
|
| |
| |
| |
| |
| |
| |
| |
| | |
Previously `String#to_time` returned the midnight of the current date
in some cases where there was no relavant information in the string.
Now the method returns `nil` instead in those cases.
Fixes #22958.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The native DateTime#<=> implementation can be used to compare instances
with numeric values being considered as astronomical julian day numbers
so we should call that instead of returning nil.
Fixes #24228.
|
| | |
|
|\ \
| |/
|/|
| | |
Add upcase_first method
|
| | |
|
|\ \
| | |
| | | |
Prevent `Marshal.load` from looping infinitely
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix a bug in `Marshal.load` that caused it to loop indefinitely when
trying to autoload a constant that resolved to a different name.
This could occur when marshalling an ActiveRecord 4.0 object (e.g. into
memcached) and then trying to unmarshal it with Rails 4.2. The
marshalled payload contains a reference to
`ActiveRecord::ConnectionAdapters::Mysql2Adapter::Column`, which in
Rails 4.2 resolves to
`ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::Column`.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The current implentation of `thread_mattr_accessor` is setting
differently-named thread variables when defining class and
instance writer methods, so the method isn't working as documented:
Account.user = "DHH"
Account.user # => "DHH"
Account.new.user # => nil
a = Account.new
a.user = "ABC" # => "ABC"
a.class.user # => "DHH"
At this point `:attr_Account_user` and `:attr_Class_user` thread-local
variables have been created. Modify the reader and writer methods to use
the class name instead of 'Class'.
|
| | |
|
|/
|
|
|
| |
After Ruby 1.9, we can easily get the constants that have been
defined locally by `Module.constants(false)`.
|
| |
|
|
|
|
| |
Fixing failing specification for verifying the last week when the year is leap
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Add test coverage for ActiveSupport::NumericWithFormat#to_formatted_s
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
class and module variables that live per-thread
|
| |
|
| |
|
|\
| |
| | |
Parameterize with options to preserve the case of string
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added test cases
Using kwargs instead of three seperate functions
Updated parameterize in transliterate.rb
Updated parameterize in transliterate.rb
Added deprecation warnings and updating RDoc+Guide
Misspelled separtor. Fixed.
Deprecated test cases and added support to parameterize with keyword parameters
Squashing commits.
Fixed test cases and added deprecated test cases
Small changes to Gemfile.lock and CHANGELOG
Update Gemfile.lock
|
|\ \
| |/
|/| |
Return a sized Enumerator from Hash#transform_values{!}
|
| | |
|
| | |
|
| |
| |
| |
| | |
This method was already niche, and is now redundant with `.new`
|