aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
Commit message (Collapse)AuthorAgeFilesLines
* Avoid relying on error messages when rescuingRobin Dupret2014-08-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | When we are rescuing from an error, it's a brittle approach to do checks with regular expressions on the raised message because it may change in in the future and error messages are different across implementations. The NameError API could be improved at the MRI level but for now we need to rely on its #name. A #== check will only pass for top level constants or only when the last constant of the path is missing so we need to rely on #include? instead. For instance: begin Namespace::Foo rescue NameError => e e.name # => :Namespace end However, if the name-space already exists, only the name of the first missing constant in the path is returned (e.g. for Math::PHI, the name would be :PHI). JRuby will return a fully qualified name (:"Math::PHI"). We need to keep the == check for 1.9 compatibility since const_get will raise a NameError with a name attribute set to the given string if it's one of "::" or "". See http://git.io/jnSN7g for further information.
* Fixed a compatibility issue with the `Oj` gemGodfrey Chan2014-07-291-3/+3
| | | | | | | | | | | | | `Time#as_json`, `Date#as_json` and `DateTime#as_json` incorrectly depends on a delegation that is set up in `active_support/json/encoding`. We cannot simply require that file in `core_ext/object/json` because it would cause a circular dependency problem (see #12203 for background). We should instead rely on AS's autoload to load that file for us on-demand. To trigger autoload correctly, we need to reference the `AS::JSON::Encoding` constant instead of using the delegated version. Fixes #16131.
* Merge pull request #15629 from akshay-vishnoi/test-to_paramRafael Mendonça França2014-07-282-66/+59
|\ | | | | Define Hash#to_query and set Hash#to_param as alias to it; with test cases
| * Move to_param to to_query, also Improve testsAkshay Vishnoi2014-06-202-66/+59
| |
* | Make HWIA copy the default proc too.Arthur Neves2014-07-241-0/+1
| | | | | | | | [fixes #16279]
* | Do not set enforce_available_locales to i18n 0.7Rafael Mendonça França2014-07-231-3/+1
| | | | | | | | | | | | Now the default is always true. Users still can set it using config.i18n.enforce_available_locales.
* | Merge branch 'rm-remove-mocha'Rafael Mendonça França2014-07-191-5/+0
|\ \ | | | | | | | | | | | | Conflicts: actionpack/test/abstract_unit.rb
| * | Stop requiring mocha automaticallyRafael Mendonça França2014-07-191-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are planning to remove mocha from our test suite because of performance problems. To make this possible we should stop require mocha on ActionSupport::TestCase. This should not affect applications since users still need to add mocha to Gemfile and this already load mocha. Added FIXME notes to place that still need mocha removal
* | | Prefer to pass block when logging.Guo Xiang Tan2014-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The Logger by default includes a guard which checks for the logging level. By removing the custom logging guards, we can decouple the logging guard from the logging action to be done. This also follows the good practice listed on http://guides.rubyonrails.org/debugging_rails_applications.html#impact-of-logs-on-performance.
* | | Merge pull request #16190 from oss92/word_truncationMatthew Draper2014-07-171-0/+24
|\ \ \ | | | | | | | | | | | | Word truncation
| * | | Added truncate_words method to activesupport stringsroot2014-07-161-0/+21
|/ / /
* | | Move uuid_v5 and uuid_v3 to Digest::UUIDRafael Mendonça França2014-07-152-47/+51
| | | | | | | | | | | | | | | These methods are not random so they should not belings to SecureRandom module.
* | | Deprecate reporting methods for silencing output as they aren't thread safeTom Meier2014-07-151-0/+10
| | |
* | | Return an Enumerator if no block is givenErik Michaels-Ober2014-07-122-1/+5
| | |
* | | Don't construct a Proc if no block is givenErik Michaels-Ober2014-07-121-1/+1
|/ /
* | Fix ActiveSupport::Callbacks #set_callback docs.Nick Pellant2014-07-071-1/+1
| | | | | | | | | | | | A minor version breakage due to a rewrite of the callbacks code now requires an explicit block to be passed to #set_callback. This amends the documentation.
* | :fire: these are lambdas now [ci skip]Godfrey Chan2014-07-031-9/+2
| | | | | | This has changed since around 2b1500d6
* | The hex escape sequence can be of any lengthGodfrey Chan2014-07-021-1/+1
| |
* | Fix escape_once double-escaping hex-encoded entitiesJohn F. Douthat2014-07-021-1/+1
| | | | | | | | (This is a manual merge of #9102)
* | `DateTime#to_f` now preserves fractional seconds.John Paul Ashenfelter2014-07-021-2/+2
| | | | | | | | | | | | | | Previously this method always returns `.0` in the fractional part. This commit changes it to preserve the fractional seconds instead. Fixes #15994.
* | Add `Hash#map_values` to ActiveSupportSean Griffin2014-06-292-0/+22
| | | | | | | | | | Didn't get a chance to convert existing code, I'll skim through the code base to make use of this later this afternoon.
* | Tiny documentation fixes [ci skip]Robin Dupret2014-06-291-1/+1
| |
* | Merge pull request #15943 from wagenet/cache-instrumentationRafael Mendonça França2014-06-271-11/+10
|\ \ | | | | | | | | | Always instrument ActiveSupport::Cache
| * | Always instrument ActiveSupport::CachePeter Wagenet2014-06-271-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | The current approach is broken because it uses a thread local value which means on multi-threaded environments it has to be turned on per thread. Secondly, ActiveSupport::Notifications does not instrument items when there are not subscribers so this flag is unnecessary.
* | | Update documentation for run_callbacksjamesprior2014-06-271-1/+2
| | | | | | | | | In some cases run_callbacks will return nil. I'm attempting to update the documentation for the method to clarify.
* | | Merge pull request #14247 from robin850/inflections-with-uncountablesRafael Mendonça França2014-06-261-1/+1
|\ \ \ | |/ / |/| | Make the apply_inflections method case-sensitive
| * | Make the apply_inflections method case-sensitiveRobin Dupret2014-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since d3071db1, the apply_inflections method check if the downcased version of a string is contained inside the "whitelist" of uncountable words. However, if the word is composed of capital letters, it won't be matched in the list while it should. We can't simply revert to the previous behavior as there is a performance concern (benchmarked over /usr/share/dict/words): Before d3071db1 135.610000 0.290000 135.900000 (137.807081) Since d3071db1 22.170000 0.020000 22.190000 ( 22.530005) With the patch 22.060000 0.020000 22.080000 ( 22.125771) Benchmarked with http://git.io/aFnWig This way, the solution is to put the down-case version of words inside the @uncountables array.
* | | :nodoc: our SecureRandom patches [ci skip]Godfrey Chan2014-06-261-4/+4
| | | | | | | | | | | | | | | | | | | | | These methods shouldn't be added to `SecureRandom`, as they are neither secure nor random. The more appropriate place for this seems to be `Digest`, so we should move them there. (Pull request welcomed!) Marking this `:nodoc:` for now, so we don't accidentally ship it as public API. See https://github.com/rails/rails/pull/15306/files#r13055862 for details.
* | | Merge pull request #15845 from robin850/jruby-isolationRafael Mendonça França2014-06-261-6/+16
|\ \ \ | |/ / |/| | Make the isolated tests run on JRuby
| * | Make the isolated tests run on JRubyRobin Dupret2014-06-211-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As there is no forking on JRuby, we need to spawn sub-processes to make the tests run in isolation. Previously, we were defining globally env variables and running the test file through backticks and delete these variables once the test ran. Now, we simply rely on IO.popen as this is cross-platform and the env variables are available during the child-process execution only so there are no race conditions. [Ben Browning & Robin Dupret]
* | | docs, fix BacktraceCleaner code example. Closes #15911. [ci skip]Yves Senn2014-06-251-1/+1
| | |
* | | Fix a bug where NameError#name returns a qualified name in stringYuki Nishijima2014-06-241-2/+2
|/ / | | | | | | | | | | | | Ruby's original behaviour is that : * It only returns a const name, not a qualified aname * It returns a symbol, not a string
* | Add regression test for NameError#nameArthur Neves2014-06-201-1/+1
| |
* | Make dependencies.rb add a name to NameErrorArthur Neves2014-06-201-4/+4
| |
* | Fix documentation from #15669 [ci skip]Zachary Scott2014-06-171-3/+5
| |
* | [ci skip] fix doc for the Hash#assert_valid_keysAditya Kapoor2014-06-171-3/+3
| |
* | Merge pull request #15680 from akshay-vishnoi/doc_changesSean Griffin2014-06-121-1/+1
|\ \ | | | | | | [ci skip] BigDecimal#duplicable? returns false in 1.9.x
| * | [ci skip] BigDecimal#duplicable? returns false in 1.9.xAkshay Vishnoi2014-06-131-1/+1
| | |
* | | [ci skip] Correct output of #assert_notAkshay Vishnoi2014-06-121-1/+1
|/ /
* | Revert "remove unnecssary require of `to_param`, as `to_query` is already ↵Rafael Mendonça França2014-06-114-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | require `to_param`" Revert "No need to require to_param, it is already required in to_query.rb" This reverts commits ccdd97662e1fb00c23c90d59f65c091904959561 and d697ee14264a90a39cdbe87857656d8b314ac9b7. Reason by @jeremy: These requires are not for implementation dependency. They ensure that requiring array conversions provides to_query, to_param, and other array conversion behaviors. The fact that to_query is implemented in terms of to_param is just a coincidence. If to_query removed its to_param require, then someone requiring array conversions would no longer have to_param available. This change removes these intentional dependencies on to_param in favor of implementation side effects—an undesirable move that's susceptible to regression.
* | remove unnecssary require of `to_param`, as `to_query` is already require ↵Kuldeep Aggarwal2014-06-123-3/+0
| | | | | | | | `to_param`
* | No need to require to_param, it is already required in to_query.rbAkshay Vishnoi2014-06-111-1/+0
| |
* | remove deprecated code. Rely on `describe` provided by minitestAaron Patterson2014-06-101-24/+0
| |
* | Merge pull request #15616 from apanzerj/fix_long_key_pathsRafael Mendonça França2014-06-101-0/+5
|\ \ | | | | | | fix error with long keys in ActiveSupport::Cache::FileStore
| * | fix error with long keys in ActiveSupport::Cache::FileStoreAdam Panzer2014-06-101-0/+5
| |/
* / [ci skip] Add Docs for strip_insignificant_zeros option in number helpersAkshay Vishnoi2014-06-101-8/+7
|/
* [ci skip] Correct output and use valid options of number helpersAkshay Vishnoi2014-06-101-2/+2
|
* Fix bug that make HashWithIndifferentAccess work differently of HashRafael Mendonça França2014-06-091-1/+1
| | | | | Before HashWithIndifferentAccess were doing deep_dup of the inner hashes when Hash doesn't do. Now both are behaving in the same way.
* Merge pull request #15421 from gchan/time_with_zone_precisionMatthew Draper2014-06-051-1/+1
|\ | | | | | | Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost
| * Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lostGordon Chan2014-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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