This change breaks tests in activesupport/test/core_ext/module_test.rb:
* test_delegation_exception_backtrace
* test_delegation_exception_backtrace_with_allow_nil
This reverts commit 0167765e3f84260522bc2f32d926c1f5dd44957c.
The behavior of json_escape was fixed in 2f1c5789, but the doc
changes and example in that commit incorrectly indicated that the
return value would be html-safe. Since quotation marks are
preserved, the raw value is not safe to use in other contexts
(specifically HTML attributes).
* Adding Hash#compact and Hash#compact! methods
* Using Ruby 1.9 syntax on documentation
* Updating guides for `Hash#compact` and `Hash#compact!` methods
* Updating CHANGELOG for ActiveSupport
* Removing unecessary protected method and lambda for `Hash#compact` implementations
* Performing `Hash#compact` implementation - https://gist.github.com/tinogomes/8332883
* fixing order position
* Fixing typo
fixes#13547
The body may use the local cache during rendering. `call`ing the app
doesn't mean that rendering is finished, so we need to wait until
`close` is called on the body.
This reverts commit 2ef1fb2c455ca53a0c1e1768f50824926ce28bd3.
As described in PR #13627 this commit broke functionality when passing
a negative Fixnum to the `String#to` method:
```ruby
assert_equal "hell", s.to(-2)
```
Before the revert, this failed with:
```
1) Failure:
StringAccessTest#test_#to_with_negative_Fixnum,_position_is_counted_from_the_end [test/core_ext/string_ext_test.rb:275]:
Expected: "hell"
Actual: nil
```
This revert is to keep the functionality on `master` working.
If there is another way to get the performance benefit and keep
the documented functionality we can add that.
/cc @amatsuda @carlosantoniodasilva
I also extracted the tests from a single bulk method into a separate test-case.
The new tests cover the API described in the docs.
There are two skipped tests, which are broken as of 2ef1fb2c455ca53a0c1e1768f50824926ce28bd3
* #to with negative Fixnum, position is counted from the end
* #from and #to can be combined
This was brought to my attention by #13627.
Closes#13627.
:mem_cache_store require dalli, rescue Dalli exceptions, and follow Dalli API.
Memcached gem, for instance, doesnt work anymore, as the API are different.
As we already require one client, we should make sure that client works, and not accept others, and if someone wants to use another memcache client they can write their own store adapter.
Lazy loading the tzinfo library doesn't really buy us anything because
the gem is installed as a dependency via the gemspec and if a developer
is using Active Support outside of Rails then they can cherry pick which
files to load anyway.
Fixes#13553
The Date object has a xmlschema method starting with Ruby 1.9 so we were
assuming that we could safely remove this method and redefine it later
but the call to remove_method throws a NameError on FreeBSD so we should
rely on remove_possible_method instead.
This call is actually needed to avoid warnings when running the test
suite.
Fixes#11723
The contract of blank? and present? was in principle to return Object, as we
generally do, the test suite and description was consistent with that, but some
examples had comments like "# => true".
This cannot be unclear, we either fix the examples, or update the contract.
Since users may be already assuming singletons due to the examples and the fact
that they were returned before 30ba7ee, the safest option seems to be to revise
the contract and the implementation of String#blank?
The motivation for 30ba7ee was to improve the performance of the predicate, the
refactor based on === is on par regarding speed.
With this commit we start documenting return types using YARD conventions. We
plan to document return types gradually.