aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
* Remove deprecated methods at `Kernel`.Rafael Mendonça França2015-01-041-47/+0
| | | | `silence_stderr`, `silence_stream`, `capture` and `quietly`.
* Remove deprecated core_ext/big_decimal/yaml_conversions fileRafael Mendonça França2015-01-041-11/+0
|
* Add config to halt callback chain on return falseclaudiob2015-01-021-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This stems from [a comment](rails#17227 (comment)) by @dhh. In summary: * New Rails 5.0 apps will not accept `return false` as a way to halt callback chains, and will not display a deprecation warning. * Existing apps ported to Rails 5.0 will still accept `return false` as a way to halt callback chains, albeit with a deprecation warning. For this purpose, this commit introduces a Rails configuration option: ```ruby config.active_support.halt_callback_chains_on_return_false ``` For new Rails 5.0 apps, this option will be set to `false` by a new initializer `config/initializers/callback_terminator.rb`: ```ruby Rails.application.config.active_support.halt_callback_chains_on_return_false = false ``` For existing apps ported to Rails 5.0, the initializers above will not exist. Even running `rake rails:update` will not create this initializer. Since the default value of `halt_callback_chains_on_return_false` is set to `true`, these apps will still accept `return true` as a way to halt callback chains, displaying a deprecation warning. Developers will be able to switch to the new behavior (and stop the warning) by manually adding the line above to their `config/application.rb`. A gist with the suggested release notes to add to Rails 5.0 after this commit is available at https://gist.github.com/claudiob/614c59409fb7d11f2931
* Throw :abort halts default CallbackChainsclaudiob2015-01-021-5/+34
| | | | | | | | | | | | | | This commit changes arguments and default value of CallbackChain's :terminator option. After this commit, Chains of callbacks defined **without** an explicit `:terminator` option will be halted as soon as a `before_` callback throws `:abort`. Chains of callbacks defined **with** a `:terminator` option will maintain their existing behavior of halting as soon as a `before_` callback matches the terminator's expectation. For instance, ActiveModel's callbacks will still halt the chain when a `before_` callback returns `false`.
* Merge pull request #9065 from atombender/masterRafael Mendonça França2015-01-021-0/+13
|\ | | | | Fix TaggedLogging to allow loggers to be instantiated multiple times without having to share the stack of tags
| * Fix TaggedLogging to allow loggers to be instantiated multiple times without ↵Alexander Staubo2013-01-241-0/+13
| | | | | | | | having to share the stack of tags. This is accomplished by using a unique key for the thread-local tag list. Fixes #9064.
* | Deprecate `MissingSourceFile` in favor of `LoadError`.Rafael Mendonça França2015-01-021-0/+9
| | | | | | | | | | `MissingSourceFile` was just an alias to `LoadError` and was not being raised inside the framework.
* | Merge pull request #8740 from amatsuda/missing_source_fileRafael Mendonça França2015-01-022-26/+2
|\ \ | | | | | | | | | | | | | | | | | | replace use of MissingSourceFile with LoadError Conflicts: activesupport/test/core_ext/load_error_test.rb
| * | replace use of MissingSourceFile with LoadErrorAkira Matsuda2013-01-042-18/+3
| | |
* | | Remove thread variables backportRafael Mendonça França2015-01-021-75/+0
| | | | | | | | | | | | They are already present on Ruby 2.2
* | | Merge pull request #16749 from robin850/rbx-name-errorRafael Mendonça França2015-01-021-0/+2
|\ \ \ | | | | | | | | Rely on NameError#name instead of its error message
| * | | Skip an error message related assertion on RubiniusRobin Dupret2014-10-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Rubinius' error messages don't call `#inspect` on the concerned object while the assertion is here to address a wrong inspection on MRI with time zones so let's keep this test for now on Rubinius.
* | | | Remove conversion code for old Rails cache entryRafael Mendonça França2015-01-011-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was there just to convert entries generated in Rails 4.0.0.beta1 applications to a supported format. It is almost unlikely that any existent application have this cache entry format in their caches at the point that Rails 5 will be released so we don't need this code anymore.
* | | | Check by @v before converting the entry on expired?Rafael Mendonça França2015-01-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We should convert when @v is defined not @value. The test was calling value first that already converts the entry so we are not catching this bug.
* | | | Removed Object#itself as it's implemented in ruby 2.2Cristian Bica2014-12-291-9/+0
| | | |
* | | | Just check if the buffer exists before changing itRafael Mendonça França2014-12-291-5/+1
| | | |
* | | | When trying to access a character on a string buffer object via `:[]`, if ↵Vipul A M2014-12-291-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the object being accessed currently returns `html_safe?` as true, we used to set `@html_safe` variable as true on new object created. When doing something like x = 'Hello'.html_safe x[/a/, 1] would throw an error on ruby 2.2, since when nothign gets matched nil is returned by the code and it tries to set `@html_safe` value to true, which would error since starting 2.2 nil is frozen. This change adds a safety net to avoid setting `@html_safe = true` on frozen objects. Fixes #18235
* | | | Merge pull request #17980 from gsamokovarov/rescuable-case-operatorRafael Mendonça França2014-12-161-2/+27
|\ \ \ \ | | | | | | | | | | Add class level case operator support for error dispatching in Rescuable
| * | | | Add class level case operator support for error dispatching in RescuableGenadi Samokovarov2014-12-101-2/+27
| | | | |
* | | | | Add test for `:skip_after_callbacks_if_terminated`claudiob2014-12-141-15/+33
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `define_callbacks` from `ActiveSupport::Callbacks` accepts the `:skip_after_callbacks_if_terminated` option since #4866 but the option is not tested anywhere. This commit adds tests and fixes documentation for the option, making it clear that halting a callback chain only stops following `before_` and `around_` callbacks by default.
* | | | Remove "rescue" clause around "require 'openssl'"claudiob2014-12-032-22/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some `require 'openssl'` statements were surrounded by `rescue` blocks to deal with Ruby versions that did not support `OpenSSL::Digest::SHA1` or `OpenSSL::PKCS5`. [As @jeremy explains](https://github.com/rails/rails/commit/a6a0904fcb12b876469c48b1c885aadafe9188cf#commitcomment-8826666) in the original commit: > If jruby didn't have jruby-openssl gem, the require wouldn't work. Not sure whether either of these are still relevant today. According to the [release notes for JRuby 1.7.13](http://www.jruby.org/2014/06/24/jruby-1-7-13.html): > jruby-openssl 0.9.5 bundled which means the above `rescue` block is not needed anymore. All the Ruby versions supported by the current version of Rails provide those OpenSSL libraries, so Travis CI should also be happy by removing the `rescue` blocks. --- Just to confirm, with JRuby: $ ruby --version #=> jruby 1.7.16.1 (1.9.3p392) 2014-10-28 4e93f31 on Java HotSpot(TM) 64-Bit Server VM 1.8.0_20-b26 +jit [darwin-x86_64] $ irb irb(main):001:0> require 'openssl' #=> true irb(main):002:0> OpenSSL::Digest::SHA1 #=> OpenSSL::Digest::SHA1 irb(main):003:0> OpenSSL::PKCS5 # => OpenSSL::PKCS5 And with Ruby 2.1: $ ruby --version #=> ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0] $ irb irb(main):001:0> require 'openssl' #=> true irb(main):002:0> OpenSSL::Digest::SHA1 #=> OpenSSL::Digest::SHA1 irb(main):003:0> OpenSSL::PKCS5 #=> OpenSSL::PKCS5
* | | | Add `#verified` and `#valid_message?` to MessageVerifierLogan Leger2014-12-011-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a `#verified` method to `ActiveSupport::MessageVerifier` which will return either `false` when it encounters an error or the message. `#verify` continues to raise an `InvalidSignature` exception on error. This commit also adds a convenience boolean method on `MessageVerifier` as a way to check if a message is valid without performing the decoding.
* | | | Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-297-15/+11
| | | |
* | | | dependencies.rb: keep the decorated #load and #require private [closes #17553]Xavier Noria2014-11-101-0/+12
| | | |
* | | | Merge pull request #17493 from petewest/duration-comparableAaron Patterson2014-11-071-0/+12
|\ \ \ \ | | | | | | | | | | Delegate comparison operator to value
| * | | | Delegate comparison operator to valuePeter West2014-11-031-0/+12
| | | | |
* | | | | Fix grouped expression warning - `warning: (...) interpreted as grouped ↵Vipul A M2014-11-061-2/+2
| | | | | | | | | | | | | | | | | | | | expression`
* | | | | added example of squish!, remove, test case for multiple occurrence ofRishi Jain2014-11-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pattern removal added example for string#remove and test case for remove of multiple occurence of pattern removed extra whitespaces
* | | | | Merge pull request #15956 from zuhao/refactor_activesupport_dependencies_testYves Senn2014-11-051-101/+124
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Cleanup loaded features and constants after dependency tests.
| * | | | | Cleanup loaded features and constants after dependency tests.Zuhao Wan2014-06-281-100/+116
| | | | | |
* | | | | | tests, add note about the usage of a specific timezone. Closes #17448.Yves Senn2014-11-051-1/+1
| | | | | |
* | | | | | Merge pull request #17515 from prathamesh-sonpatki/rm-requireYves Senn2014-11-051-1/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | Removed the unused require of proxy_object
| * | | | | | Removed the unused require of proxy_object and test related to itPrathamesh Sonpatki2014-11-051-1/+0
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | - Reference : https://github.com/rails/rails/pull/17493#issuecomment-61739359 - Duration stopped inheriting from ProxyObject in https://github.com/rails/rails/pull/16574
* / | | | | Fix broken string_ext_test due to change in timezonePrathamesh Sonpatki2014-11-051-1/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | - Russian time was changed to UTC+3 from UTC+4 recently. This broke the string_to_ext test.
* | | | | Merge pull request #17383 from rwz/string-removeRafael Mendonça França2014-11-031-2/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make `String#remove` and `String#remove!` accept multiple arguments Conflicts: activesupport/CHANGELOG.md
| * | | | | Make `String#remove` and `String#remove!` accept multiple argumentsPavel Pravosud2014-10-251-2/+12
| | | | | |
* | | | | | Remove redundant `to_s` in interpolationclaudiob2014-10-301-1/+1
| | | | | |
* | | | | | Optimize TimeWithZoneTest#strftimePablo Herrero2014-10-271-0/+5
| | | | | |
* | | | | | fixes circularity check in dependenciesXavier Noria2014-10-253-0/+28
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The check for circular loading should depend on a stack of files being loaded at the moment, rather than the collection of loaded files. This showed up indirectly in #16468, where a misspelled helper would incorrectly result in a circularity error message. References #16468
* | | | | Add AS::SecurityUtils.secure_compare for constant time string comparisonGuillermo Iguaran2014-10-231-0/+9
| | | | |
* | | | | Bring try! into parity with try.Ari Pollak2014-10-221-4/+8
| | | | | | | | | | | | | | | | | | | | Based on commit 5e51bdda.
* | | | | Add necessary 'require reverse_merge' to HAWI.rbclaudiob2014-10-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hashes with indifferent access should support `reverse_merge` out-of-the-box but they don't; for instance the following code fails: ```ruby require 'active_support' require 'active_support/hash_with_indifferent_access' hash = HashWithIndifferentAccess.new key: :old_value hash.reverse_merge key: :new_value ``` This PR fixes the case above by simply requiring `active_support/core_ext/hash/reverse_merge` in `hash_with_indifferent_access.rb` and adding a test that confirms the fix. --- Here are more details about the bugfix. Currently, `reverse_merge` is [defined in HashWithIndifferentAccess](https://github.com/rails/rails/blob/4e8ea13ba1a0870905a46fac5f232d9f41eef8a4/activesupport/lib/active_support/hash_with_indifferent_access.rb#L208) by invoking `super`, that is by invoking `Hash#reverse_merge`: ```ruby def reverse_merge(other_hash) super(self.class.new_from_hash_copying_default(other_hash)) end ``` However, Ruby's `Hash` does not have the `reverse_merge` by default: it must be added by ActiveSupport, and that requires the following line of code to be present: ```ruby require 'active_support/core_ext/hash/reverse_merge' ```
* | | | | Replace Enumerable#reverse.each with Enumerable#reverse_eachErik Michaels-Ober2014-10-131-2/+2
| | | | |
* | | | | fix autoload testsfillman2014-10-051-6/+17
| | | | |
* | | | | Fix underscore inflector handling of adjacent acronymsJames Le Cuirot2014-10-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I suspect that positive lookbehind would have been used in the original implementation had it been available in supported Ruby versions at the time. Now that Rails requires Ruby 1.9.2 or above, this is no longer an issue. This fixes #14146 for acronyms such as APIRESTful. This technique also addresses namespaced acronyms that are not entirely uppercased. This was broken when the commit was originally written but has since been fixed in ccbb481. The latter does not deal with adjacent acronyms so this commit wins.
* | | | | define hash on durationlsylvester2014-10-031-0/+4
| | | | |
* | | | | Use Hash#each_key instead of Hash#keys.eachErik Michaels-Ober2014-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hash#keys.each allocates an array of keys; Hash#each_key iterates through the keys without allocating a new array. This is the reason why Hash#each_key exists.
* | | | | Fix another false assertionsYuki Nishijima2014-09-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * The assertions in AS::Duration don't actually assert. * The assertion in Railtie will pass even when `eager_load_namespaces` doesn't include `AppTemplate::Application` if `Rails.application` is truthy. For more details, see here: * https://github.com/rails/rails/pull/16998 * https://github.com/rails/rails/pull/17000
* | | | | Delegation works with reserved words passed to `:to`Agis-2014-09-191-0/+11
| | | | | | | | | | | | | | | | | | | | Fixes #16956.
* | | | | Merge pull request #11794 from yoazt/duration-eqlRafael Mendonça França2014-09-171-0/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added method `#eql?` to `ActiveSupport::Duration`, in addition to `#==`. Conflicts: activesupport/CHANGELOG.md activesupport/lib/active_support/duration.rb activesupport/test/core_ext/duration_test.rb