| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Reduce Duration#inspect to a single series of transformations
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* eliminates need for temp Hash
Also added a couple of examples to DurationTest to specify:
* duration can be defined with units out of order e.g.
1.month + 1.year + 1.second + 1.day
* equality with a Fixnum works regardless of which operand is on which
side of the operator
|
| | |
|
| | |
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It is not good to include links in the code. These links can be in the
future outdated and nobody will upgrade they.
[ci skip]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, an autoloaded constant `HTML::SomeClass` would not be marked
as autoloaded by AS::Dependencies. This is because the
`#loadable_constants_for_path` method uses `String#camelize` on the
inferred file path, which in turn means that, unless otherwise directed,
AS::Dependencies watches for loaded constants in the `Html` namespace.
By passing the original qualified constant name to `#load_or_require`,
this inference step is avoided, and the new constant is picked up in the
correct namespace.
|
| |/
|/|
| |
| |
| | |
Also, +ActiveRecord::Migrator.proper_table_name+ should actually have a
deprecation horizon of Rails 4.2 (not 4.1).
|
|\ \
| | |
| | | |
Generalize backtrace check on DelegationError.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Different Ruby implementations present backtraces differently, as
it should be an information consumed by humans.
A better implementation should use data from the error, in this case
returned by NoMethodError#name.
Fixes issues with Rubinius, which presents backtraces differently from
MRI.
|
| | | |
|
| | | |
|
| | | |
|
| |/
|/|
| |
| | |
#11831
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
actionview/README.rdoc
activerecord/lib/active_record/migration.rb
guides/source/development_dependencies_install.md
guides/source/getting_started.md
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing
changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9.
Seems to be a code merge done by mistake.
|
| | |
| | |
| | |
| | | |
This reverts commit 157dc275da0ad38635337b7c1d96de656d91de8e.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
String#gsub(pattern, '')
|
| | |
| | |
| | |
| | | |
That is a better name, thanks @jeremy.
|
| | |
| | |
| | |
| | | |
See the CHANGELONG message in the patch for further details.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
|
| |
| |
| |
| | |
Jruby cannot unlink a tempfile unless it is closed first.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
Added Time#middle_of_day method
|
| | |
| | |
| | |
| | | |
Added middle_of_day method to Date and DateTime
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |/
|/|
| |
| | |
for easy Javascript date parsing
|
|\ \ |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Minor refactor - Uses Enumerable#to_a instead of iterate and add to an array
|
| | | |
| | | |
| | | |
| | | | |
array
|
|\ \ \ \
| |_|/ /
|/| | | |
[Fixes #11512] improves cache size calculation in MemoryStore
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
|\ \ \ \
| |/ / /
|/| | | |
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Array#to_s calls each element's inspect since ruby 1.9
|
| | | | |
| | | | |
| | | | |
| | | | | |
[ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | | |
[ci skip
|
| | | | |
| | | | |
| | | | |
| | | | | |
[ci skip]
|
| |/ / / |
|
| | | |
| | | |
| | | |
| | | | |
[ci skip]
|