aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
Commit message (Collapse)AuthorAgeFilesLines
...
* Reduce string objects by using \ instead of + or << for concatenating stringsAkira Matsuda2017-01-121-1/+1
| | | | (I personally prefer writing one string in one line no matter how long it is, though)
* Merge pull request #27610 from Envek/fix_and_speed_up_duration_parsingAndrew White2017-01-126-20/+57
|\ | | | | Fix inconsistent parsing of Durations with both months and years
| * Fix inconsistent results when parsing large durations and constructing ↵Andrey Novikov2017-01-096-20/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | durations from code ActiveSupport::Duration.parse('P3Y') == 3.years # It should be true Duration parsing made independent from any moment of time: Fixed length in seconds is assigned to each duration part during parsing. Changed duration of months and years in seconds to more accurate and logical: 1. The value of 365.2425 days in Gregorian year is more accurate as it accounts for every 400th non-leap year. 2. Month's length is bound to year's duration, which makes sensible comparisons like `12.months == 1.year` to be `true` and nonsensical ones like `30.days == 1.month` to be `false`. Calculations on times and dates with durations shouldn't be affected as duration's numeric value isn't used in calculations, only parts are used. Methods on `Numeric` like `2.days` now use these predefined durations to avoid duplicating of duration constants through the codebase and eliminate creation of intermediate durations.
* | Use Encoding::UTF_8 constant for default_{internal,external} in the testsAkira Matsuda2017-01-111-2/+2
| |
* | Make time travel work with subclasses of Time/Date/DatetimeJonas Nicklas2017-01-102-5/+24
|/ | | | | Closes #27614 Previously when calling `now` on a subclass of e.g. `Time` it would return an instance of `Time` instead of returning an instance of the subclass. This way, we always return the correct class.
* Merge pull request #27392 from y-yagi/use_same_class_on_compactSean Griffin2017-01-062-0/+14
|\ | | | | ensure `#compact` of HWIDA to return HWIDA
| * ensure `#compact` of HWIDA to return HWIDAyuuji.yaginuma2017-01-062-0/+14
| | | | | | | | | | | | | | | | `Hash#compact` of Ruby native returns new hash. Therefore, in order to return HWIDA as in the past version, need to define own `#compact` to HWIDA. Related: #26868
* | `self.` is not needed when calling its own instance methodAkira Matsuda2017-01-055-6/+6
| | | | | | | | Actually, private methods cannot be called with `self.`, so it's not just redundant, it's a bad habit in Ruby
* | Fix style guide violationsRafael Mendonça França2017-01-052-2/+2
| |
* | Make sure we generate keys that can be used with the cipherRafael Mendonça França2017-01-041-4/+4
| | | | | | | | | | | | | | | | | | We use aes-256-cbc cipher by default and it only accepts keys with 32 bytes at max. Closes #27576. [ci skip]
* | Merge pull request #26480 from tbrisker/fix-26461Rafael França2017-01-041-2/+7
|\ \ | |/ |/| Clarify that mattr_* creates public methods
| * Reword according to feedbackTomer Brisker2016-09-151-8/+7
| |
| * Clarify that mattr_* creates public methodsTomer Brisker2016-09-131-0/+6
| |
* | There's no such moduleAkira Matsuda2017-01-052-8/+8
| |
* | Remove unnecessary require statementsJon Moss2017-01-031-3/+0
| | | | | | | | Should have been removed via 8e43fc5ace8039370f233570863b34821a3be46f.
* | Merge pull request #27363 from amatsuda/refined_array_sumSean Griffin2017-01-031-2/+7
|\ \ | | | | | | Refining Array#sum monkey-patch using Refinements
| * | Refining Array#sum monkey-patch using RefinementsAkira Matsuda2016-12-151-2/+7
| | | | | | | | | | | | Because we don't want to see our ugly orig_sum method outside of this file
* | | Merge pull request #27520 from ↵Rafael França2017-01-011-11/+21
|\ \ \ | | | | | | | | | | | | | | | | prathamesh-sonpatki/merge-uncountable-tests-for-inflector Make the tests for uncountability of ascii and non-ascii words uniform
| * | | Make the tests for uncountability of ascii and non-ascii words uniformPrathamesh Sonpatki2016-12-311-11/+21
| | | |
* | | | Fix Symbol#duplicable? for Ruby 2.4.0.Kasper Timm Hansen2017-01-012-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ruby 2.4.0 has trouble duplicating certain symbols created from strings via `to_sym`. It didn't happen with `'symbol'.to_sym.dup` for some reason, but works fine with the longer string sample. Once a newer Ruby version with a fix is released we'll get have a failing test case we can fix. Ref: #27532
* | | | Bump license years for 2017Jon Moss2016-12-312-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | Per https://www.timeanddate.com/counters/firstnewyear.html, it's already 2017 in a lot of places, so we should bump the Rails license years to 2017. [ci skip]
* | | Merge pull request #12509 from eitoball/pluralize_for_non_ascii_character_wordsMatthew Draper2016-12-311-0/+8
|\ \ \ | | | | | | | | | | | | | | | | | | | | Fix ActiveSupport::Inflector.pluralize behavior for words that consist of non-ASCII characters (test only; the original bug was fixed by 1bf50badd943e684a56a03392ef0ddafefca0ad7)
| * | | fix pluralize behavior for words that consist of non-ascii charactersEito Katagiri2015-07-022-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code below returns "猫" in 3.2, but "猫s" in 4.0. ```ruby ActiveSupport::Inflector.inflections do |inflect| inflect.uncountable "猫" end "猫".pluralize ```
* | | | Prefer Regexp#match? over Regexp#===Matthew Draper2016-12-311-1/+2
| | | |
* | | | Only add regexes for the new wordsMatthew Draper2016-12-311-2/+3
| | | |
* | | | Fix Rubocop violations and fix documentation visibilityRafael Mendonça França2016-12-283-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Some methods were added to public API in 5b14129d8d4ad302b4e11df6bd5c7891b75f393c and they should be not part of the public API.
* | | | assert_equal takes expectation firstAkira Matsuda2016-12-266-45/+45
| | | |
* | | | "Use assert_nil if expecting nil from ...:in `...'. This will fail in ↵Akira Matsuda2016-12-252-3/+3
| | | | | | | | | | | | | | | | minitest 6."
* | | | Expectation firstAkira Matsuda2016-12-252-5/+5
| | | |
* | | | "Use assert_nil if expecting nil from ...:in `...'. This will fail in MT6."Akira Matsuda2016-12-251-1/+1
| | | |
* | | | "Use assert_nil if expecting nil. This will fail in minitest 6."Akira Matsuda2016-12-2516-39/+39
| | | |
* | | | Privatize unneededly protected methods in Active SupportAkira Matsuda2016-12-2415-56/+46
| | | |
* | | | No need to nodoc private methodsAkira Matsuda2016-12-245-10/+10
| | | |
* | | | Privatize unneededly protected methods in Active Support testsAkira Matsuda2016-12-247-8/+8
| | | |
* | | | Describe what we are protectingAkira Matsuda2016-12-231-0/+2
| | | |
* | | | Fix Complex and Rational are duplicable?utilum2016-12-213-2/+27
| | | | | | | | | | | | | | | | See [this test](https://gist.github.com/utilum/78918f1b64f8b61ee732cb266db7c43a).
* | | | `protected` here doesn't protect anythingAkira Matsuda2016-12-191-2/+0
| | | | | | | | | | | | | | | | there aren't any instance method defined in this class
* | | | Merge pull request #27366 from utilum/avoid_fixnum_warningMatthew Draper2016-12-181-1/+1
|\ \ \ \ | | | | | | | | | | Fix Fixnum deprecated warning in Ruby 2.4+
| * | | | Fix Fixnum deprecated warning in Ruby 2.4+utilum2016-12-161-1/+1
| | |/ / | |/| |
* | | | Merge pull request #27368 from matthewd/doubled-callbacksMatthew Draper2016-12-162-18/+77
|\ \ \ \ | |/ / / |/| | | Support double-yield inside an around callback
| * | | Support double-yield inside an around callbackMatthew Draper2016-12-152-18/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's questionable whether this is a good thing -- it forces any later/ inner callback to handle multiple invocations, along with the actual wrapped action. But it worked prior to 871ca21f6a1d65c0ec78cb5a9641411e2210460b, so we shouldn't break it unintentionally.
* | | | Fix constantize edge case involving prepend, autoloading and name conflictsJean Boussier2016-12-144-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following situation: ```ruby class Bar end module Baz end class Foo prepend Baz end class Foo::Bar end ``` Running `Inflector.constantize('Foo::Bar')` would blow up with a NameError. What is happening is that `constatize` was written before the introduction of prepend, and wrongly assume that `klass.ancestors.first == klass`. So it uses `klass.ancestors.inject` without arguments, as a result a prepended module is used in place of the actual class.
* | | | fix new warning in ruby 2.4yuuji.yaginuma2016-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the following warning. ``` test/caching_test.rb:986: warning: parentheses after method name is interpreted as test/caching_test.rb:986: warning: an argument list, not a decomposed argument test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: parentheses after method name is interpreted as test/cases/adapters/mysql2/reserved_word_test.rb:146: warning: an argument list, not a decomposed argument ``` Ref: https://github.com/ruby/ruby/commit/65e27c8b138d6959608658ffce2fa761842b8d24
* | | | change return value of `duplicable?` with Ruby 2.4+yuuji.yaginuma2016-12-133-35/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `NilClass`, `FalseClass`, `TrueClass`, `Symbol` and `Numeric` can dup with Ruby 2.4+. Ref: https://bugs.ruby-lang.org/issues/12979
* | | | :nail_care:Akira Matsuda2016-12-131-2/+1
| | | |
* | | | nil, true, 1, etc. don't raise on #dup since Ruby 2.4Akira Matsuda2016-12-131-1/+1
| | | | | | | | | | | | | | | | https://bugs.ruby-lang.org/issues/12979
* | | | Keep AS::XmlMini::PARSING["decimal"].call('') returning 0Akira Matsuda2016-12-131-1/+11
|/ / / | | | | | | | | | | | | BigDecimal('an invalid string') has changed its behavior to raise an ArgumentError since 1.3.0 https://bugs.ruby-lang.org/issues/10286
* | | split DELEGATION_RESERVED_METHOD_NAMES in halfToshimaru2016-12-091-4/+5
| | |
* | | stop using removed `render :text`yuuji.yaginuma2016-12-031-2/+2
| | | | | | | | | | | | Follow up to 79a5ea9eadb4d43b62afacedc0706cbe88c54496
* | | Exclude singleton classes from `subclasses` and `descendants`Sean Griffin2016-12-012-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | This behavior changed in Ruby starting with 2.3.0, as a result of https://bugs.ruby-lang.org/issues/11360. This results in a change in behavior of these methods which is likely undesirable. Fixes #27238