aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext
Commit message (Collapse)AuthorAgeFilesLines
* Added method `#eql?` to `ActiveSupport::Duration`, in addition to `#==`.Joost Lubach2013-08-071-0/+8
| | | | | | | | | | | | | Currently, the following returns `false`, contrary to expectation: 1.minute.eql?(1.minute) Adding method `#eql?` will make this behave like expected. Method `#eql?` is just a bit stricter than `#==`, as it checks whether the argument is also a uration. Their parts may be different though. 1.minute.eql?(60.seconds) # => true 1.minute.eql?(60) # => false
* Fix unused variable warningAndrew White2013-08-041-0/+1
| | | | | | We need to call `in_time_zone` to test that it isn't modifying the receiver but since the variable isn't used it raises a warning so add an assertion to make Ruby think it's being used.
* Refactor Date, Time, DateTime timezone methodsGilad Zohari2013-08-011-0/+8
| | | | | | Similar implementations of #in_time_zone exists for Date, Time and DateTime so method is extracted into its own module. Also some logic is extracted into private method.
* Merge pull request #10879 from makaroni4/masterAndrew White2013-07-293-0/+20
|\ | | | | Added Time#middle_of_day method
| * Added Time#middle_of_dayAnatoli Makarevich2013-07-283-0/+20
| | | | | | | | Added middle_of_day method to Date and DateTime
* | Fix handling of offsets with Time#to_s(:iso8601)Andrew White2013-07-293-1/+10
| | | | | | | | | | | | Use a lambda to ensure that the generated string respects the offset of the time value. Also add DateTime#to_s(:iso8601) and Date#to_s(:iso8601) for completeness.
* | Add Time#to_s(:iso8601) for easy conversion of times to the iso8601 format ↵David Heinemeier Hansson2013-07-281-0/+1
| | | | | | | | for easy Javascript date parsing
* | Only raise DelegationError if it's is the source of the exceptionAndrew White2013-07-111-0/+27
| | | | | | | | | | | | | | | | | | This fixes situations where nested NoMethodError exceptions are masked by delegations. This would cause confusion especially where there was a problem in the Rails booting process because of a delegation in the routes reloading code. Fixes #10559
* | Add failing test for #9562Andrew White2013-07-101-0/+5
| | | | | | | | | | | | | | | | Rails 4.0.0 fails when trying to encode an ActiveSupport::TimeWithZone that wraps a DateTime instance. This is fixed on master so add a test to prevent regression. (cherry picked from commit ad01b8da354268cebfae1519c28d19d75576ccb1)
* | Return local time for backwards compatibilityAndrew White2013-07-091-8/+25
| |
* | Retain UTC offset when using Time.at_with_coercionAndrew White2013-07-091-0/+33
| | | | | | | | | | | | | | | | | | | | The standard Ruby behavior for Time.at is to return the same type of time when passing an instance of Time as a single argument. Since the an ActiveSupport::TimeWithZone instance may be a different timezone than the system timezone and DateTime just understands offsets the best we can do is to return an instance of Time with the correct offset. Fixes #11350.
* | Fix microsecond precision of Time#at_with_coercionNeer Friedman2013-07-091-0/+4
| | | | | | | | | | | | | | | | When Time.at_with_coercion (wraps Time.at) is called with a single argument that "acts_like?(:time)" it is coerced to integer thus losing it's microsecond percision. This commits changes this to use `#to_f` to prevent the problem
* | Make HashWithIndifferentAccess#select always return the hash.Marc Schütz2013-07-061-0/+6
| | | | | | | | | | Hash#select! returns nil if the hash didn't change and thus behaves differently from select, so it's return value can't be used as result for the latter.
* | Fixed test broken by local_constant_names Arun Agrawal2013-07-031-6/+0
| | | | | | depreciation removed
* | Remove deprecated `String#encoding_aware?` Arun Agrawal2013-07-031-6/+0
| | | | | | core extensions (`core_ext/string/encoding`).
* | Remove deprecated `Time#time_with_datetime_fallback`, `Time#utc_time`Vipul A M2013-07-031-55/+0
| | | | | | | | and `Time#local_time` in favour of `Time#utc` and `Time#local`
* | Remove deprecated Hash#diff with no replacement.Carlos Antonio da Silva2013-07-021-6/+0
| | | | | | | | | | If you're using it to compare hashes for the purpose of testing, please use MiniTest's assert_equal instead.
* | Remove deprecated `Date#to_time_in_current_zone`Vipul A M2013-07-021-7/+0
| |
* | Remove deprecated `Proc#bind` with no replacement.Carlos Antonio da Silva2013-07-011-14/+0
| |
* | Remove deprecated Array#uniq_by and Array#uniq_by!Carlos Antonio da Silva2013-07-011-30/+0
| | | | | | | | Use native Array#uniq and Array#uniq! instead.
* | Move delegation error constant to inside ModuleCarlos Antonio da Silva2013-06-261-1/+1
| |
* | Merge pull request #10828 from southpolesteve/delegation_error_classYves Senn2013-06-261-1/+1
|\ \ | | | | | | Create DelegationError class
| * | Add DelegationError class. Rasied by delegation to a nil objectSteve Faulkner2013-06-261-1/+1
| | |
* | | Merge pull request #10740 from mrsimo/hash-with-indifferent-access-selectRafael Mendonça França2013-06-141-0/+30
|\ \ \ | | | | | | | | HashWithIndifferentAccess#select working as intended
| * | | HashWithIndifferentAccess#select working as intendedAlbert Llop2013-05-231-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | Before this commit, #reject returned a HashWithIndifferentAccess, whereas #select returned a Hash. Now #select also returns a HashWithIndifferentAccess.
* | | | Add missing nsec test for 17f5d8eAndrew White2013-06-131-0/+5
| | | |
* | | | Keep sub-second resolution when wrapping a DateTime valueAndrew White2013-06-132-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `DateTime#usec` and `DateTime#nsec` so that `ActiveSupport::TimeWithZone` keeps sub-second resolution when wrapping a `DateTime` value. Fixes #10855
* | | | Override Time.at to work with Time-like valuesAndrew White2013-06-081-0/+22
| |_|/ |/| | | | | | | | | | | | | | | | | Time.at allows passing a single Time argument which is then converted to an integer. The conversion code since 1.9.3r429 explicitly checks for an instance of Time so we need to override it to allow DateTime and ActiveSupport::TimeWithZone values.
* | | Merge pull request #10784 from senny/10526_prevent_key_transformationRafael Mendonça França2013-06-031-0/+7
|\ \ \ | |_|/ |/| | Prevent side effects in `Hash#with_indifferent_access`.
| * | Prevent side effects in `Hash#with_indifferent_access`.Yves Senn2013-05-291-0/+7
| | |
* | | Allow Date to be compared with Time (like it was possible to compare Time ↵David Heinemeier Hansson2013-06-031-0/+4
|/ / | | | | | | with Date)
* | Merge pull request #10763 from senny/10758_to_sentence_with_blank_elementsCarlos Antonio da Silva2013-05-261-0/+4
|\ \ | | | | | | test-case for `Array#to_sentence` with `blank?` items.
| * | add test-case for `Array#to_sentence with blank items.Yves Senn2013-05-261-0/+4
| |/
* / Fix some typo in method names, variablesVipul A M2013-05-262-2/+2
|/
* Fix HWIA#to_hash behavior with array of hashes.kennyj2013-05-161-0/+5
|
* Merge pull request #10266 from vipulnsward/fix_HIA_to_hashRafael Mendonça França2013-05-141-0/+4
|\ | | | | fix HashWithIndifferentAccess#to_hash behaviour
| * fix HashWithIndifferentAccess#to_hash behaviourVipul A M2013-04-191-0/+4
| |
* | Squashed commit of the following:Aaron Patterson2013-05-036-109/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 2683de5da85135e8d9fe48593ff6167db9d64b18 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:29:20 2013 -0700 cannot support infinite ranges right now commit cebb6acef2c3957f975f6db4afd849e535126253 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:26:12 2013 -0700 reverting infinity comparison commit 385f7e6b4efd1bf9b89e8d607fcb13e5b03737ea Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:23:28 2013 -0700 Revert "Added ability to compare date/time with infinity" This reverts commit 38f28dca3aa16efd6cc3af6453f2e6b9e9655ec1. Conflicts: activesupport/CHANGELOG.md activesupport/lib/active_support/core_ext/numeric/infinite_comparable.rb activesupport/test/core_ext/date_ext_test.rb activesupport/test/core_ext/date_time_ext_test.rb activesupport/test/core_ext/numeric_ext_test.rb activesupport/test/core_ext/time_ext_test.rb activesupport/test/core_ext/time_with_zone_test.rb commit 0d799a188dc12b18267fc8421675729917610047 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:53 2013 -0700 Revert "Refactor infinite comparable definition a bit" This reverts commit dd3360e05e4909f2f0c74a624cccc2def688f828. commit 42dec90e49745bbfae546f0560b8783f6b48b074 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:47 2013 -0700 Revert "Require 'active_support/core_ext/module/aliasing' in the infinite_comparable module" This reverts commit 7003e71c13c53ec3d34250560fbf80b8381df693.
* | Revert "Object#in? also accepts multiple parameters"Brian Morearty2013-05-011-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ebf69ab1636df74c76332c53bcd3d8494fb91b45. `in?` must not take multiple parameters because its behavior would be ambiguous: # Test if "B" is included in a list of names with `"B".in?(*names)`: names = ["BMorearty"] "B".in?(*names) # => true names = ["BMorearty","rubyduo"] "B".in?(*names) # => false Conflicts: activesupport/lib/active_support/core_ext/object/inclusion.rb activesupport/test/core_ext/object/inclusion_test.rb
* | Module#delegate checks nilness rather that falsehood if :allow_nil is true, ↵Xavier Noria2013-04-261-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and avoids multiple evaluation of the target method Notes: 1) I hope nilness is a word. 2) See rationale for avoiding multiple evaluation in a comment in the patch, credit goes to @jeremy for pointing out this gotcha in the existing implementation. 3) Embeds a little joke dedicated to @pixeltrix (it could be worse! :D). References #10347.
* | Merge pull request #10351 from ↵Xavier Noria2013-04-261-0/+5
|\ \ | | | | | | | | | | | | JonRowe/update_as_date_next_week_to_document_intent Propose better documentation for ActiveSupports `next_week` functionaility
| * | better document `next_week` functionaility closes #9568Jon Rowe2013-04-261-0/+5
| | |
* | | Delegation method bugLi Ellis Gallardo2013-04-251-0/+5
|/ / | | | | | | | | | | Add documentation and test to delegation method that make sure we're aware that when a delegated object is not nil or false and doesn't respond to the method it will still raise a NoMethodError exception.
* / Adjust for daylight savings in String#to_timeAndrew White2013-04-231-2/+118
|/ | | | | | | | | | | | | | | The changes in b79adc4323 had a bug where if the time in the String was in standard time but the current time was in daylight savings then the calculated adjustment was off by an hour. This commit fixes this and adds extra tests for the following: * time in string is standard time, current time is standard time * time in string is standard time, current time is daylight savings * time in string is daylight savings, current time is standard time * time in string is daylight savings, current time is daylight savings Fixes #10306.
* more descriptive NameError's messages for class attributesHrvoje Šimić2013-04-171-4/+6
|
* Add option to Class#class_attribute for skipping the query methodAgis-2013-04-061-2/+7
|
* Further simplify enumerable group_by testCarlos Antonio da Silva2013-04-041-3/+1
|
* Replaced inject with mapAnupam Choudhury2013-04-041-2/+2
|
* Removed unused comma after loop variableAnupam Choudhury2013-04-041-1/+1
|
* `TimeWithZone` raises `NoMethodError` in proper context.Yves Senn2013-03-181-0/+8
| | | | | | | | | Closes #9772. `TimeWithZone` delegates everything to the wrapped `Time` object using `method_missing`. The result is that `NoMethodError` error will be raised in the context of `Time` which leads to a misleading debug output.