aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Fix bug in Range comparisons when comparing to excluded-end RangeOwen Stephens2019-03-281-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Don't encode in secure_compare for speedupBart de Water2019-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | Hex encoding is base 16 which makes the original input twice as big. With this change less time need to be spent in fixed_length_secure_compare.
* | | | | Use weak references in descendants trackerEdgars Beigarts2019-03-261-4/+50
| | | | | | | | | | | | | | | | | | | | It allows anonymous subclasses to be garbage collected.
* | | | | Update CHANGELOG and docsAli Ibrahim2019-03-221-3/+4
| | | | | | | | | | | | | | | | | | | | with change to ActiveSupport::Notifications::Instrumenter#instrument
* | | | | Update AS::Notifications::Instrumenter#instrumentAli Ibrahim2019-03-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * Update #instrument to make passing a block optional. This will let users leverage #instrument for messaging in addition to instrumentation.
* | | | | depend on Zeitwerk 1.4.0Xavier Noria2019-03-191-1/+5
| | | | |
* | | | | Fix Time#advance to work with dates before 1001-03-07Andrew White2019-03-181-2/+1
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge pull request #35634 from sharang-d/update-parameterize-docsRyuta Kamizono2019-03-162-6/+10
|\ \ \ \ | | | | | | | | | | Update docs for 'parameterize()' [ci skip]
| * | | | Update docs for 'parameterize()' [ci skip]Sharang Dashputre2019-03-162-6/+10
| | | | |
* | | | | Engines are reloaded in Zeitwerk mode [closes #35618]Xavier Noria2019-03-151-2/+1
|/ / / /
* | | | Match evented checker behavior on dir with no extsJohn Hawthorn2019-03-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+6
| | | |
* | | | Merge tag 'v6.0.0.beta3'eileencodes2019-03-131-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | v6.0.0.beta3 release
| * | | | Prep releaseeileencodes2019-03-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update RAILS_VERSION * Bundle * rake update_versions * rake changelog:header
* | | | | Change wording of some instances of 'opt out' [ci skip]Sharang Dashputre2019-03-123-13/+13
| | | | |
* | | | | Fix bug with parametrize when `locale` is passedSharang Dashputre2019-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | Also add tests for parametrize and transliterate
* | | | | Add locale option to parameterizeKaan Ozkan2019-03-112-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parameterize is triggering I18n#transliterate. This method already accepts a locale. It would be cleaner if similar to other string inflection methods #parameterize also accepted 'locale' as a parameter.
* | | | | Merge pull request #35121 from utilum/warning_tried_to_create_proc_without_blockKasper Timm Hansen2019-03-101-2/+2
|\ \ \ \ \ | | | | | | | | | | | | Ruby 2.7 warning: creating a Proc without a block
| * | | | | Ruby 2.7 warning: creating a Proc without a blockutilum2019-02-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of [Revision 66772]( https://bugs.ruby-lang.org/projects/ruby-trunk/repository/trunk/revisions/66772) `Proc.new` without giving a block emits `warning: tried to create Proc object without a block`. This commit fixes cases where Rails test suit tickles this warning. See CI logs: https://travis-ci.org/rails/rails/jobs/487205819#L1161-L1190 https://travis-ci.org/rails/rails/jobs/487205821#L1154-1159 https://travis-ci.org/rails/rails/jobs/487205821#L1160-L1169 https://travis-ci.org/rails/rails/jobs/487205821#L1189 https://travis-ci.org/rails/rails/jobs/487254404#L1307-L1416 https://travis-ci.org/rails/rails/jobs/487254405#L1174-L1191
* | | | | | Merge pull request #35536 from alexander-lazarov/improve-cache-docsXavier Noria2019-03-081-5/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Improve wording in cache documentation
| * | | | | | Improve wording in cache documentation [ci skip]Alexander Lazarov2019-03-081-5/+5
| | | | | | |
* | | | | | | Allow autoloader inflectors to be swaped outJean Boussier2019-03-081-4/+0
|/ / / / / /
* | | | | | Fix including/excluding flatteningGabriel Sobrinho2019-03-062-7/+7
| | | | | |
* | | | | | Added Array#including, Array#excluding, Enumerable#including, ↵David Heinemeier Hansson2019-03-052-8/+40
| | | | | | | | | | | | | | | | | | | | | | | | Enumerable#excluding
* | | | | | activesupport: Simplify class_attribute implementation (#35454)Dylan Thacker-Smith2019-03-031-15/+10
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * activesupport(class_attribute): Use redefine_singleton_method * activesupport(class_attribute): Use keyword arguments * activesupport(class_attribute): Avoid unnecessary redefinition for default
* | | | | Preparing for 6.0.0.beta2 releaseRafael Mendonça França2019-02-251-1/+1
| | | | |
* | | | | Let Zeitwerk autoloaders inflect with Active SupportXavier Noria2019-02-231-2/+14
| | | | | | | | | | | | | | | | | | | | [Harry Brundage & Xavier Noria]
* | | | | simplify AS::Dependencies.verbose=Xavier Noria2019-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | Possible thanks to Zeitwerk 1.3.0.
* | | | | let Zeitwerk integration unhook AS::DependenciesXavier Noria2019-02-191-0/+5
| | | | |
* | | | | Implement AS::Dependencies.verbose= compatibility for :zeitwerk modeXavier Noria2019-02-151-0/+5
| | | | |
* | | | | Fix small typo in docs Conrad Beach2019-02-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
* | | | | Replace autoloader accessors with Rails.autoloaders.{main,once}Xavier Noria2019-02-141-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails.autoloader and Rails.once_autoloader was just tentative API good enough for a first patch. Rails.autoloader is singular and does not convey in its name that there is another autoloader. That might be confusing, for example if you set a logger and miss traces. On the other hand, the name `once_autoloader` is very close to being horrible. Rails.autoloaders.main and Rails.autoloaders.once read better for my taste, and have a nice symmetry. Also, both "main" and "once" are four letters long, short and same length. They are tagged as "rails.main" and "rails.once", respectively. References #35235.
* | | | | Use Dir#children and Dir#each_child instead of excluding "." and ".."Ricardo Díaz2019-02-131-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Refactors a loopXavier Noria2019-02-131-6/+8
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I believe the current style does not clearly communicate that we are ignoring non-existing autoload paths altogether. Your eyes may even be looking for an else clause that is easy to miss but that does not exist. With the early `next` and code comment the loop reads better for my taste.
* | | | styleXavier Noria2019-02-121-0/+2
| | | |
* | | | Zeitwerk integrationXavier Noria2019-02-121-0/+71
| | | |
* | | | Merge pull request #32861 from zvkemp/asn-unsubscribe-proxyAaron Patterson2019-02-112-3/+44
|\ \ \ \ | | | | | | | | | | use ProxyPattern to match for ActiveSupport::Notifications fanout/unsubscribe
| * | | | use a proxy matcher for AS::N fanoutzvkemp2019-02-112-3/+44
| | | | |
* | | | | Remove redundant returning `object`Ryuta Kamizono2019-02-091-1/+0
| | | | | | | | | | | | | | | | | | | | `object.transform_values!` returns `object` itself.
* | | | | Use Ruby 2.4+ native transform_values(!)Kasper Timm Hansen2019-02-081-7/+2
| | | | |
* | | | | Add 'Hash#deep_transform_values', and 'Hash#deep_transform_values!'Guillermo Iguaran2019-02-082-0/+53
| | | | |
* | | | | Fix elapsed time calculationsbogdanvlviv2019-02-082-3/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've found a few places in Rails code base where I think it makes sense to calculate elapsed time more precisely by using `Concurrent.monotonic_time`: - Fix calculation of elapsed time in `ActiveSupport::Cache::MemoryStore#prune` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::ConnectionPool::Queue#wait_poll` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::ConnectionPool#attempt_to_checkout_all_existing_connections` - Fix calculation of elapsed time in `ActiveRecord::ConnectionAdapters::Mysql2Adapter#explain` See https://docs.ruby-lang.org/en/2.5.0/Process.html#method-c-clock_gettime https://blog.dnsimple.com/2018/03/elapsed-time-with-ruby-the-right-way Related to 7c4542146f0dde962205e5a90839349631ae60fb
* | | | Merge pull request #35170 from palkan/fix/encrypted-fileRafael França2019-02-051-1/+2
|\ \ \ \ | | | | | | | | | | Add missing `require "tmpdir"` in ActiveSupport::EncryptedFile
| * | | | Add missing `require "tmpdir"` in ActiveSupport::EncryptedFileVladimir Dementyev2019-02-051-1/+2
| | | | |
* | | | | Merge pull request #35063 from rosa/current-before-reset-callbackRafael Mendonça França2019-02-041-0/+6
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | Support before_reset callback in CurrentAttributes
| * | | | Support before_reset callback in CurrentAttributesRosa Gutierrez2019-01-301-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* | | | | Keep cache for strings in notifications/fanoutJohn Hawthorn2019-02-011-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When adding/removing a subscription with a string pattern, it isn't necessary to clear the entire cache, only the cache for the key being added. When adding/removing subscriptions for a regex or to match all events, the full cache is still cleared.
* | | | | Make Notifications::Fanout#listeners_for fasterJohn Hawthorn2019-02-011-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we stored all subscribers in an array, and every time a new message name came in asked each subscriber if they responded to the message. This commit changes Fanout to hash subscribers with a String pattern by their pattern. This way we can look them up directly and only do the O(N) scan over the non-string (Regex or any) patterns.
* | | | | Remove the Kernel#` override that turns ENOENT into nilAkinori MUSHA2019-01-312-14/+0
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActiveSupport overrides `` Kernel#` `` so that it would not raise `Errno::ENOENT` but return `nil` instead (due to the last statement `STDERR.puts` returning nil) if a given command were not found. Because of this, you cannot safely say somthing like `` `command`.chomp `` when ActiveSupport is loaded. It turns out that this is an outdated monkey patch for Windows platforms to emulate Unix behavior on an ancient version of Ruby, and it should be removed by now.
* | / / Add HashWithIndifferentAccess#assocStefan Schüßler2019-01-301-0/+13
| |/ / |/| |