aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | | Remove deprecated file(`active_support/core_ext/object/to_json.rb`) and its ↵Kuldeep Aggarwal2014-05-041-5/+0
|/ / | | | | | | test case.
* | Merge pull request #14840 from akshay-vishnoi/doc_changesArthur Nogueira Neves2014-04-231-2/+2
|\ \ | | | | | | Correct comment [ci skip]
| * | Correct comment [ci skip]Akshay Vishnoi2014-04-231-2/+2
| | |
* | | Merge pull request #14801 from kuldeepaggarwal/fix-string-inflectionRafael Mendonça França2014-04-221-1/+1
|\ \ \ | | | | | | | | Fix inconsistent behavior from String#pluralize
| * | | Fix inconsistent behavior from String#pluralizeKuldeep Aggarwal2014-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: When calling String#pluralize with count=1 then it returned same string, but with count other than 1, returned new string. After: String#pluralize always return a new string. => Prevent mutation of a string inadvertently.
* | | | Changed miss-leading comment [ci skip]Arun Agrawal2014-04-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After this 21dbe6f39b57f52967e92716dbd5e2b894e7a64c 2.1.1 :001 > 'business'.classify => "Business" 2.1.1 :004 > 'calculus'.classify => "Calculu" 2.1.1 :005 >
* | | | [ci-skip] correct the classify example's outputKuldeep Aggarwal2014-04-211-1/+1
| |/ / |/| |
* | | [ci skip] builtin -> built-inAkshay Vishnoi2014-04-202-3/+3
|/ /
* | Fix inconsistent behavior from String#first/#lastErnie Miller2014-04-181-4/+4
| | | | | | | | | | | | | | While calling String#first or String#last with zero or a Fixnum < the string's length returns a new string, a Fixnum >= the string's length returns the string itself. This inconsistency can lead to inadvertent mutation of a string.
* | Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-04-182-1/+11
|\ \
| * | Correct docs as singlton true is not returned hereSteven Harman2014-04-111-1/+1
| | | | | | | | | | | | [ci skip]
| * | Document LoadError core extensionsSteven Harman2014-04-111-1/+4
| | | | | | | | | | | | [ci skip]
| * | Add documentation for Thread#freezeSteven Harman2014-04-061-0/+7
| | |
* | | Object#duplicable?Akshay Vishnoi2014-04-161-0/+3
| | | | | | | | | | | | | | | | | | 1. Improve tests 2. Remove unnecessary constant 3. Add docs for BigDecimal#duplicable?
* | | Merge pull request #14646 from deivid-rodriguez/provide_byebug_by_defaultRafael Mendonça França2014-04-111-1/+1
|\ \ \ | | | | | | | | Improve debugging support
| * | | Keep debugger support only for rubies < 2.0.0David Rodríguez de Dios2014-04-081-1/+1
| | | |
* | | | Add more test case for #demodulize, Improve documentationAkshay Vishnoi2014-04-112-0/+4
| | | |
* | | | Merge branch 'master' into rm-uuid-fixturesRafael Mendonça França2014-04-103-6/+17
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: activerecord/CHANGELOG.md activesupport/CHANGELOG.md
| * \ \ \ Merge pull request #11411 from dscataglini/masterAaron Patterson2014-04-091-6/+12
| |\ \ \ \ | | | | | | | | | | | | Active support callback's before/after/around filters are not correctly making their singleton methods private
| | * | | | private method doesn't work for singleton methods defined this wayDiego Scataglini2013-07-121-6/+12
| | | | | |
| * | | | | Add missing require so requiring `active_support/cache` works again.Lucas Mazza2014-04-091-0/+1
| | | | | |
| * | | | | Fixed problem where `1.day.eql?(1.day)` is falseEmily Dobervich2014-04-081-0/+4
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes: 1.second.eql?(1.second) #=> false The new `eql?` requires that `other` is an `ActiveSupport::Duration`. This requirement makes `ActiveSupport::Duration`'s behavior consistent with other numeric types in Ruby. 1.eql?(1.0) #=> false 1.0.eql?(1) #=> false 1.second.eql?(1) #=> false (was true) 1.eql?(1.second) #=> false { 1 => "foo", 1.0 => "bar" } #=> { 1 => "foo", 1.0 => "bar" } { 1 => "foo", 1.second => "bar" } # now => { 1 => "foo", 1.second => "bar" } # was => { 1 => "bar" } And though the behavior here hasn't changed, for reference: 1 == 1.0 #=> true 1.0 == 1 #=> true 1 == 1.second #=> true 1.second == 1 #=> true
* | | | | Merge pull request #12016 from roderickvd/uuid_fixesRafael Mendonça França2014-04-041-0/+47
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Auto-generate stable fixture UUIDs on PostgreSQL Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/fixtures.rb activerecord/test/cases/adapters/postgresql/uuid_test.rb activesupport/CHANGELOG.md
| * | | | Auto-generate stable fixture UUIDs on PostgreSQL.Roderick van Domburg2014-01-071-0/+47
| | | | | | | | | | | | | | | | | | | | Fixes: #11524
* | | | | Fix error when using `with_options` with lambda.Lauro Caetano2014-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was causing error when using `with_options` passing a lambda as its last argument. class User < ActiveRecord::Base with_options dependent: :destroy do |assoc| assoc.has_many :profiles, -> { where(active: true) } end end It was happening because the `option_merger` was taking the last argument and checking if it was a Hash. This breaks the HasMany usage, because its last argument can be a Hash or a Proc. As the behavior described in this test: https://github.com/rails/rails/blob/master/activesupport/test/option_merger_test.rb#L69 the method will only accept the lambda, this way it will keep the expected behavior. See 9eaa0a34
* | | | | Move require to actual fileCarlos Antonio da Silva2014-04-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Change to require all active_support/deprecation since that's the actual entry point for the deprecation methods.
* | | | | DRY AS::SafeBuffer a bit using existing helperPavel Pravosud2014-04-021-5/+1
| | | | |
* | | | | Make AS::SafeBuffer#prepend act like String#prependPavel Pravosud2014-03-311-6/+13
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | Make `#prepend` method modify instance in-place and return self instead of just returning modified value. That is exactly what `#prepend!` method was doing previously, so it's deprecated from now on.
* | | | HashWithIndifferentAccess better respects #to_hashPeter Jaros2014-03-281-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | In particular, `.new`, `#update`, `#merge`, `#replace` all accept objects which respond to `#to_hash`, even if those objects are not Hashes directly.
* | | | - Rename `increment_or_decrement` to an apt `set_cache_value` since it ↵Vipul A M2014-03-241-4/+5
| | | | | | | | | | | | | | | | actually doesn't increment/decrement in localstore.
* | | | Deprecate Class#superclass_delegating_accessorAkshay Vishnoi2014-03-201-0/+4
| | | |
* | | | fix `number_to_percentage` with `Float::NAN`, `Float::INFINITY`.Yves Senn2014-03-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #14405. This is a follow-up to 9e997e9039435617b6a844158f5437e97f6bc107 to restore the documented behavior.
* | | | Minor grammer, code conventions fix [ci skip]Zoltan Kiss2014-03-151-2/+1
| | | | | | | | | | | | | | | | | | | | Conflicts: activesupport/lib/active_support/core_ext/hash/conversions.rb
* | | | Remove deprecation on active_support/core_ext/class/attribute_accessors ↵Jeremy Kemper2014-03-151-5/+3
| | | | | | | | | | | | | | | | requires. Appropriate to keep this, users don't care that the implementation got unified.
* | | | Fix #to_json for BasicObject EnumerablesSammy Larbi2014-03-142-2/+2
| | | |
* | | | make tests pass on Ruby 2.2Aaron Patterson2014-03-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Apparently we've been using a buggy feature for the past 6 years: https://bugs.ruby-lang.org/issues/9593
* | | | use method_defined? to check whether or not a method is definedAaron Patterson2014-03-121-1/+1
| | | |
* | | | Merge pull request #14244 from arthurnn/orderd_hash_select_fixSantiago Pastorino2014-03-081-0/+4
|\ \ \ \ | | | | | | | | | | Fix OrderedHash.select to return self instance.
| * | | | Fix OrderedHash.select to return self instance.Arthur Neves2014-03-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On ruby 2.1.1 the behavior of .select and .reject has changed. They will return a Hash new instance, so we need to override them to keep the instance object class.
* | | | | Introduce `Rails.gem_version`Prem Sichanugrist2014-03-052-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This method return `Gem::Version.new(Rails.version)`, suggesting a more reliable way to perform version comparison. Example: Rails.version #=> "4.1.2" Rails.gem_version #=> #<Gem::Version "4.1.2"> Rails.version > "4.1.10" #=> false Rails.gem_version > Gem::Version.new("4.1.10") #=> true Gem::Requirement.new("~> 4.1.2") =~ Rails.gem_version #=> true This was originally introduced as `.version` by @charliesome in #8501 but got reverted in #10002 since it was not backward compatible. Also, updating template for `rake update_versions`.
* | | | | Revert "Merge pull request #14269 from arthurnn/expanded_key_array"Godfrey Chan2014-03-041-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 475c96589ca65282e1a61350271c2f83f0d4044f, reversing changes made to 705915ab5cf24430892107764b0050c07e1df583. We decided that this is not worth busting everyone's cache as this seems like a very unlikely problem. The problem only occurs when the user is 1) not using a namespace, or 2) using the same namesapce for different *kinds* of cache items. The recommended "fix" is to put those cache items into their own namspace: id = 1 Rails.cache.fetch(id, namespace: "user"){ User.find(id) } ids = [1] Rails.cache.fetch(ids, namespace: "users"){ User.find(ids) } See the discussion on #14269 for details.
* | | | | Cache key should be different when is Array.Arthur Neves2014-03-031-3/+4
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | `cache.fetch(['foo'])` and `cache.fetch('foo')` should generate different cache keys as they are not equivalents. [related #8615] [related #8614]
* | | | Return a hash rather than array from fetch_multiParker Selbert2014-02-261-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of `fetch_multi` returns an array and has no means to easily backtrack which names yielded which results. By changing the return value to a Hash we retain the name information. Hash#values can be used on the response if only the values are needed.
* | | | Fix concerning module reference [ci skip]Carlos Antonio da Silva2014-02-261-1/+1
| | | |