aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #14244 from arthurnn/orderd_hash_select_fixSantiago Pastorino2014-03-081-1/+4
|\ | | | | Fix OrderedHash.select to return self instance.
| * Fix OrderedHash.select to return self instance.Arthur Neves2014-03-071-1/+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.
* | Revert "Merge pull request #14269 from arthurnn/expanded_key_array"Godfrey Chan2014-03-041-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+5
| | | | | | | | | | | | | | | | `cache.fetch(['foo'])` and `cache.fetch('foo')` should generate different cache keys as they are not equivalents. [related #8615] [related #8614]
* | Add a comment to ensure that a test won't be removed [ci skip]Robin Dupret2014-03-031-1/+1
|/ | | | | | The 'cow' => 'kine' inflection has gone with c300dca9 but it should not be removed from the tested irregularities since it ensures that inflections work with words that do not begin with the same letters.
* Return a hash rather than array from fetch_multiParker Selbert2014-02-261-8/+9
| | | | | | | 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.
* Go with #presence_in instead of #present_in -- it doesnt sound quite as ↵David Heinemeier Hansson2014-02-241-3/+3
| | | | good, but the closer relationship to #presence over #present is ultimately worth it
* Introduce Concern#class_methods and Kernel#concernJeremy Kemper2014-02-233-16/+64
|
* Use assert_nil instead as its clearer about what the return is expected to beDavid Heinemeier Hansson2014-02-181-1/+1
|
* Added Object#present_in to simplify value whitelistingDavid Heinemeier Hansson2014-02-181-0/+5
|
* travel_to travels back and re-raises if the block raisesXavier Noria2014-02-181-0/+12
|
* adds a missing travel backXavier Noria2014-02-181-4/+4
|
* time helpers honor the application time zone when passed a dateXavier Noria2014-02-181-0/+14
| | | | | | | | | | | | | | | | | Rails applications are expected to be always aware of the application time zone. To be consistent with that contract, we have to assume that a bare date passed to time helpers is a date in the application time zone, not in the system time zone. The system time zone is irrelevant, we should totally ignore it. For example, travel_to user.birth_date + 40.years should make that user be 40th years old regardless of the system time zone. Without this patch that may not be true.
* Fixed an issue where reloading of removed dependencies would cause an ↵Noah Lindner2014-02-081-0/+12
| | | | unexpected circular dependency error
* Fix to_query with empty arrays tooRafael Mendonça França2014-02-061-0/+2
|
* Refatoring the method to avoid shot-circuit returnRafael Mendonça França2014-02-051-0/+2
|
* Test with a blank valueRafael Mendonça França2014-02-051-2/+2
|
* Move test to the right fileRafael Mendonça França2014-02-052-11/+9
|
* Fixed "Hash#to_param confused by empty hash values #13892"Hincu Petru2014-02-051-0/+11
|
* fix interplay of humanize and html_escapeSean Walbran2014-02-051-0/+4
|
* Return sized enumerator from Enumerable#index_byMarc-Andre Lafortune2014-02-051-0/+4
|
* Remove obsolete test (builtin group_by is now used)Marc-Andre Lafortune2014-02-051-20/+0
|
* Remove obsolete line (was needed for Ruby 1.8.7 support)Marc-Andre Lafortune2014-02-051-1/+0
|
* Assert the file is deprecatedRafael Mendonça França2014-02-011-1/+1
|
* Merge pull request #13911 from davidcelis/remove-bigdecimal-serializationRafael Mendonça França2014-02-012-12/+11
|\ | | | | | | | | | | | | Deprecate custom BigDecimal serialization Conflicts: activesupport/CHANGELOG.md
| * Remove BigDecimal#to_dDavid Celis2014-02-011-5/+0
| | | | | | | | | | | | This was backported for Ruby 1.8 support and is no longer needed. Signed-off-by: David Celis <me@davidcel.is>
| * Don't require BigDecimal serialization extensionDavid Celis2014-02-012-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails currently provides an extension to BigDecimal that redefines how it is serialized to YAML. However, as noted in #12467, this does not work as expected. When ActiveSupport is required, BigDecimal YAML serialization does not maintain the object type. It instead ends up serializing the number represented by the BigDecimal itself which, when loaded by YAML later, becomes a Float: ```ruby require 'yaml' require 'bigdecimal' yaml = BigDecimal('13.37').to_yaml YAML.load(yaml).class require 'active_support/all' yaml = BigDecimal('13.37').to_yaml YAML.load(yaml).class ``` @tenderlove posits that we should deprecate the custom BigDecimal serialization and let Ruby handle it. For the time being, users who require this serialization for backwards compatibility can manually `require 'active_support/core_ext/big_decimal/yaml_conversions'`. This will close #12467 and deprecate the custom BigDecimal#to_yaml. Signed-off-by: David Celis <me@davidcel.is>
* | Merge pull request #12769 from birkirb/masterRafael Mendonça França2014-02-011-0/+124
|\ \ | |/ |/| | | | | | | | | Boolean parser blows up on a Fixnum. Conflicts: activesupport/CHANGELOG.md
| * Fix breakage in XmlMiniBirkir A. Barkarson2013-12-231-0/+125
| | | | | | | | | | | | | | - Boolean parsing breaks on non strings (i.e. integer 1|0) - Symbol parsing breaks on non strings. - BigDecimal parsing breaks due to missing require. - Update changelog.
* | Maintain the current timezone in wrap_with_time_zoneAndrew White2014-01-311-0/+5
| | | | | | | | | | | | | | Extend the solution from the fix for #12163 to the general case where `Time` methods are wrapped with a time zone. Fixes #12596.
* | Remove automatic removal of Date/Time stubs after each test caseRafael Mendonça França2014-01-302-0/+7
| | | | | | | | | | | | This behavior is only work out-of-box with minitest and also add a downside to run after each test case, even if we don't used the travel or travel_to methods
* | Add `travel_back` to remove stubs from `travel` and `travel_to`Rafael Mendonça França2014-01-301-0/+12
| |
* | Make ActiveSupport::TimeWithZone#xmlschema consistentAndrew White2014-01-261-0/+4
| | | | | | | | | | | | Both Time#xmlschema and DateTime#xmlschema can accept nil values for the fraction_digits parameter. This commit makes this so for TimeWithZone values as well.
* | Add support for JSON time_precision to Time and DateTimeAndrew White2014-01-261-1/+19
| |
* | Rename subsecond_fraction_digits option to time_precisionAndrew White2014-01-261-3/+3
| |
* | Consolidate JSON encoding tests in one fileAndrew White2014-01-262-46/+48
| |
* | Customize subsecond digits when encoding DateWithTimeParker Selbert2014-01-261-7/+22
| | | | | | | | | | | | | | | | | | | | | | The subsecond fraction digits had been hardcoded to 3. This forced all timestamps to include the subsecond digits with no way to customize the value. While the subsecond format is part of the ISO8601 spec, it is not adhered to by all parsers (notably mobile clients). This adds the ability to customize the number of digits used, optionally setting them to 0 in order to eliminate the subsecond fraction entirely: ActiveSupport::JSON::Encoding.subsecond_fraction_digits = 0
* | Maintain current timezone when changing time during DST overlapAndrew White2014-01-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if a time is changed during DST overlap in the autumn then the method `period_for_local` will return the DST period. However if the original time is not DST then this can be surprising and is not what is generally wanted. This commit changes that behavior to maintain the current period if it's in the list of periods returned by `periods_for_local`. It is possible to alter the behavior of `period_for_local` by specifying a second argument but since we may be change from another time that could be either DST or not then this would give inconsistent results. Fixes #12163.
* | Remove warningRafael Mendonça França2014-01-161-2/+2
| |
* | define the delegate methods on one line. fixes #13724Aaron Patterson2014-01-161-0/+10
| | | | | | | | sup haters
* | standardize on jruby_skip & rbx_skipGaurish Sharma2014-01-131-1/+1
| | | | | | | | | | | | This Adds helpers(jruby_skip & rbx_skip). In Future, Plan is to use these helpers instead of calls directly to RUBY_ENGINE/RbConfig/JRUBY_VERSION
* | Fix iterating over DateTime by doing strict checking for Time objectsPrathamesh Sonpatki2014-01-111-0/+4
| | | | | | | | - Fixes #13667
* | Merge pull request #13632 from tinogomes/masterRafael Mendonça França2014-01-091-0/+28
|\ \ | | | | | | Adding Hash#compact and Hash#compact! methods
| * | Adding Hash#compact and Hash#compact! methodstinogomes2014-01-091-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* | | clear cache on body close so that cache remains during renderingAaron Patterson2014-01-081-0/+37
|/ / | | | | | | | | | | | | | | 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.
* | Revert "Speedup String#to"Yves Senn2014-01-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | typo fix in test name. [ci skip].Yves Senn2014-01-081-1/+1
| |
* | `core_ext/string/access.rb` test what we are documenting.Yves Senn2014-01-081-50/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #10634 from teleological/time_advance_gregorianAndrew White2014-01-051-0/+7
|\ \ | | | | | | Maintain proleptic gregorian in Time#advance
| * | Maintain proleptic gregorian in Time#advanceRiley Lynch2013-05-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Time#advance uses Time#to_date and Date#advance to calculate a new date. The Date object returned by Time#to_date is constructed with the assumption that the Time object represents a proleptic gregorian date, but it is configured to observe the default julian calendar reform date (2299161j) for purposes of calculating month, date and year: Time.new(1582, 10, 4).to_date.to_s # => "1582-09-24" Time.new(1582, 10, 4).to_date.gregorian.to_s # => "1582-10-04" This patch ensures that when the intermediate Date object is advanced to yield a new Date object, that the Time object for return is contructed with a proleptic gregorian month, date and year.