aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
Commit message (Collapse)AuthorAgeFilesLines
* Typo Fix[ci skip]Rashmi Yadav2013-08-141-3/+3
|
* Add String#remove(pattern) as a short-hand for the common pattern of ↵David Heinemeier Hansson2013-08-131-0/+10
| | | | String#gsub(pattern, '')
* renames the :abort deprecation behaviour to :raiseXavier Noria2013-08-131-2/+2
| | | | That is a better name, thanks @jeremy.
* defines a new :abort deprecation behaviour that raisesXavier Noria2013-08-131-5/+18
| | | | 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)
* No need to use blocks hereAndrew White2013-08-041-11/+9
|
* 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-014-59/+47
| | | | | | 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 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-293-0/+30
|\ | | | | Added Time#middle_of_day method
| * Added Time#middle_of_dayAnatoli Makarevich2013-07-283-1/+31
| | | | | | | | Added middle_of_day method to Date and DateTime
* | Fix handling of offsets with Time#to_s(:iso8601)Andrew White2013-07-293-2/+6
| | | | | | | | | | | | 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-281-1/+2
| | | | | | | | for easy Javascript date parsing
* | 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
* | | | Merge pull request #11546 from swoop-inc/ss_memory_store_cache_sizePiotr Sarnacki2013-07-221-3/+14
|\ \ \ \ | |_|/ / |/| | | [Fixes #11512] improves cache size calculation in MemoryStore
| * | | [Fixes #11512] improves cache size calculation in ↵Simeon Simeonov2013-07-221-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | 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
| |/ / /
* | | | 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-111-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | 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)
* | | | Speedup String#toAkira Matsuda2013-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark: 1000000.times { str.to(30) } user system total real old 0.490000 0.110000 0.600000 ( 0.607374) new 0.390000 0.000000 0.390000 ( 0.387306)
* | | | Return local time for backwards compatibilityAndrew White2013-07-091-1/+1
| | | |
* | | | Retain UTC offset when using Time.at_with_coercionAndrew White2013-07-091-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The standard Ruby behavior for Time.at is to return the same type of time when passing an instance of Time as a single argument. Since the an ActiveSupport::TimeWithZone instance may be a different timezone than the system timezone and DateTime just understands offsets the best we can do is to return an instance of Time with the correct offset. Fixes #11350.
* | | | Fix microsecond precision of Time#at_with_coercionNeer Friedman2013-07-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Time.at_with_coercion (wraps Time.at) is called with a single argument that "acts_like?(:time)" it is coerced to integer thus losing it's microsecond percision. This commits changes this to use `#to_f` to prevent the problem
* | | | cache.exists? should return true/falseJade Tucker2013-07-071-1/+1
| | | |
* | | | Make HashWithIndifferentAccess#select always return the hash.Marc Schütz2013-07-061-1/+1
|/ / / | | | | | | | | | | | | Hash#select! returns nil if the hash didn't change and thus behaves differently from select, so it's return value can't be used as result for the latter.
* | | Adding back deprecation require in all.rbRashmi Yadav2013-07-051-0/+1
| | |
* | | Revert "remove string based terminators for `ActiveSupport::Callbacks`."Yves Senn2013-07-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d108672dada7ba97d3b3b56f0c6001cea621061e. Conflicts: activesupport/CHANGELOG.md
* | | remove string based terminators for `ActiveSupport::Callbacks`.Yves Senn2013-07-051-6/+0
| | |
* | | Removed unsued deprecation requireRashmi Yadav2013-07-042-2/+0
| | |