aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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.
| * | Added partial days support to `DateTime`'s `advance` method.Shay Davidson2013-08-301-5/+15
| | | | | | | | | | | | | | | You can now add partial days (e.g. 2.5.days) to `DateTime` with the advance method. This was acheived by mimicing the `advance` implementation in `Time`.
* | | Require active_support at the railtiesRafael Mendonça França2014-05-272-0/+2
| | | | | | | | | | | | Railties need to be used without having to require any dependecy first.
* | | Remove `require 'active_support'` from individual modulesdeeeki2014-05-273-4/+0
| |/ |/| | | | | | | Let users require `active_support` before loading any ActiveSupport modules http://guides.rubyonrails.org/active_support_core_extensions.html
* | Merge pull request #15305 from tgxworld/remove_unnecessary_requireGuillermo Iguaran2014-05-241-2/+0
|\ \ | | | | | | Remove unnecessary require of Minitest.
| * | Remove unnecessary require of Minitest.Guo Xiang Tan2014-05-241-2/+0
| | | | | | | | | | | | Minitest has already been required when calling Minitest.autorun.
* | | Merge pull request #15278 from akshay-vishnoi/doc_changesAndrew White2014-05-241-4/+5
|\ \ \ | | | | | | | | [ci skip] Improve doc for ModuleConstMissing.guess_for_anonymous
| * | | [ci skip] Improve doc for ModuleConstMissing.guess_for_anonymousAkshay Vishnoi2014-05-241-4/+5
| |/ /
* | | Merge pull request #15276 from kuldeepaggarwal/fix-array-toRafael Mendonça França2014-05-231-1/+3
|\ \ \ | | | | | | | | Array#to now accept negative position also.
| * | | revert 96525d63Kuldeep Aggarwal2014-05-231-1/+3
| |/ / | | | | | | | | | `Array#to` is working for negative position
* | | Merge pull request #15275 from kuldeepaggarwal/add-testRafael Mendonça França2014-05-231-0/+2
|\ \ \ | | | | | | | | add test cases for negative position in Array#from
| * | | add test cases for negative position in Array#fromKuldeep Aggarwal2014-05-231-0/+2
| |/ /
* / / [ci skip] Remove Duration#=== when we drop support for 2.0.0-p353Akshay Vishnoi2014-05-231-2/+1
|/ /
* | Merge pull request #10887 from sakuro/deep_transform_keys_in_nested_arraysRafael Mendonça França2014-05-201-16/+38
|\ \ | | | | | | | | | | | | | | | | | | Hash#deep_*_keys(!) recurse into nested arrays. Conflicts: activesupport/CHANGELOG.md
| * | Hash#deep_*_keys(!) recurse into nested arrays.OZAWA Sakuro2013-06-081-16/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following methods now recursively transform nested arrays, too. * Hash#deep_transform_keys * Hash#deep_transform_keys! * Hash#deep_stringify_keys * Hash#deep_stringify_keys! * Hash#deep_symbolize_keys * Hash#deep_symbolize_keys!
* | | Fix confusing exception in ActiveSupport delegationVladimir Yarotsky2014-05-201-25/+13
| | |
* | | Collected TimeZone's class methods togetherprintercu2014-05-171-70/+69
| | | | | | | | | | | | Just moved class methods up in file and moved `def self.` methods into `class << self`.
* | | Merge pull request #15037 from ↵Rafael Mendonça França2014-05-161-1/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | roccoblues/fix_duplicate_activesupport_subscribers Fixed duplicate subscribers in ActiveSupport::Subscriber Conflicts: activesupport/CHANGELOG.md
| * | | Fixed duplicate subscribers in ActiveSupport::SubscriberDennis Schoen2014-05-091-1/+10
| | | | | | | | | | | | | | | | | | | | ActiveSupport::Subscriber no longer creates multiple subscribers when you redefine a method.
* | | | remove deprecation warningeileencodes2014-05-131-6/+0
| | | | | | | | | | | | | | | | | | | | This deprecation was released in 4.1.0 and can be removed for 4.2.0, deprecation message / handling is no longer necessary.
* | | | Merge pull request #15072 from mjtko/fix/issue-15064Rafael Mendonça França2014-05-131-1/+3
|\ \ \ \ | | | | | | | | | | [Fixes #15064] Calling number_to_delimited on a ActiveSupport::SafeBuffer results in mangled output
| * | | | Use block parameter rather than `$1` during `gsub!` so ↵Mark J. Titorenko2014-05-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ActiveSupport::SafeBuffer` values aren't mangled. Fixes #15064
* | | | | Do not check defined?(CGI) on every call #to_queryprintercu2014-05-131-1/+1
| | | | |
* | | | | flip conditional to use if/else instead of unless/elseeileencodes2014-05-121-3/+3
|/ / / / | | | | | | | | | | | | Use if/else instead of unless/else so conditional reads better.
* | | | Tidy up implementation of #15010Andrew White2014-05-111-7/+1
| | | |
* | | | Make TimeZone#parse behave more like Time#parse.Ulysse Carion2014-05-111-1/+12
| | | | | | | | | | | | | | | | | | | | Namely, if the mday is omitted but any other upper components are, then instead of supplying the mday from the current time, it defaults to 1.
* | | | Keep method's description/documentation consistent [ci skip]Santosh Wadghule2014-05-111-3/+3
| | | |
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-05-101-2/+5
|\ \ \ \
| * | | | [ci skip] doc ActiveSupport::TimeWithZone#to_sschneems2014-05-091-2/+5
| | | | | | | | | | | | | | | Current docs are wrong. Does not accept strftime inputs.
* | | | | Change 'a' to 'an' [ci skip]Santosh Wadghule2014-05-091-1/+1
| |/ / / |/| | |
* | | | Merge pull request #12746 from coreyward/masterRafael Mendonça França2014-05-071-11/+22
|\ \ \ \ | | | | | | | | | | | | | | | Fix Hash#deep_merge bug and improve documentation — resolves #12738
| * | | | Fix Hash#deep_merge bug and improve documentation — resolves #12738Corey Ward2013-12-091-11/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously merging into a hash with a falsy value would not result in the merge-block being called. The fix is simply to check for presence of the key in the hash. The documentation example for `deep_merge` now appropriately demonstrates what a deep merge does.
* | | | | several enhancements to humanize [closes #12288]Xavier Noria2014-05-061-9/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Strips leading underscores. * Changes some unnecessary gsub!s to sub!s. * Replaces some anchors ^, $ with \A, \z. * Documents that human inflection rules are applied. * Documents that words are downcased except acronyms. * Adds an example with an acronym. * Rewords docs.
* | | | | No need the else clauseRafael Mendonça França2014-05-041-2/+0
| | | | |
* | | | | Merge pull request #14949 from bogdan/empty-hash-array-parameterizationRafael Mendonça França2014-05-041-6/+6
|\ \ \ \ \ | | | | | | | | | | | | [Fixes #14948] Hash#to_query: right serialization for empty hash and array
| * | | | | [Fixes #14948] Hash#to_query: Changed a way how empty hash and empty array ↵Bogdan Gusiev2014-05-031-6/+6
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are serialized Empty Hash or Array should not present in serialization result {a: []}.to_query # => "" {a: {}}.to_query # => "" For more info see #14948.