| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Now in sqlite3, mysql and mysql2 adapters, SchemaDumper dump a view as
a table. It is incorrect behavior. This change excludes a view in
schema.rb.
|
| |
|
|\
| |
| | |
TEXT and BLOB limit is byte length, not character length.
|
| | |
|
|\ \
| | |
| | | |
Updated MySQL documentation link to MySQL latest version 5.7 everywhe…
|
| | |
| | |
| | |
| | |
| | | |
skip]
Bumps from `5.6` to `5.7`
|
|\ \ \
| | | |
| | | | |
Improving `in_time_zone` docs [ci skip]
|
|/ / /
| | |
| | | |
`DateTime.utc` is not a valid method. It gives `NoMethodError: undefined method `utc` for DateTime:Class`. As we know that we can calculate `utc` time from `Time` Class, but we can’t calculate `utc` time from `DateTime` Class.
|
|\ \ \
| | | |
| | | | |
Ruby 2.2.3 in windows need nokogiri 1.6.7.rc3
|
| | | |
| | | |
| | | |
| | | | |
having correct pre-compiled so
|
|\ \ \ \
| |/ / /
|/| | | |
dev and edge have some common, so factor it out.
|
|/ / / |
|
|\ \ \
| |_|/
|/| | |
Improve String#strip_heredoc
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Saves about 6 MB, about 40% faster.
**strip_heredoc.rb**
```ruby
require "active_support/core_ext/object/try"
require "get_process_mem"
class String
def strip_heredoc
indent = scan(/^[ \t]*(?=\S)/).min.try(:size) || 0
gsub(/^[ \t]{#{indent}}/, '')
end
end
if ENV["MEASURE_MEMORY"] == "yes"
mem = GetProcessMem.new
GC.start
GC.disable
10000.times do
<<-MSG.strip_heredoc
xhr and xml_http_request methods are deprecated in favor of
`get :index, xhr: true` and `post :create, xhr: true`
MSG
end
before = mem.mb
after = mem.mb
GC.enable
puts "Before: #{before} MiB"
puts "After: #{after} MiB"
puts "Diff: #{after - before} MiB"
end
```
**patched_strip_heredoc.rb**
```ruby
require "active_support/core_ext/object/try"
require "get_process_mem"
class String
def patched_strip_heredoc
gsub(/^#{scan(/^[ \t]*(?=\S)/).min}/, "".freeze)
end
end
if ENV["MEASURE_MEMORY"] == "yes"
mem = GetProcessMem.new
GC.start
GC.disable
10000.times do
<<-MSG.patched_strip_heredoc
xhr and xml_http_request methods are deprecated in favor of
`get :index, xhr: true` and `post :create, xhr: true`
MSG
end
before = mem.mb
after = mem.mb
GC.enable
puts "Before: #{before} MiB"
puts "After: #{after} MiB"
puts "Diff: #{after - before} MiB"
end
```
**Before**
```
$ MEASURE_MEMORY=yes ruby strip_heredoc.rb
Before: 44.73828125 MiB
After: 44.7734375 MiB
Diff: 0.03515625 MiB
```
**After**
```
$ MEASURE_MEMORY=yes ruby patched_strip_heredoc.rb
Before: 37.9765625 MiB
After: 38.015625 MiB
Diff: 0.0390625 MiB
```
`44.7734375 - 38.015625 = 6.75`
=> **Saves about 6.75 MiB**
**benchmark.rb**
```ruby
require "benchmark/ips"
require_relative "./strip_heredoc"
require_relative "./patched_strip_heredoc"
def original
<<-MSG.strip_heredoc
xhr and xml_http_request methods are deprecated in favor of
`get :index, xhr: true` and `post :create, xhr: true`
MSG
end
def patched
<<-MSG.patched_strip_heredoc
xhr and xml_http_request methods are deprecated in favor of
`get :index, xhr: true` and `post :create, xhr: true`
MSG
end
Benchmark.ips do |x|
x.report("original") { original }
x.report(" patched") { patched }
x.compare!
end
```
```
$ ruby -v benchmark.rb
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
Calculating -------------------------------------
original 5.652k i/100ms
patched 6.477k i/100ms
-------------------------------------------------
original 54.076k (± 5.7%) i/s - 271.296k
patched 74.557k (± 6.2%) i/s - 375.666k
Comparison:
patched: 74557.0 i/s
original: 54076.4 i/s - 1.38x slower
```
=> **About 38% faster**
1. Clone rails project `git clone git@github.com:rails/rails.git`
2. Apply this patch to
`activesupport/lib/active_support/core_ext/string/strip.rb`
3. `cd activesupport`
4. run `rake`
5. And tests passed:
```
➜ activesupport $ rake
/Users/Juan/.rubies/ruby-2.2.2/bin/ruby -w -I"lib:test"
"/Users/Juan/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test_loader.rb"
"test/**/*_test.rb"
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
........................................................................
......................................................................S.
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Finished in 15.343004s, 214.2344 runs/s, 24902.4898 assertions/s.
3287 runs, 382079 assertions, 0 failures, 0 errors, 48 skips
You have skipped tests. Run with --verbose for details.
```
|
|\ \
| | |
| | | |
Remove RHTML reference in Action Controller docs
|
|/ / |
|
|\ \
| | |
| | | |
Remove wrong doc line about AC::Parameters
|
| | |
| | |
| | |
| | |
| | | |
AC::Parameters does not inherit from HashWithIndifferentAccess
since #20868 by @sikachu
|
|\ \ \
| | | |
| | | | |
add description of passing a block to `add_source` [ci skip]
|
|/ / /
| | |
| | |
| | | |
block support added in 8cc01e0b2bfa75a613720c535d34e451f5de769c
|
| |/
|/|
| |
| |
| | |
autoloading this could possibly cause some weird race condition
when calling an AR::Attribute's singleton method on a threaded server.
|
|\ \
| | |
| | | |
fix wrong method used in the TimeWithZone#inspect method docs [ci skip]
|
| | | |
|
|\ \ \
| | | |
| | | | |
Improve the AR querying docs
|
| | | |
| | | |
| | | |
| | | | |
Bumps to 5.7
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* rewords a few awkwardly worded sentences
* adds some punctuation
* adds a few missing words
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The last call site of `last_version` was removed with:
838e18321118ee3ec6669217e5ea0216f79c969a
|
| | | |
| | | |
| | | |
| | | |
| | | | |
`Rack::Session::Abstract::ID` is now deprecated and
`Rack::Session::Abstract::Persisted` should be used instead.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In c546a2b this was changed to mimic how the browser behaves in a real
situation but left out types that were registered.
When this was changed it didn't take `text/plain` or `text/html` content
types into account. This is a problem if you're manipulating the
`Content-Type` headers in your controller tests, and expect a certain
result.
The reason I changed this to use `to_sym` is because if the
`Content-Type` is not registered then the symbol will not exist. If it's
one of the special types we handle that specifically (:json, :xml, or
:url_encoded_form). If it's any registered type we handle it by setting
the `path_parameters` and then the `request_parameters`. If the `to_sym`
returns nil an error will be thrown.
If the controller test sets a `Content-Type` on the request that `Content-Type`
should remain in the header and pass along the filename.
For example:
If a test sets a content type on a post
```
@request.headers['CONTENT_TYPE'] = 'text/plain'
post :create, params: { name: 'foo.txt' }
```
Then `foo.txt` should be in the `request_parameters` and params related
to the path should be in the `path_parameters` and the `Content-Type`
header should match the one set in the `@request`. When c546a2b was
committed `text/plain` and `text/html` types were throwing a "Unknown
Content-Type" error which is misleading and incorrect.
Note: this does not affect how this is handled in the browser, just how
the controller tests handle setting `Content-Type`.
|
|\ \ \ \
| | | | |
| | | | | |
HasManyAssociation: moved half of counter cache code to reflection
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Current implementation has a lot of utility methods that accept
reflection call a lot of methods on it and exit.
E.g. has_counter_cache?(reflection)
It causes confusion and inability to cache result of the method even
through it always returns the same result for the same reflection
object.
It can be done easier without access to the association context
by moving code into reflection itself.
e.g. reflection.has_counter_cache?
Reflection is less complex object than association so moving code there
automatically makes it simplier to understand.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Use `ActiveRecord::Tasks::DatabaseTasks.migrations_paths` explicit for db tasks
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`Migrator.migrations_paths`
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This method is private API and never used. Let's remove it.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`Schema#migrations_paths` is not supposed to be public API. In fact
it's only used inside `Schema` itself, so let's make it private.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It is always passed in
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Usage was removed in 5c4495538b
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
robertjlooby/fix_overwriting_by_dynamic_finders"
This reverts commit d5ba9a42a6e93b163a49f99d739aa56820e044d0, reversing
changes made to 30c503395bf6bf7db1ec0295bd661ce644628db5.
Reason: This generate the dynalic finders more than one time
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
put dynamic matchers on GeneratedAssociationMethods instead of model
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Added nodoc tag for the methods which returns object of private apis
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Fix and Improve sql logging coloration in `ActiveRecord::LogSubscriber`.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
- CR feedback from @egilburg
Additionally
- Move logic for colorizing the payload name into a separate method
- Make some `ActiveRecord::LogSubscriber` instance methods private for clarity:
- `colorize_payload_name`
- `sql_color`
- `logger`
- Improve Changelog Documentation
GH #20885
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
- Improves coloring for statements like:
# Become WHITE
SELECT * FROM (
SELECT * FROM mytable FOR UPDATE
) ss WHERE col1 = 5;
LOCK TABLE table_name IN ACCESS EXCLUSIVE MODE;
# Becomes RED
ROLLBACK
- Reinstates the coloration of the `payload[:name]`.
Instead of simple alternating colors, adds meaning:
- `MAGENTA` for `"SQL"` or `blank?` payload names
- `CYAN` for Model Load/Exists
- Introduces specs for sql coloration.
- Introduces specs for payload name coloration.
GH#20885
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Rails documentation use american english.[ci skip]
|
|/ / / / / / / / / |
|
|\ \ \ \ \ \ \ \ \
| |_|_|_|_|_|_|_|/
|/| | | | | | | | |
Fix docs of AR::Timestamp to match #15726
|
|/ / / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
[ci skip]
@sgrif can you review when you have time? Thanks!
|