aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext
Commit message (Collapse)AuthorAgeFilesLines
* Unify `cattr_*` interface: allow to pass a block to `cattr_reader`.Alexey Chernenkov2013-11-151-0/+9
| | | | | | | | | Example: class A cattr_reader(:defr) { 'default_reader_value' } end A.defr # => 'default_reader_value'
* Array#split preserving the calling arrayKD2013-11-111-6/+12
|
* Add +capitalize+ option to Inflector.humanizeclaudiob2013-11-061-1/+7
| | | | | | | So strings can be humanized without being capitalized: 'employee_salary'.humanize # => "Employee salary" 'employee_salary'.humanize(capitalize: false) # => "employee salary"
* Added Numeric#in_milliseconds, like 1.hour.in_milliseconds, so we can feed ↵David Heinemeier Hansson2013-11-021-0/+4
| | | | them to JavaScript functions like getTime().
* Merge pull request #12203 from chancancode/eager_load_jsonJeremy Kemper2013-10-301-0/+9
|\ | | | | Eagerload active_support/json/encoding in active_support/core_ext/object/to_json
| * Moved all JSON core extensions into core_ext/object/jsonGodfrey Chan2013-09-131-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TL;DR The primary driver is to remove autoload surprise. This is related to #12106. (The root cause for that ticket is that json/add defines Regexp#to_json among others, but here I'll reproduce the problem without json/add.) Before: >> require 'active_support/core_ext/to_json' => true >> //.as_json NoMethodError: undefined method `as_json' for //:Regexp from (irb):3 from /Users/godfrey/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>' >> //.to_json => "\"(?-mix:)\"" >> //.as_json => "(?-mix:)" After: >> require 'active_support/core_ext/to_json' => true >> //.as_json => "(?-mix:)" This is because ActiveSupport::JSON is autoloaded the first time Object#to_json is called, which causes additional core extentions (previously defined in active_support/json/encoding.rb) to be loaded. When someone require 'active_support/core_ext', the expectation is that it would add certain methods to the core classes NOW. The previous behaviour causes additional methods to be loaded the first time you call `to_json`, which could cause nasty surprises and other unplesant side-effects. This change moves all core extensions in to core_ext/json. AS::JSON is still autoloaded on first #to_json call, but since it nolonger include the core extensions, it should address the aforementioned bug. *Requiring core_ext/object/to_json now causes a deprecation warnning*
* | slice! should not remove default hash value/procAntonio Santos2013-10-241-0/+18
| |
* | `$SAFE = 4;` has been removed with Ruby 2.1Vipul A M2013-10-141-13/+0
| | | | | | | | | | | | For background - https://bugs.ruby-lang.org/issues/8468 Changset - https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/41259/diff/test/ruby/test_thread.rb
* | Revert "Merge pull request #12480 from iwiznia/master"Jeremy Kemper2013-10-111-15/+0
| | | | | | | | | | This reverts commit e5f5a838b96a362534d9bb60d02334439ed9784c, reversing changes made to d7567f3290a50952494e9213556a1f283a6cf3a0.
* | flatten and flatten! methods for ActiveSupport::DurationIonatan Wiznia2013-10-111-0/+15
| |
* | Merge pull request #11474 from bogdan/time-with-zone-succAndrew White2013-09-221-0/+22
|\ \ | |/ |/| Prevent server blow up when iterating over TimeWithZone Range
| * Disable ability to iterate over a Range of TimeWithZoneBogdan Gusiev2013-07-191-0/+22
| |
* | Merge pull request #12200 from dchelimsky/simplify-duration-inspect-even-moreRafael Mendonça França2013-09-111-0/+3
|\ \ | | | | | | Reduce Duration#inspect to a single series of transformations
| * | Reduce Duration#inspect to a single series of transformationsDavid Chelimsky2013-09-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eliminates need for temp Hash Also added a couple of examples to DurationTest to specify: * duration can be defined with units out of order e.g. 1.month + 1.year + 1.second + 1.day * equality with a Fixnum works regardless of which operand is on which side of the operator
* | | Removed unused modules and classesAnupam Choudhury2013-09-101-7/+0
| | |
* | | Removed unnecessary requireAnupam Choudhury2013-09-101-1/+0
|/ /
* | Skip tests involving $SAFE, it's not supported on Rubinius.Federico Ravasio2013-08-211-0/+2
| |
* | ensure freeze on Thread freezes localsNick Howard2013-08-191-0/+9
| |
* | Add String#remove(pattern) as a short-hand for the common pattern of ↵David Heinemeier Hansson2013-08-131-0/+5
| | | | | | | | String#gsub(pattern, '')
* | 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.