aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
* Ruby 2.4: compat with new Array#sumJeremy Daer2016-04-181-3/+21
| | | | | | | | | | | | | | | | | | | | | Ruby 2.4 introduces `Array#sum`, but it only supports numeric elements, breaking our `Enumerable#sum` which supports arbitrary `Object#+`. To fix, override `Array#sum` with our compatible implementation. Native Ruby 2.4: %w[ a b ].sum # => TypeError: String can't be coerced into Fixnum With `Enumerable#sum` shim: %w[ a b ].sum # => 'ab' We tried shimming the fast path and falling back to the compatible path if it fails, but that ends up slower even in simple causes due to the cost of exception handling. Our only choice is to override the native `Array#sum` with our `Enumerable#sum`.
* `ActiveSupport::Duration` supports ISO8601 formatting and parsing.Arnau Siches, Andrey Novikov2016-04-181-0/+85
| | | | | | | | | | | | | | ```ruby ActiveSupport::Duration.parse('P3Y6M4DT12H30M5S') (3.years + 3.days).iso8601 ``` Inspired by Arnau Siches' [ISO8601 gem](https://github.com/arnau/ISO8601/) and rewritten by Andrey Novikov with suggestions from Andrew White. Test data from the ISO8601 gem redistributed under MIT license. (Will be used to support the PostgreSQL interval data type.)
* Merge pull request #24577 from mechanicles/fix-fetch-cache-missJeremy Daer2016-04-181-0/+14
|\ | | | | | | Fix forced cache miss for fetch when called without a block.
| * Fix forced cache miss for fetch.Santosh Wadghule2016-04-181-0/+14
|/ | | | | | - Raised an argument error if no block is passed to #fetch with 'force: true' option is set. - Added tests for the same.
* Change 1.week to create 1 week durations instead of 7 days durations.Andrey Novikov2016-04-181-2/+3
| | | | This is just to remove astonishment from getting `3600 seconds` from typing `1.hour`.
* Merge pull request #24517 from estolfo/transform-keys-return-type-masterSean Griffin2016-04-151-0/+16
|\ | | | | Restore Hash#transform_keys behavior to always return a Hash instance
| * Restore Hash#transform_keys behavior to always return a Hash instanceEmily2016-04-121-0/+16
| |
* | Remove unused variableRafael Mendonça França2016-04-131-1/+0
| |
* | Handle max_time edge cases for epoch times and add testBlake Mesdag2016-04-121-0/+17
|/
* Fix behavior of JSON encoding for Exceptionnamusyaka2016-04-091-0/+5
|
* Merge pull request #24422 from matthewd/extinguish-executor-exceptionsMatthew Draper2016-04-071-0/+107
|\ | | | | Clean up after a failure in a run callback
| * Directly support stateful executor hooksMatthew Draper2016-04-051-0/+107
| | | | | | | | Also, make sure to call the +complete+ hooks if +run+ fails.
* | Merge pull request #24345 from ↵Rafael França2016-04-051-3/+18
|\ \ | | | | | | | | | | | | mtsmfm/fix-marshal-with-autoloading-for-nested-class Fix marshal with autoloading for nested class/module
| * | Fix marshal with autoloading for nested class/moduleFumiaki MATSUSHIMA2016-03-281-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | #24150 break autoloading for nested class/module. There is test for nested class but it doesn't work correctly. Following code will autoload `ClassFolder::ClassFolderSubclass` before `Marshal.load`: `assert_kind_of ClassFolder::ClassFolderSubclass, Marshal.load(dumped)`
* | | Merge pull request #24401 from pan/number-to-phoneRafael Mendonça França2016-04-051-0/+2
|\ \ \ | |_|/ |/| | | | | `number_to_phone` formats number with regexp
| * | `number_to_phone` formats number with regexpPan GaoYong2016-04-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, this method formats US number. This commit extends its functionality to format number for other countries with a custom regular expression. number_to_phone(18812345678, pattern: /(\d{3})(\d{4})(\d{4})/) # => 188-1234-5678 The output phone number is divided into three groups, so the regexp should also match three groups of numbers.
* | | Match `String#to_time`'s behaviour to rubySiim Liiser2016-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Previously `String#to_time` returned the midnight of the current date in some cases where there was no relavant information in the string. Now the method returns `nil` instead in those cases. Fixes #22958.
* | | Call super instead of returning nil for DateTime#<=>Andrew White2016-04-031-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | The native DateTime#<=> implementation can be used to compare instances with numeric values being considered as astronomical julian day numbers so we should call that instead of returning nil. Fixes #24228.
* | | Use block form of Dir.mktmpdir to ensure tidy upAndrew White2016-04-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | If the test run was interrupted in some way then it left temporary directories inside of test causing the git worktree to be in a dirty state. By overriding the run method we can use the block form of Dir.mktmpdir to ensure that the directories are cleaned up no matter which way the test run is exited.
* | | Prevent void context warningsAndrew White2016-04-032-2/+2
|/ / | | | | | | | | | | The constant reference A::B used to trigger autoloading causes a warning to be logged about the possible use of :: in a void context so assign it to the _ variable to prevent the warnings from being triggered.
* | Fix method String#upcase_firstbogdanvlviv2016-03-311-0/+8
| |
* | Merge pull request #23895 from glaucocustodio/add_upcase_first_methodRafael Mendonça França2016-03-301-0/+4
|\ \ | |/ |/| | | Add upcase_first method
| * Add upcase_first methodGlauco Custódio2016-02-251-0/+4
| |
* | tests the raising/throwing discards the watching stackXavier Noria2016-03-163-4/+8
| |
* | s/removes/discards/Xavier Noria2016-03-161-2/+2
| |
* | adds coverage for raising while autoloadingXavier Noria2016-03-162-0/+12
| |
* | adds coverage for throwing while autoloadingXavier Noria2016-03-152-0/+14
| | | | | | | | References #24205.
* | Merge pull request #24150 from exviva/unmarshal-infinite-retryXavier Noria2016-03-111-0/+11
|\ \ | | | | | | Prevent `Marshal.load` from looping infinitely
| * | Prevent `Marshal.load` from looping infinitelyOlek Janiszewski2016-03-111-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a bug in `Marshal.load` that caused it to loop indefinitely when trying to autoload a constant that resolved to a different name. This could occur when marshalling an ActiveRecord 4.0 object (e.g. into memcached) and then trying to unmarshal it with Rails 4.2. The marshalled payload contains a reference to `ActiveRecord::ConnectionAdapters::Mysql2Adapter::Column`, which in Rails 4.2 resolves to `ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::Column`.
* | | Fix `thread_mattr_accessor` thread-local variable namingMichael Ryan2016-03-111-0/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implentation of `thread_mattr_accessor` is setting differently-named thread variables when defining class and instance writer methods, so the method isn't working as documented: Account.user = "DHH" Account.user # => "DHH" Account.new.user # => nil a = Account.new a.user = "ABC" # => "ABC" a.class.user # => "DHH" At this point `:attr_Account_user` and `:attr_Class_user` thread-local variables have been created. Modify the reader and writer methods to use the class name instead of 'Class'.
* | Merge pull request #23932 from arthurnn/arthurnn/remove_load_pathsArthur Nogueira Neves2016-03-011-7/+0
|\ \ | | | | | | Remove load_paths file
| * | Remove load_paths fileArthur Neves2016-02-271-7/+0
| |/
* | Remove duplicated `test_` prefix [ci skip]Ryuta Kamizono2016-03-021-1/+1
| |
* | Merge pull request #23936 from yui-knk/local_constants_to_be_publicRafael Mendonça França2016-03-011-1/+7
|\ \ | | | | | | | | | Deprecate `Module.local_constants`
| * | Deprecate `Module.local_constants`yui-knk2016-03-011-1/+7
| |/ | | | | | | | | After Ruby 1.9, we can easily get the constants that have been defined locally by `Module.constants(false)`.
* / Publish AS::Executor and AS::Reloader APIsMatthew Draper2016-03-022-0/+161
|/ | | | | | These should allow external code to run blocks of user code to do "work", at a similar unit size to a web request, without needing to get intimate with ActionDipatch.
* Merge pull request #23616 from piotrj/issue_23609_logger_broadcast_silencingRafael Mendonça França2016-02-241-0/+44
|\ | | | | | | Fix logger silencing for broadcasted loggers
| * Fix logger silencing for broadcasted loggersPiotr Jakubowski2016-02-111-0/+44
| | | | | | | | | | | | | | | | | | | | | | Fix #23609 Commit 629efb6 introduced thread safety to logger silencing but it didn't take into account the fact that the logger can be extended with broadcasting to other logger. This commit introduces local_level to broadcasting Module which enables broadcasted loggers to be properly silenced.
* | remove args from assert_nothing_raised in testsTara Scherner de la Fuente2016-02-223-4/+4
| |
* | Merge pull request #23776 from chi6rag/masterSantiago Pastorino2016-02-211-0/+4
|\ \ | | | | | | Adding test to verify the last week when the year is leap
| * | Adding test to verify the last week when the year is leapChirag Aggarwal2016-02-201-0/+4
| | | | | | | | | | | | Fixing failing specification for verifying the last week when the year is leap
* | | Merge pull request #23695 from kaspth/remove-automatic-collection-cachingKasper Timm Hansen2016-02-201-9/+0
|\ \ \ | | | | | | | | Make collection caching explicit.
| * | | Revert "Instrument read_multi".Kasper Timm Hansen2016-02-201-9/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reevaluating the log output generated from this instrumentation, we've found that it wasn't all that useful in practice. ``` Caches multi read: - views/david/2/4184ab71db6849621a4d8820fcd2c0ad - views/david/2/4184ab71db6849621a4d8820fcd2c0ad - views/david/3/4184ab71db6849621a4d8820fcd2c0ad - views/david/3/4184ab71db6849621a4d8820fcd2c0ad ``` If rendering many templates the output is inscrutable, and it's impossible to see how many cache misses there were. Revert ca6aba7f30 and implement a better way later.
* | | Make benchmark('something', silence: true) actually workDavid Heinemeier Hansson2016-02-201-0/+14
| | |
* | | Dependencies clean upSruli Rapps2016-02-191-10/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleans up four items I came across in ActiveSupport::Dependencies: - DependenciesTest# test_dependency_which_raises_exception_isnt_added_to_loaded_set: Fixes current implementation which will pass no matter what since the filepath is never added to "loaded" or "history" without being expanded first. - Remove DependenciesTest#test_unhook. Seems leftover from when alias_method_chain was used in Loadable and ModuleConstMissing. The test will always pass since Module never responds to those methods - WatchStack#new_constants documentation: update self to @stack. Looks like self was leftover from when WatchStack inherited from Hash - Remove ActiveSupport namespace from call to Dependencies.constant_watch_stack.watching? since the namespace is not needed, Dependencies is called two other times in the same method without it (even on the same line) and it brings the line to within 80 characters
* | Add `#on_weekday?` method to `Date`, `Time`, and `DateTime`.Vipul A M2016-02-151-0/+10
| |
* | Merge pull request #23596 from afn/issue-23058Aaron Patterson2016-02-101-2/+2
|\ \ | | | | | | Converting backtrace to strings before calling set_backtrace
| * | Converting backtrace to strings before calling set_backtraceTony Novak2016-02-101-2/+2
| | | | | | | | | | | | Fixes #23058
* | | rename to 'second_to_last' and 'third_to_last'Brian Christian2016-02-101-2/+2
| | |
* | | allow Array.penultimate and Array.antepenultiate access methodsBrian Christian2016-02-091-0/+2
|/ /