aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | [ci skip] document EventedFileUpdateCheckerschneems2016-06-061-0/+28
| | | | |
| * | | | EventedFileUpdateChecker boots once per processschneems2016-06-061-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need one file checker booted per process as talked about in #24990. Before we do a check to see if any updates have been registered by the listener we first check to make sure that the current process has booted a listener. We are intentionally not starting a listener when the checker is created. This way we can avoid #25259 in which puma warns of multiple threads created before fork. As written the listener for each process will be invoked by the `ActionDispatch::Executor` middleware when the `updated?` method is called. This is the first middleware on the stack and will be invoked before application code is read into memory. The downside of this approach is that the API is a little less obvious. I.e. that you have to call `updated?` to get the listener to start is not intuitive. We could make `boot!` not private if we want to make the API a little nicer. Alternatively we could boot when the checker is initialized however this reintroduces the puma threads warning, and also means that in cases of `rails server` or when using `preload!` that we have extra threads notifying of changes on a process that we don't care about. [close #24990] [close #25259]
* | | | | Change AS::Callback to ActiveSupport::Callbacks in doc [ci skip]Alex Kitchens2016-06-141-1/+1
| | | | |
* | | | | Fix missing requires for object/blankRafael Mendonça França2016-06-131-0/+2
| | | | |
* | | | | Remove deprecated arguments in assert_nothing_raisedRafael Mendonça França2016-06-131-6/+1
| | | | |
* | | | | Remove an unused require in ActiveSupport::TestCaseGenadi Samokovarov2016-06-131-2/+0
| | | | | | | | | | | | | | | | | | | | We used to have `assert_blank` and `assert_presence`. [ci skip]
* | | | | Remove `_run_class_setup`Jon Moss2016-06-101-11/+0
| | | | | | | | | | | | | | | | | | | | Should have been removed by 3073c531983de243219fb55be93fbcebfdd9c44e.
* | | | | Make sure the yielded variable is the loggerRafael Mendonça França2016-06-101-2/+2
| | | | |
* | | | | Merge pull request #25341 from kmcphillips/masterRafael França2016-06-101-0/+18
|\ \ \ \ \ | | | | | | | | | | | | Broadcast #silence on ActiveSupport::Logger
| * | | | | Broadcast #silence on logger. Rewrite tests.Kevin McPhillips2016-06-091-0/+18
| | |_|_|/ | |/| | |
* | | | | Merge pull request #25352 from Shopify/optimized-delegateRafael França2016-06-101-2/+2
|\ \ \ \ \ | | | | | | | | | | | | Replace Kernel#caller by the faster Kernel#caller_locations
| * | | | | Replace Kernel#caller by the faster Kernel#caller_locationsJean Boussier2016-06-101-2/+2
| |/ / / /
* / / / / [ci skip] `define_model_callbacks` only exist in active model:Edouard CHIN2016-06-101-1/+6
|/ / / / | | | | | | | | | | | | - Also added a note when calling multiple time `define_callbacks`
* | | | Merge pull request #25265 from opti/improve/hash_compactKasper Timm Hansen2016-06-071-5/+8
|\ \ \ \ | | | | | | | | | | Improve Hash#compact! documentation and tests
| * | | | Improve Hash#compact! documentation and testsIgor Pstyga2016-06-031-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it clear what should be returned when no changes were made to the hash. { c: true }.compact! # => nil
* | | | | Change doc for race_condition_ttl option of ↵Dimitris Zorbas2016-06-061-2/+2
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActiveSupport::Cache::Store#fetch [ci skip] The related option of this method, `expires_in` is documented as expecting an `ActiveSupport::Duration` value. To minimize any sort of ambiguity between duration options, this change also documents `race_condition_ttl` accepting `ActiveSupport::Duration`.
* | | | Merge pull request #25263 from abhishekjain16/doc_accessor_threadEileen M. Uchitelle2016-06-031-2/+2
|\ \ \ \ | | | | | | | | | | [skip ci] Fix grammar
| * | | | [skip ci] Fix grammarAbhishek Jain2016-06-031-2/+2
| |/ / /
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2016-06-031-1/+1
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Conflicts: guides/source/action_cable_overview.md
| * | | `behaviour` --> `behavior`Jon Moss2016-05-271-1/+1
| | | | | | | | | | | | | | | | http://edgeguides.rubyonrails.org/api_documentation_guidelines.html#english
* | | | Don't blank pad day of the month when formatting datesSean Griffin2016-06-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are currently using `%e` which adds a space before the result if the digit is a single number. This leads to strings like `February 2, 2016` which is undesireable. I've opted to replace with 0 padding instead of removing the padding entirely, to preserve compatibility for those relying on the fact that the width is constant, and to be consistent with time formatting. Fixes #25251.
* | | | use OpenSSL::Cipher instead of deprecated OpenSSL::Cipher::Cipher for cipher ↵Vipul A M2016-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | creation. Based on https://github.com/rails/rails/pull/25192#discussion_r65018222 and http://ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/Cipher/Cipher.html
* | | | Normalize whitespace for Hash#compact documentation [ci skip]Mark Lee2016-05-241-6/+6
| | | | | | | | | | | | | | | | This is a similar change that occurred for Hash#except in #21087.
* | | | Don't delegate to private methods of the targerRafael Mendonça França2016-05-241-1/+5
| | | | | | | | | | | | | | | | And make sure that it doesn't even try to call the method in the target.
* | | | Merge pull request #23930 from gsamokovarov/module-delegate-missing-toRafael Mendonça França2016-05-241-1/+60
|\ \ \ \ | | | | | | | | | | | | | | | Introduce Module#delegate_missing_to
| * | | | Introduce Module#delegate_missing_toGenadi Samokovarov2016-02-271-1/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building decorators, a common pattern may emerge: class Partition def initialize(first_event) @events = [ first_event ] end def people if @events.first.detail.people.any? @events.collect { |e| Array(e.detail.people) }.flatten.uniq else @events.collect(&:creator).uniq end end private def respond_to_missing?(name, include_private = false) @events.respond_to?(name, include_private) end def method_missing(method, *args, &block) @events.send(method, *args, &block) end end With `Module#delegate_missing_to`, the above is condensed to: class Partition delegate_missing_to :@events def initialize(first_event) @events = [ first_event ] end def people if @events.first.detail.people.any? @events.collect { |e| Array(e.detail.people) }.flatten.uniq else @events.collect(&:creator).uniq end end end David suggested it in #23824.
* | | | | Revert "Add default exceptions affected by suppress (#25099)"Rafael Mendonça França2016-05-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 28492204ee59a5aca2f3bc7b161d45724552686d. Reason: `suppress` without an argument doesn't actually tell what is supressing. Also, it can be confused with ActiveRecord::Base#suppress.
* | | | | Add default exceptions affected by suppress (#25099)Alexey Zapparov2016-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add default exceptions affected by suppress suppress { do_something_that_might_fail } # instead of begin do_something_that_might_fail rescue end # or do_something_that_might_fail rescue nil * Do not add default exceptions list constant [Rafael Mendonça França + Alexey Zapparov]
* | | | | Fix Hash#from_xml with frozen strings (#24718)Marek Kirejczyk2016-05-211-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Hash#from_xml works with frozen strings Fixes #24647 * Fix rexml engine test [Marek Kirejczyk + Rafael Mendonça França]
* | | | | Support for unified Integer class in Ruby 2.4+Jeremy Daer2016-05-187-23/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ruby 2.4 unifies Fixnum and Bignum into Integer: https://bugs.ruby-lang.org/issues/12005 * Forward compat with new unified Integer class in Ruby 2.4+. * Backward compat with separate Fixnum/Bignum in Ruby 2.2 & 2.3. * Drops needless Fixnum distinction in docs, preferring Integer.
* | | | | Merge pull request #24930 from henrik/date-all-daySean Griffin2016-05-162-5/+5
|\ \ \ \ \ | | | | | | | | | | | | Introduce Date#all_day
| * | | | | Introduce Date#all_dayHenrik Nyh2016-05-112-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Useful for queries like: Item.where(created_at: Date.current.all_day) There was already a Time#all_day with the same behaviour, but for queries like the above, Date is more convenient.
* | | | | | Action Mailer: Declarative exception handling with `rescue_from`.Jeremy Daer2016-05-151-53/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follows the same pattern as controllers and jobs. Exceptions raised in delivery jobs (enqueued by `#deliver_later`) are also delegated to the mailer's rescue_from handlers, so you can handle the DeserializationError raised by delivery jobs: ```ruby class MyMailer < ApplicationMailer rescue_from ActiveJob::DeserializationError do … end ``` ActiveSupport::Rescuable polish: * Add the `rescue_with_handler` class method so exceptions may be handled at the class level without requiring an instance. * Rationalize `exception.cause` handling. If no handler matches the exception, fall back to the handler that matches its cause. * Handle exceptions raised elsewhere. Pass `object: …` to execute the `rescue_from` handler (e.g. a method call or a block to instance_exec) against a different object. Defaults to `self`.
* | | | | | Remove unnecessary constantYosuke Kabuto2016-05-151-4/+2
| |_|/ / / |/| | | |
* | | | | Perfomance fix for Enumerable#index_bylvl0nax2016-05-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculating ------------------------------------- before 34.731k i/100ms after 48.206k i/100ms ------------------------------------------------- before 508.451k (± 1.2%) i/s - 2.570M after 720.068k (± 0.9%) i/s - 3.615M Comparison: after: 720067.6 i/s before: 508451.1 i/s - 1.42x slower
* | | | | - Added clarity to documentation of ArrayInquirer#any? [ci skip]Mohit Natoo2016-05-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added clarity to documentation of ArrayInquirer#any? [ci skip] - Added clarity to documentation of ArrayInquirer#any? [ci skip]
* | | | | Bump the deprecation horizonRafael Mendonça França2016-05-101-1/+1
| | | | |
* | | | | Start Rails 5.1 development :tada:Rafael Mendonça França2016-05-101-2/+2
|/ / / /
* | | | Use original `Array#sum` to speed up calculatingyui-knk2016-05-071-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use original `Array#sum` when calculating Numeric sum. This commit is related #24804 issue. Issue #24804 reports `Array#sum` becomes much slower when ActiveSupport is included. This commit tries to use original method as far as possible. ```shell $ cat array_sum.rb class Array alias core_sum sum end require 'benchmark/ips' require 'active_support/core_ext/enumerable' ary = [1.0] * 1_000_000 Benchmark.ips do |x| x.report("core sum") { ary.core_sum } x.report("AS's sum") { ary.sum } x.compare! end $ bundle exec ruby -v -I lib array_sum.rb ruby 2.4.0dev (2016-05-01 master 54867) [x86_64-darwin14] Calculating ------------------------------------- core sum 4.000 i/100ms AS's sum 5.000 i/100ms ------------------------------------------------- core sum 50.492 (± 7.9%) i/s - 252.000 AS's sum 50.116 (± 6.0%) i/s - 250.000 Comparison: core sum: 50.5 i/s AS's sum: 50.1 i/s - 1.01x slower ``` Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* | | | Preparing for 5.0.0.rc1 releaseRafael Mendonça França2016-05-061-1/+1
| | | |
* | | | Array#split refactoring for case with blocklvl0nax2016-05-061-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculating ------------------------------------- before 26.319k i/100ms after 29.414k i/100ms ------------------------------------------------- before 350.623k (± 1.6%) i/s - 1.763M after 416.227k (± 1.4%) i/s - 2.088M Comparison: after: 416226.8 i/s before: 350622.8 i/s - 1.19x slower
* | | | Fix initial value effects for sum along to ruby 2.4Kenta Murata2016-04-301-5/+7
| | | | | | | | | | | | | | | | Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* | | | restores the regexp used in String#blank?Xavier Noria2016-04-291-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit undoes 54243fe. Reason: Further investigation has shown the benefit is not so clear generally speaking. There is a long discussion and several benchmarks in the PR #24658 if you are interested in the details.
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2016-04-291-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: guides/source/configuring.md
| * | | | [ci skip] Aline results of code examples in commentsyui-knk2016-04-201-2/+2
| | | | |
* | | | | Change 1.week to create 1 week durations instead of 7 days durations.Andrey Novikov2016-04-282-9/+13
| | | | | | | | | | | | | | | | | | | | This is just to remove astonishment from getting `3600 seconds` from typing `1.hour`.
* | | | | Prep Rails 5 beta 4eileencodes2016-04-271-1/+1
| | | | |
* | | | | Revert "Change 1.week to create 1 week durations instead of 7 days durations."Jeremy Daer2016-04-272-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression: adding minutes/hours to a time would change its time zone This reverts commit 1bf9fe75a6473cb7501cae544cab772713e68cef.
* | | | | Merge pull request #24723 from lvl0nax/array_split_fixJeremy Daer2016-04-261-10/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Little perfomance fix for Array#split.
| * | | | | Little perfomance fix for Array#split.lvl0nax2016-04-261-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculating ------------------------------------- before 40.770k i/100ms after 58.464k i/100ms ------------------------------------------------- before 629.568k (± 5.0%) i/s - 3.180M after 1.159M (± 4.5%) i/s - 5.788M