aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
* Introduce ↵Vishal Telangre2019-05-101-1/+68
| | | | | | | | | | | | | | | | | | | | 'ActiveSupport::Notifications::Fanout::Subscribers::MonotonicTimed' and 'ActiveSupport::Notifications::monotonic_subscribe' Also, change the signature of ‘ActiveSupport::Notifications::Fanout#subscribe’ to accept optional ‘monotonic’ boolean argument. Then initialize either a ‘Timed’ or ‘MonotonicTimed’ subscriber based on the value of ‘monotonic’ parameter. Introduce ‘ActiveSupport::Notifications::monotonic_subscribe’ method Also, provision ‘ActiveSupport::Notifications::subscribed’ to optionally accept ‘monotonic’ boolean argument. Update documentation for ActiveSupport::Notifications Add tests Update guides documentation under the 'Active Support Instrumentation' chapter Incorporate feedback: use optional keyword argument to specify optional 'monotonic' option to 'subscribed' method Fix a typo
* Merge pull request #34642 from ↵Rafael França2019-05-011-0/+28
|\ | | | | | | | | azimux/improve-hwia-initialize-by-skipping-to_h-if-already-a-hash HashWithIndifferentAccess#initialize performance improvement
| * HashWithIndifferentAccess#initialize performance improvementMiles Georgi2018-12-061-0/+28
| | | | | | | | | | | | | | | | | | Rails 4 -> Rails 5 introduced a #to_hash call in HashWithIndifferentAccess#initialize to guarantee access to the #default and #default_proc methods. This can be a very expensive operation for very large HashWithIndifferentAccess objects. This commit bypasses this #to_hash call if it is already a Hash.
* | revert changes to monotonic timesKevin Solorio2019-04-301-4/+3
| | | | | | | | | | | | | | | | | | | | The change to monotonic times causes failures for applications where the subscribed block is expecting Time objects as described in this issue: https://github.com/rails/rails/issues/36145 The original PR (https://github.com/rails/rails/pull/35984) was concerned with errors on the cpu_time. Test was edited to reflect changes to initializer using 0 values instead of nil
* | Frozen truncate (#36109)Jordan Thomas2019-04-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add test asserting truncate returns unfrozen string * Ensure strings returned from truncate are not frozen This fixes an issue where strings too short to be truncated were returned unfrozen, where as long-enough strings were returned frozen. Now retuned strings will not be frozen whether or not the string returned was shortened. * Update changelog w/ new truncate behavior description [Jordan Thomas + Rafael Mendonça França]
* | Merge pull request #36037 from kamipo/deprecate_methodsRyuta Kamizono2019-04-191-8/+0
|\ \ | | | | | | Refactor `ActiveSupport::Deprecation.deprecate_methods` not to expose internal methods
| * | Refactor `ActiveSupport::Deprecation.deprecate_methods` not to expose ↵Ryuta Kamizono2019-04-191-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | internal methods In #33325, `deprecate_methods` is replaced from `prepend` to completely emurated `alias_method_chain`, it exposed two internal methods `xxx_with_deprecation` and `xxx_without_deprecation`. After that, #34648 restored the `prepend` implementation, which doesn't expose any internal methods, so we no longer be able to ensure to always expose that internal methods. As I said at https://github.com/rails/rails/pull/33325#issuecomment-409016725, I think that internal methods exposed is not a specification but a limitation when using `alias_method_chain`, there is no longer a reason to follow that limitation.
* | | Refactor after the most recent code reviewGenadi Samokovarov2019-04-191-6/+0
| | |
* | | Simplify the ActionableError.{dispatch,action} boundriesGenadi Samokovarov2019-04-191-18/+7
| | |
* | | Drop the ambiguous `ActiveSupport::ActionableError#===` checkGenadi Samokovarov2019-04-191-4/+11
| | |
* | | Introduce Actionable ErrorsGenadi Samokovarov2019-04-191-0/+57
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actionable errors let's you dispatch actions from Rails' error pages. This can help you save time if you have a clear action for the resolution of common development errors. The de-facto example are pending migrations. Every time pending migrations are found, a middleware raises an error. With actionable errors, you can run the migrations right from the error page. Other examples include Rails plugins that need to run a rake task to setup themselves. They can now raise actionable errors to run the setup straight from the error pages. Here is how to define an actionable error: ```ruby class PendingMigrationError < MigrationError #:nodoc: include ActiveSupport::ActionableError action "Run pending migrations" do ActiveRecord::Tasks::DatabaseTasks.migrate end end ``` To make an error actionable, include the `ActiveSupport::ActionableError` module and invoke the `action` class macro to define the action. An action needs a name and a procedure to execute. The name is shown as the name of a button on the error pages. Once clicked, it will invoke the given procedure.
* | Preserve html_safe? status on ActiveSupport::SafeBuffer#*r7kamura2019-04-191-0/+8
| |
* | Add test coverageVishal Telangre2019-04-161-4/+13
| |
* | Redis fetch without names returns {}David Verhasselt2019-04-121-0/+6
| | | | | | | | | | | | | | When trying to call mget in Redis without any parameters, a Redis error is thrown. To avoid this, we circumvent Redis entirely when there are no key names given.
* | Merge pull request #35691 from ↵Rafael França2019-04-041-0/+23
|\ \ | | | | | | | | | | | | sushantmittal/add_deattach_from_in_active_support_subscriber Adds 'detach_from' to 'ActiveSupport::Subscriber' to detach a subscriber from a namespace.
| * | Added 'detach_from' to 'ActiveSupport::Subscriber' to detach a subscriber ↵sushant2019-04-041-0/+23
| | | | | | | | | | | | from a namespace.
* | | Output junit format test reportFumiaki MATSUSHIMA2019-04-041-0/+2
| | |
* | | Merge pull request #34405 from shugo/safe_buffer_backref_fixMatthew Draper2019-03-281-0/+18
|\ \ \ | | | | | | | | sub, sub!, gsub, and gsub! should set back references
| * | | sub, sub!, gsub, and gsub! should set back referencesShugo Maeda2018-11-081-0/+18
| | | |
* | | | Fix bug in Range comparisons when comparing to excluded-end RangeOwen Stephens2019-03-281-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: ```ruby (1..10).cover?(1...11) => false ``` After: ```ruby (1..10).cover?(1...11) => true ``` See https://git.io/fjTtz for the commit against Ruby core that added support for Range arguments, with similar handling of this case.
* | | | Use weak references in descendants trackerEdgars Beigarts2019-03-261-0/+9
| | | | | | | | | | | | | | | | It allows anonymous subclasses to be garbage collected.
* | | | Update AS::Notifications::Instrumenter#instrumentAli Ibrahim2019-03-221-0/+6
| | | | | | | | | | | | | | | | | | | | * Update #instrument to make passing a block optional. This will let users leverage #instrument for messaging in addition to instrumentation.
* | | | Fix Time#advance to work with dates before 1001-03-07Andrew White2019-03-181-0/+2
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | In #10634 the behavior of Time#advance was changed to maintain a proleptic gregorian calendar for dates before calendar reform. However it didn't full address dates a long time before calendar reform and they gradually drift away from the proleptic calendar the further you go back in time. Fix this by always converting the date to gregorian before calling advance which sets the reform date to -infinity.
* | | Match evented checker behavior on dir with no extsJohn Hawthorn2019-03-151-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When FileUpdateChecker is passed a directory and given an empty array of extensions to match on, it will match any extension. Previously, EventedFileUpdateChecker would never match any files when given an empty array. This commit makes it EventedFileUpdateChecker match FileUpdateChecker, and watch all extensions when given an empty array.
* | | support slice assignment on SafeBufferRichard Monette2019-03-131-0/+32
| | |
* | | Fix bug with parametrize when `locale` is passedSharang Dashputre2019-03-123-0/+18
| | | | | | | | | | | | Also add tests for parametrize and transliterate
* | | Fix including/excluding flatteningGabriel Sobrinho2019-03-062-0/+3
| | |
* | | Added Array#including, Array#excluding, Enumerable#including, ↵David Heinemeier Hansson2019-03-052-3/+19
| | | | | | | | | | | | Enumerable#excluding
* | | Run activesupport's memcache store tests on Buildkitebogdanvlviv2019-02-263-14/+15
| | | | | | | | | | | | Related to 287920ca7d06c8f51198ec750d65ba703835b257
* | | Use Dir#children and Dir#each_child instead of excluding "." and ".."Ricardo Díaz2019-02-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Both methods were introduced in Ruby 2.5 and fit this use case very nicely: listing a directory's entries excluding the "." and ".." nodes. The private method #exclude_from was removed as it no longer serves its original purpose.
* | | Merge pull request #32861 from zvkemp/asn-unsubscribe-proxyAaron Patterson2019-02-112-0/+52
|\ \ \ | | | | | | | | use ProxyPattern to match for ActiveSupport::Notifications fanout/unsubscribe
| * | | use a proxy matcher for AS::N fanoutzvkemp2019-02-112-0/+52
| | | |
* | | | Fix rubocop violationsyuuji.yaginuma2019-02-091-2/+2
| | | |
* | | | Delete uneeded blank fileGuillermo Iguaran2019-02-081-0/+0
| | | |
* | | | Add 'Hash#deep_transform_values', and 'Hash#deep_transform_values!'Guillermo Iguaran2019-02-082-0/+27
|/ / /
* | | Respect ENV variables when finding DBs etc for the test suiteMatthew Draper2019-02-061-1/+1
| | | | | | | | | | | | | | | If they're not set we'll still fall back to localhost, but this makes it possible to run the tests against a remote Postgres / Redis / whatever.
* | | Merge pull request #35063 from rosa/current-before-reset-callbackRafael Mendonça França2019-02-041-7/+30
|\ \ \ | | | | | | | | | | | | Support before_reset callback in CurrentAttributes
| * | | Support before_reset callback in CurrentAttributesRosa Gutierrez2019-01-301-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful when we need to do some work associated to `Current.reset` but that work depends on the values of the current attributes themselves. This cannot be done in the supported `resets` callback because when the block is executed, CurrentAttributes's instance has already been reset. For symmetry, `after_reset` is defined as alias of `resets`.
* | | | ActiveSupport typo fixes.alkesh262019-02-017-7/+7
|/ / /
* | | Add HashWithIndifferentAccess#assocStefan Schüßler2019-01-301-0/+8
| | |
* | | Remove deprecated `Module#reachable?` methodRafael Mendonça França2019-01-171-51/+0
| | |
* | | Remove deprecated `#acronym_regex` method from `Inflections`Rafael Mendonça França2019-01-171-6/+0
| | |
* | | Fix safe_constantize to not raise a LoadError.Keenan Brock2019-01-092-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Summary There was an issues when using `safe_constantize` on a string that has the wrong case. File `em.rb` defines `EM`. `"Em".safe_constantize` causes a little confusion with the autoloader. The autoloader finds file "em.rb", expecting it to define `Em`, but `Em` is not defined. The autoloader raises a `LoadError`, which is good, But `safe_constantize` is defined to return `nil` when a class is not found. ### Before ``` "Em".safe_constantize LoadError: Unable to autoload constant Em, \ expected rails/activesupport/test/autoloading_fixtures/em.rb to define it ``` ### After ``` "Em".safe_constantize # => nil ```
* | | Enable `Lint/UselessAssignment` cop to avoid unused variable warnings (#34904)Ryuta Kamizono2019-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Enable `Lint/UselessAssignment` cop to avoid unused variable warnings Since we've addressed the warning "assigned but unused variable" frequently. 370537de05092aeea552146b42042833212a1acc 3040446cece8e7a6d9e29219e636e13f180a1e03 5ed618e192e9788094bd92c51255dda1c4fd0eae 76ebafe594fc23abc3764acc7a3758ca473799e5 And also, I've found the unused args in c1b14ad which raises no warnings by the cop, it shows the value of the cop.
* | | Merge pull request #34700 from gmcgibbon/fetch_multi_key_orderRafael França2019-01-071-1/+9
|\ \ \ | | | | | | | | Preserve key order of #fetch_multi
| * | | Preserve key order passed to ActiveSupport::CacheStore#fetch_multiGannon McGibbon2018-12-271-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | fetch_multi(*names) now returns its results in the same order as the `*names` requested, rather than returning cache hits followed by cache misses.
* | | | Tweak test nameGeorge Claghorn2018-12-301-1/+1
| | | |
* | | | Make Active Storage blob keys lowercaseJulik Tarkhanov2018-12-301-0/+20
| | | | | | | | | | | | Accommodate case-insensitive filesystems and database collations.
* | | | No need to handle if FrozenError is availableYasuo Honda2018-12-232-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails 6 requires Ruby 2.5, which introduces `FrozenError` https://docs.ruby-lang.org/en/2.5.0/NEWS.html Related to #31520
* | | | Fixes `warning: mismatched indentations at 'rescue' with 'def' at 15`.utilum2018-12-211-2/+2
| | | | | | | | | | | | | | | | See https://travis-ci.org/rails/rails/jobs/470890129#L2361