aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
Commit message (Collapse)AuthorAgeFilesLines
* 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-102-4/+6
|
* Merge pull request #25341 from kmcphillips/masterRafael França2016-06-103-34/+124
|\ | | | | Broadcast #silence on ActiveSupport::Logger
| * Be explicit about what Logger class is expectedKevin McPhillips2016-06-091-3/+3
| |
| * Broadcast #silence on logger. Rewrite tests.Kevin McPhillips2016-06-092-31/+121
| |
* | 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`
* existant => existentAbhishek Jain2016-06-091-1/+1
|
* Merge pull request #25265 from opti/improve/hash_compactKasper Timm Hansen2016-06-072-5/+16
|\ | | | | Improve Hash#compact! documentation and tests
| * Improve Hash#compact! documentation and testsIgor Pstyga2016-06-032-5/+16
| | | | | | | | | | | | | | 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-023-3/+21
| | | | | | | | | | | | | | | | | | | | | | 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
* | Add test for `delegate_missing_to` where method doesn't existJon Moss2016-05-261-0/+8
| |
* | Add tests for keyword arg to: for Module#delegateYosuke Kabuto2016-05-251-0/+15
| |
* | 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-242-1/+19
| | | | | | | | And make sure that it doesn't even try to call the method in the target.
* | Merge pull request #25119 from javan/actioncable/blade-buildRafael França2016-05-241-1/+0
|\ \ | | | | | | Build action_cable.js with Blade
| * | Remove package:clean taskJavan Makhmali2016-05-241-1/+0
| | | | | | | | | | | | Introduced in d6f2000a67cc63aa67414c75ce77de671824ec52 and was only used by Action Cable. Now handled by Action Cable’s assets:compile task.
* | | Merge pull request #23930 from gsamokovarov/module-delegate-missing-toRafael Mendonça França2016-05-243-1/+129
|\ \ \ | |/ / |/| | | | | Introduce Module#delegate_missing_to
| * | Introduce Module#delegate_missing_toGenadi Samokovarov2016-02-273-1/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-232-10/+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-232-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-212-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-1814-65/+67
| | | | | | | | | | | | | | | | | | | | | | | | 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 #19428 from bdmac/fix_safe_buffer_titleizeRafael Mendonça França2016-05-181-1/+2
|\ \ \ | | | | | | | | | | | | Fixes Inflector#titleize to work with SafeBuffer
| * | | Fixes Inflector#titleize to work with SafeBufferBrian McManus2015-03-203-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way Inflector#titleize was implemented did not work properly when called on a SafeBuffer object. Using the global `$&` variable in the gsub resulted in calling capitalize on a nil object for reasons I still do not fully understand. Removing the UNSAFE_STRING_METHODS override for the gsub method in SafeBuffer "fixed" the bug but is obviously unacceptable. An example of this is very easy to see in rails console: ActiveSupport::SafeBuffer.new("my test").titleize > NoMethodError: undefined method `capitalize' for nil:NilClass Using the non global version of gsub with a |match| arg passed to the block fixes the problem. Again I do not quite understand why. I noticed that other parts of Inflector were already using the standard block arg version of gsub so I don't think it should be a problem to convert this method to using it as well.
* | | | Merge pull request #24930 from henrik/date-all-daySean Griffin2016-05-163-5/+22
|\ \ \ \ | | | | | | | | | | Introduce Date#all_day
| * | | | Introduce Date#all_dayHenrik Nyh2016-05-113-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-153-57/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | | | |
* | | | | Add some assertions for BigDecimal#to_sYosuke Kabuto2016-05-151-0/+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-102-2/+2
| | | |
* | | | Start Rails 5.1 development :tada:Rafael Mendonça França2016-05-102-766/+3
|/ / /
* | | 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-062-1/+3
| | |
* | | 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
* | | Run Active Support tests when preserving timezonesAndrew White2016-05-051-0/+3
| | | | | | | | | | | | | | | Add to the matrix of Travis tests an entry that runs the Active Support tests when `ActiveSupport.to_time_preserves_timezone = true`.
* | | Fix tests when preserving timezonesAndrew White2016-05-052-6/+19
| | | | | | | | | | | | | | | | | | These two tests are explicitly testing that to_time is returning times with the sytem timezone's UTC offset, therefore they will fail when running them with `ActiveSupport.to_time_preserves_timezone = true`.
* | | Fix to_yaml test when run individuallyAndrew White2016-05-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The to_yaml method is undefined when running the test as: $ ruby -I lib:test test/core_ext/string_ext_test.rb Doesn't fail when running rake test:isolated presumably because something else has required 'yaml' already.
* | | Fix some typos in comments.Joe Rafaniello2016-05-041-1/+1
| | | | | | | | | | | | [ci skip]
* | | Fix template resolver cache concurrency: "can't add a new key into hash ↵Jeremy Daer2016-05-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | during iteration" Resolved by https://github.com/ruby-concurrency/concurrent-ruby/pull/529 Fixes #24627.