| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
See 2f26f611 for more info.
|
| |
|
|
|
|
|
| |
Same fix as 109e71d2bb6d2305a091fe7ea96d4f6e9c7cd52d but after
mocha got removed in 2f28e5b6417fd4e5d6060983b36262737558b613.
|
| |
|
|\
| |
| | |
active_support/indifferent_access: fix not raising when default_proc does
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
| |
Add `assert_called` and `assert_not_called` to boil down the boilerplate we need to write
to assert methods are called certain number of times.
|
| |
|
|
|
|
| |
Fixes CVE-2015-3226
|
|\
| |
| | |
Fix the message verifier encoding issue
|
| |
| |
| |
| |
| |
| |
| | |
```ruby
verifier = ActiveSupport::MessageVerifier.new('secret')
verifier.verify("\xff") # => ArgumentError: invalid byte sequence in UTF-8
```
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not something that is failing at the moment, but can do it
eventually. I had the issue with db62081 as the HEAD and with the
following change:
```
--- a/activesupport/test/inflector_test.rb
+++ b/activesupport/test/inflector_test.rb
@@ -101,6 +101,7 @@ class InflectorTest < ActiveSupport::TestCase
def test_acronyms
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym("API")
+ inflect.acronym("HTM")
inflect.acronym("HTML")
inflect.acronym("HTTP")
inflect.acronym("RESTful")
```
I was expecting only `test_acronyms` to fail, but with a specific `seed`
others were also failing: `ruby -w -I"lib:test" test/inflector_test.rb
--seed 4313`.
Now, `inflections` instance is duplicated on `setup` and restored on
`teardown`.
I decided to benchmark and check the impact of the patch and it seems
to me to be fine.
```
Calculating -------------------------------------
without changes 1.000 i/100ms
with setup dup 1.000 i/100ms
with block dup 1.000 i/100ms
-------------------------------------------------
without changes 0.817 (± 0.0%) i/s - 5.000 in
6.119916s
with setup dup 0.784 (± 0.0%) i/s - 4.000
with block dup 0.797 (± 0.0%) i/s - 4.000
```
Where `with setup dup` duplicates on setup for each test and `with block`
duplicates for just for tests that actually modify `inflections`.
|
|\
| |
| | |
DateTime#<=> return nil when compare to the invalid String as Time.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
before:
p Time.now == 'a' # => false
p Time.now <=> 'a' # => nil
require 'active_support'
require 'active_support/core_ext'
p Time.now == 'a' # => false
p Time.now <=> 'a' # => invalid date (ArgumentError)
and on ruby 2.2, Time.now == 'a' warning.
warning: Comparable#== will no more rescue exceptions of #<=> in the next release.
warning: Return nil in #<=> if the comparison is inappropriate or avoid such comparison.
after:
- Error handling.
- Quiet warnings.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Allow Enumerable#pluck to take a splat.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This allows easier integration with ActiveRecord, such that
AR#pluck will now use Enumerable#pluck if the relation is loaded,
without needing to hit the database.
|
|/ /
| |
| |
| |
| | |
Passing 999999000 < `:nsec` < 999999999 and 999999 < `:usec` < 1000000
to change a time with utc_offset doesn't throw an `ArgumentError`.
|
|\ \
| | |
| | | |
Avoid E constant clashing with Minitest defined version.
|
| | |
| | |
| | |
| | |
| | | |
Minitest sets an E constant to an empty string to save GC time.
This clashes with autoloading tests which define an E constant.
|
| | |
| | |
| | |
| | | |
Allows fetching the same values from arrays as from ActiveRecord associations.
|
|\ \ \
| | | |
| | | |
| | | | |
Add bang version to OrderedOptions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
By:
Aditya Sanghi(@asanghi)
Gaurish Sharma(gaurish)
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* Rename `ActiveSupport::Try` => `ActiveSupport::Tryable`
* Include the modules inline
* `private` indentation
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`Delegator` inherits from `BasicObject`, which means that it will not
have `Object#try` defined. It will then delegate the call to the
underlying object, which will not (necessarily) respond to the method
defined in the enclosing `Delegator`.
This patches `Delegator` with the `#try` method to work around the
surprising behaviour.
Fixes #5790
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The feature was accepted and added to Ruby 2.3+ so we don't need to
define it again.
See https://bugs.ruby-lang.org/issues/11151
|
|\ \ \
| | | |
| | | |
| | | | |
Move Integer#positive? and Integer#negative? query methods to Numeric
|
| |/ /
| | |
| | |
| | | |
By this way Integer, Rational, Float, Fixnum, Bignum classes have the same behaviour
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
this removes the following warning:
```
test/core_ext/integer_ext_test.rb:34: warning: ambiguous first argument; put parentheses or a space even after `-' operator
test/core_ext/integer_ext_test.rb:38: warning: ambiguous first argument; put parentheses or a space even after `-' operator
```
|
| |
| |
| |
| | |
Fixnum#zero?
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously when converting AS::TimeWithZone to YAML it would be output
as a UTC timestamp. Whilst this preserves the time information accurately
it loses the timezone information. This commit changes that so that it is
saved along with the time information. It also provides nicer encoding of
AS::TimeZone instances themselves which previously embedded all of the
data from the TZInfo records.
Fixes #9183.
|
| |
| |
| |
| |
| | |
Make strptime behave more like parse when components are missing and
share behavior between the two methods.
|
| |
| |
| |
| | |
This makes it easier to parse user-inputted times as from a given time zone.
|
| |
| |
| |
| |
| |
| | |
Currently `Rails.cache.clear` raises Errno::ENOENT if it's run just
after cloning a new Rails project. It should succeed without removing
files or directories.
|
|\ \
| | |
| | | |
Raise ArgumentError if an unrecognised callback is skipped
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At present, if you skip a callback that hasn't been defined,
activesupport callbacks silently does nothing. However, it's easy to
mistype the name of a callback and mistakenly think that it's being
skipped, when it is not.
This problem even exists in the current test suite.
CallbacksTest::SkipCallbacksTest#test_skip_person attempts to skip
callbacks that were never set up.
This PR changes `skip_callback` to raise an `ArgumentError` if the
specified callback cannot be found.
|
|\ \ \
| |/ /
|/| | |
Do not depend on Rails git repository layout in ActiveSupport tests
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 9420de59f5b7f5ceac77e28e6c326ec145f71f80.
Reason: Turns out we want to keep this method.
|
| | |
| | |
| | |
| | |
| | | |
We are promoting too much a feature that will not be widler used.
So for now lets keep just the ArrayInquirer constructor.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Wrapping an array in an `ArrayInquirer` gives a friendlier way to check its
string-like contents. For example, `request.variant` returns an `ArrayInquirer`
object. To check a request's variants, you can call:
request.variant.phone?
request.variant.any?(:phone, :tablet)
...instead of:
request.variant.include?(:phone)
request.variant.any? { |v| v.in?([:phone, :tablet]) }
`Array#inquiry` is a shortcut for wrapping the receiving array in an
`ArrayInquirer`:
pets = [:cat, :dog]
pets.cat? # => true
pets.ferret? # => false
pets.any?(:cat, :ferret} # => true
|