aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | defines a new :abort deprecation behaviour that raisesXavier Noria2013-08-133-5/+46
| | | | | | | | | | | | | | | | | | | | See the CHANGELONG message in the patch for further details.
* | | | | Refactor Duration#inspectDavid Chelimsky2013-08-121-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In preparing https://github.com/rails/rails/pull/11855, it took me a minute to understand what was going on due to naming (parts refers first to an attr_accessor, then to a local, and is then reassigned), but also because the iterator conditionally builds nulls and then removes them. I refactored to something much more functional-looking that I find easier to read, but you may or may not. If you do, great! Enjoy! If not, oh well, I tried. Can't win 'em all :) Rationale: * no name conflict between local var and attr_accessor * no reassignment of local var * algorithm spelled out in steps * unused items in initial list filtered out early * empty-list case handled early instead of reassigning local var * no duplication of formatting strings ("0 seconds") Benchmarks (after PR #11855 merged): 10000.times do 1.second.inspect end original #inspect 0.350000 0.000000 0.350000 ( 0.354709) 0.330000 0.000000 0.330000 ( 0.331885) 0.330000 0.000000 0.330000 ( 0.334441) refactored #inspect 0.340000 0.000000 0.340000 ( 0.340080) 0.340000 0.010000 0.350000 ( 0.345069) 0.330000 0.000000 0.330000 ( 0.335873) 10000.times do (1.day + 1.month + 2.minutes + 1.day).inspect end original #inspect 0.400000 0.000000 0.400000 ( 0.403027) 0.400000 0.000000 0.400000 ( 0.403781) 0.390000 0.000000 0.390000 ( 0.387596) refactored #inspect 0.400000 0.010000 0.410000 ( 0.399792) 0.400000 0.000000 0.400000 ( 0.404145) 0.400000 0.000000 0.400000 ( 0.403820)
* | | | | Use chop instead of singularize in Duration#inspectDavid Chelimsky2013-08-121-1/+1
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though singularize tells a better story, chop is more than 50% faster and is all that is necessary in the case of Duration#inspect, in which all of the candidates for chopping appear in the same method and are all singularized by removing the final 's'. Benchmarks: 10000.times do 1.second.inspect end original #inspect 0.740000 0.000000 0.740000 ( 0.739065) 0.740000 0.000000 0.740000 ( 0.741458) 0.740000 0.010000 0.750000 ( 0.744011) refactored #inspect 0.330000 0.000000 0.330000 ( 0.333390) 0.330000 0.000000 0.330000 ( 0.331013) 0.320000 0.000000 0.320000 ( 0.330103) 10000.times do (1.day + 1.month + 2.minutes + 1.day).inspect end original #inspect 0.790000 0.000000 0.790000 ( 0.794624) 0.770000 0.000000 0.770000 ( 0.774577) 0.770000 0.010000 0.780000 ( 0.771295) refactored #inspect 0.390000 0.000000 0.390000 ( 0.392921) 0.400000 0.000000 0.400000 ( 0.397412) 0.370000 0.000000 0.370000 ( 0.379660)
* | | | Avoid defining multibyte method names in JSON decoding test for JRuby CompatGaurish Sharma2013-08-071-3/+4
| | | | | | | | | | | | | | | | This change is similar to #11736 & in same way switched with fixed string & the index of the hash for method name. the index was added because otherwise, ruby will raise Error.
* | | | No need to use blocks hereAndrew White2013-08-041-11/+9
| | | |
* | | | Fix unused variable warningAndrew White2013-08-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | We need to call `in_time_zone` to test that it isn't modifying the receiver but since the variable isn't used it raises a warning so add an assertion to make Ruby think it's being used.
* | | | Avoid calling define_method with non-english chars in InflectorTestGaurish Sharma2013-08-031-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we call define_method with non-english chars like ¿por qué? it errors out on JRuby as of 1.7.4 & would leave out the following error invalid byte sequence in US-ASCII To work around this issue, I have switched to define_test method call define method with fixed string & the index of the hash. the index was added because otherwise, ruby will raise method redefined warning. As far as I can see there are no side-effect of this change for other implementations. For readbility I have added a message to asssert_equal informing for which word/phase the test has passed. Before this Change: JRuby: Tests terminated suddenly with an error. no reported of Failues or errors MRI: All Green. After this Change, JRuby: the `ActiveSupport` TestsSuite gracefully fails with report at the end which test failed & why. MRI: All Green(no change)
* | | | Fix jruby warning when capture calls unlink on an open tempfileAlex Tambellini2013-08-021-0/+1
| | | | | | | | | | | | | | | | Jruby cannot unlink a tempfile unless it is closed first.
* | | | Fix ActiveSupport::Testing::Isolation on jrubyAlex Tambellini2013-08-021-48/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully the first of many related to #11700. With these changes the railties tests wont 100% pass but at least they will run and show the errors. The first problem was the @method_name variable was never set. This was causing ENV["ISOLATION_TEST"] to always be nil which would cause the test output to never be written to the tempfile. The second problem was that an invalid -t option was being passed to minitest and minitest was erroring out. The third problem was the run method needs to always return an instance of the test class it is trying to isolate. We were returning a ProxyTestResult instead.
* | | | Refactor Date, Time, DateTime timezone methodsGilad Zohari2013-08-015-59/+55
| | | | | | | | | | | | | | | | | | | | | | | | Similar implementations of #in_time_zone exists for Date, Time and DateTime so method is extracted into its own module. Also some logic is extracted into private method.
* | | | Remove duplication from date_time calculationsGilad Zohari2013-07-311-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | Methods: :past? and :future? are already defined identically in date_and_time/calculations.rb which is included in Date. Because DateTime is a subclass of Date, it can call them.
* | | | Don't mutate the original inflections instance in the testsAndrew White2013-07-302-20/+22
| | | |
* | | | Add CHANGELOG entry for inflection removalAndrew White2013-07-301-0/+4
| | | |
* | | | Don't have a cow, man!Andrew White2013-07-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove cow => kine from default inflections but leave the test case in place to prevent regression of the [old Trac ticket 4929][1]. [1]: http://web.archive.org/web/20090314050915/http://dev.rubyonrails.org/ticket/4929
* | | | Merge pull request #10879 from makaroni4/masterAndrew White2013-07-296-0/+50
|\ \ \ \ | | | | | | | | | | Added Time#middle_of_day method
| * | | | Added Time#middle_of_dayAnatoli Makarevich2013-07-286-1/+51
| | | | | | | | | | | | | | | | | | | | Added middle_of_day method to Date and DateTime
* | | | | Fix handling of offsets with Time#to_s(:iso8601)Andrew White2013-07-297-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a lambda to ensure that the generated string respects the offset of the time value. Also add DateTime#to_s(:iso8601) and Date#to_s(:iso8601) for completeness.
* | | | | Add Time#to_s(:iso8601) for easy conversion of times to the iso8601 format ↵David Heinemeier Hansson2013-07-283-1/+7
| | | | | | | | | | | | | | | | | | | | for easy Javascript date parsing
* | | | | Merge pull request #11608 from arunagw/ruby-from-rubygemsAaron Patterson2013-07-281-2/+1
|\ \ \ \ \ | |_|/ / / |/| | | | grab executable from rubygems
| * | | | grab executable from rubygemsArun Agrawal2013-07-261-2/+1
| | | | | | | | | | | | | | | As done here d7fc97d3f90c0e30865d32ce202658f03248cacc
* | | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2013-07-281-1/+1
|\ \ \ \ \
| * | | | | Fixes typo in Object#try!Jay Hayes2013-07-261-1/+1
| | | | | |
* | | | | | Merge pull request #11625 from phstc/minor-refactor-code-gardener-groupingRafael Mendonça França2013-07-272-2/+1
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Minor refactor - Uses Enumerable#to_a instead of iterate and add to an array
| * | | | | Minor refactor - Uses Enumerable#to_a instead of iterate and add to anPablo Cantero2013-07-273-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | array
* | | | | | Be sure to restore the default I18n.locale after changed its value in a testAkira Matsuda2013-07-261-3/+3
| | | | | |
* | | | | | Fix order dependent testsAkira Matsuda2013-07-261-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | Restore default ActiveSupport::XmlMini.backend after tests
* | | | | | Move #11546 changelog to the top [ci skip]Carlos Antonio da Silva2013-07-221-13/+13
| | | | | |
* | | | | | Merge pull request #11546 from swoop-inc/ss_memory_store_cache_sizePiotr Sarnacki2013-07-223-5/+53
|\ \ \ \ \ \ | | | | | | | | | | | | | | [Fixes #11512] improves cache size calculation in MemoryStore
| * | | | | | [Fixes #11512] improves cache size calculation in ↵Simeon Simeonov2013-07-223-5/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActiveSupport::Cache::MemoryStore Previously, the cache size of `ActiveSupport::Cache::MemoryStore` was calculated as the sum of the size of its entries, ignoring the size of keys and any data structure overhead. This could lead to the calculated cache size sometimes being 10-100x smaller than the memory used, e.g., in the case of small values. The size of a key/entry pair is now calculated via `#cached_size`: def cached_size(key, entry) key.to_s.bytesize + entry.size + PER_ENTRY_OVERHEAD end The value of `PER_ENTRY_OVERHEAD` is 240 bytes based on an [empirical estimation](https://gist.github.com/ssimeonov/6047200) for 64-bit MRI on 1.9.3 and 2.0. Fixes GH#11512 https://github.com/rails/rails/issues/11512
* | | | | | | remove useless duplication in include testDamien Mathieu2013-07-221-4/+0
| |_|/ / / / |/| | | | |
* | | | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2013-07-214-17/+16
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Merge branch 'master' of github.com:rails/docrailsThiago Pinto2013-07-163-17/+11
| |\ \ \ \ \
| | * | | | | Array#to_formatted_s does not call each element's to_s anymoreAkira Matsuda2013-07-111-17/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Array#to_s calls each element's inspect since ruby 1.9
| | * | | | | Add documentation for FileStore#increment and #decrementMatt Stopa2013-07-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
| | * | | | | Add documentation for #clear on certain Store classesMatt Stopa2013-07-102-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip
| | * | | | | Update the filestore documentation for clearMatt Stopa2013-07-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
| * | | | | | Enhancing readability of options for delegate methodThiago Pinto2013-07-161-0/+5
| |/ / / / /
* | | | | | remove duplication in testMarat Kazbekov2013-07-181-6/+0
| | | | | |
* | | | | | Fix examples of number_to_percentageRafael Mendonça França2013-07-181-8/+8
| |_|_|/ / |/| | | | | | | | | | | | | | [ci skip]
* | | | | Add missing requireAkira Matsuda2013-07-111-0/+1
| | | | |
* | | | | Only raise DelegationError if it's is the source of the exceptionAndrew White2013-07-113-10/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes situations where nested NoMethodError exceptions are masked by delegations. This would cause confusion especially where there was a problem in the Rails booting process because of a delegation in the routes reloading code. Fixes #10559
* | | | | Add missing require so that DateTime has the right superclassAndrew White2013-07-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the DateTime core extensions were loaded before the Date core extensions then you would get a superclass mismatch as DateTime hasn't been defined yet so it gets set to Object by the acts_like core extension. Fixes #11206
* | | | | Add failing test for #9562Andrew White2013-07-101-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails 4.0.0 fails when trying to encode an ActiveSupport::TimeWithZone that wraps a DateTime instance. This is fixed on master so add a test to prevent regression. (cherry picked from commit ad01b8da354268cebfae1519c28d19d75576ccb1)
* | | | | Better not mutate the given options HashAkira Matsuda2013-07-101-3/+3
| | | | |
* | | | | Simplify Array#in_groups_of codeAkira Matsuda2013-07-101-3/+1
| | | | |
* | | | | Speed up Array#splitAkira Matsuda2013-07-101-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: user system total real old 0.510000 0.000000 0.510000 ( 0.506749) new 0.330000 0.000000 0.330000 ( 0.336187)
* | | | | Speed up String#truncateAkira Matsuda2013-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: user system total real old 1.550000 0.040000 1.590000 ( 1.585866) new 1.250000 0.040000 1.290000 ( 1.287693)
* | | | | Speed up AS::Inflector.underscoreAkira Matsuda2013-07-101-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: user system total real old 6.090000 0.120000 6.210000 ( 6.202039) new 5.930000 0.110000 6.040000 ( 6.042022)
* | | | | Speedup AS::Inflector.camelizeAkira Matsuda2013-07-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: user system total real old 5.960000 0.020000 5.980000 ( 5.981754) new 5.740000 0.030000 5.770000 ( 5.757201)
* | | | | Speedup AS::Inflector.deconstantizeAkira Matsuda2013-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: user system total real old 0.740000 0.000000 0.740000 ( 0.744358) new 0.550000 0.000000 0.550000 ( 0.553690)