aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
Commit message (Collapse)AuthorAgeFilesLines
* 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
* | Correct result, previously showing wrong resultAkshay Vishnoi2014-06-041-1/+1
| |
* | drastically reduce object allocationsAaron Patterson2014-06-021-6/+13
| | | | | | | | | | | | | | | | | | | | before this change, we were allocating AS::SafeBuffer objects that were being interpolated in to a string, so the safe buffer object was being thrown away. This change only allocates a string (vs a string *and* a safebuffer) and interpolates the string. On my test application, this reduced the AS::SafeBuffer objects from 1527k per request to about 500 per request.
* | reduce AS::SafeBuffer allocationsAaron Patterson2014-06-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | html_escape_interpolated_argument is only used in mutation methods: https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L174 https://github.com/rails/rails/blob/c07d09559ec171e1904b55c7ad7e8c7d586ca51b/activesupport/lib/active_support/core_ext/string/output_safety.rb#L179 The return value doesn't need to be converted to an AS::SafeBuffer since we know that the current object is an AS::SafeBuffer and will be mutated, and the return value from html_escape_interpolated_argument will be thrown away
* | concat is a hotspot (via AV#append=), so just directly define the methodsAaron Patterson2014-06-021-4/+6
| |
* | Merge pull request #15379 from xuanxu/rational_precisionRafael Mendonça França2014-06-021-5/+1
|\ \ | | | | | | Fix AS::NumberHelper results with rationals
| * | Fix AS::NumberHelper results with rationalsJuanjo Bazán2014-05-311-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :precision was incorrectly being applied to Rationals before: ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2 => "3.3" after: ActiveSupport::NumberHelper.number_to_rounded Rational(10, 3), precision: 2 => "3.33"
* | | Avoid looping through subscribers when unsubscribing with a subscriber object.Guo Xiang Tan2014-06-011-5/+10
| | |
* | | Update documentation to reflect unsubscription with name.Guo Xiang Tan2014-06-012-4/+9
| | |
* | | [ci skip] Correct output of Hash#symbolize_keysAkshay Vishnoi2014-05-311-2/+2
|/ /
* | [ci skip] Correct documentation of HashWithIndifferentAccess#dupAkshay Vishnoi2014-05-311-2/+2
| |
* | HashWithIndifferentAccess#dup doc [ci skip]James Blanding2014-05-301-1/+8
| | | | | | | | | | The phrase "exact copy" in the existing docmentation is somewhat misleading.
* | Merge pull request #15313 from ↵Rafael Mendonça França2014-05-301-0/+8
|\ \ | | | | | | | | | | | | andreychernih/time-with-zone-string-conversion-speed-up Speed-up TimeWithZone to String conversion
| * | Speed-up TimeWithZone to String conversionAndrey Chernih2014-05-271-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've noticed that `String(model.created_at)` is performing poorly in comparision with other fields. The source of the problem is a way `Kernel#String` works: it first tries to call `to_str` (which causes `NoMethodError` in `method_missing`) and then calls `to_s`. Performance tests: tz = Time.zone.now Benchmark.ips do |x| x.report { String(tz) } end Without this code: Calculating ------------------------------------- 572 i/100ms ------------------------------------------------- 10177.7 (±18.2%) i/s - 48620 in 5.000325s With this code: Calculating ------------------------------------- 1518 i/100ms ------------------------------------------------- 138984.2 (±10.1%) i/s - 677028 in 4.974897s
* | | :scissors: removed deprecated `Numeric#ago` and friendsGodfrey Chan2014-05-301-19/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | Replacements: 5.ago => 5.seconds.ago 5.until => 5.seconds.until 5.since => 5.seconds.since 5.from_now => 5.seconds.from_now The removed tests does not affect coverage – we have equivalent test cases in the tests for `AS::Duration`. See #12389 for the history and rationale behind this.
* | Merge pull request #12080 from ShayDavidson/fix_datetime_partial_datesMatthew Draper2014-05-281-1/+11
|\ \ | | | | | | | | | Added partial days support to `DateTime`'s `advance` method.