| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The dynamic finder was creating the method signature with the parameters name,
which may have reserved words and this way creating invalid Ruby code.
Closes: #13261
Example:
# Before
Dog.find_by_alias('dog name')
# Was creating this method
def self.find_by_alias(alias, options = {})
# After
Dog.find_by_alias('dog name')
# Will create this method
def self.find_by_alias(_alias, options = {})
|
|\
| |
| | |
Using parallelize_me! to parallelize isolated test
|
| |
| |
| |
| |
| | |
As ParallelEach is no more available
related commit ec00442c10cb90796909e876fb1cc557ed7518bd
|
|\ \
| | |
| | | |
Fix mounting engines inside a resources block
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a route is mounted inside a resources block, it's automatically
prefixed, so a following code:
resources :users do
mount Blog::Engine => '/blog'
end
will generate a user_blog path helper.
In order to access engine helpers, we also use "mounted_helpers", a list
of helpers associated with each mounted engine, so a path to blog's post
can be generated using user_blog.post_path(user, post).
The problem I'm fixing here is that mount used a raw :as option, without
taking nestings into account. As a result, blog was added to a route set
as a `user_blog`, but helper was generated for just `blog`.
This commit applies the proper logic for defining a helper for a mounted
engine nested in resources or resource block.
(closes #8533)
|
| |
| |
| |
| |
| |
| | |
This reverts commit bd360ad3c1d59273bf96ea01b17cf04285816dc2.
Reverting this for now until we fix the Thor related issue
|
|\ \
| | |
| | | |
Fix typo in docs, missing colon in Symbol literal
|
|/ / |
|
|\ \
| | |
| | | |
Replace with gsub! in ActiveSupport::Inflector
|
|/ / |
|
| | |
|
|\ \
| | |
| | | |
Variants inline syntax v2
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In most cases, when setting variant specific code, you're not sharing any code
within format.
Inline syntax can vastly simplify defining variants in those situations:
respond_to do |format|
format.js { render "trash" }
format.html do |variant|
variant.phone { redirect_to progress_path }
variant.none { render "trash" }
end
end
Becomes:
respond_to do |format|
format.js { render "trash" }
format.html.phone { redirect_to progress_path }
format.html.none { render "trash" }
end
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
@responses hash needs to be initialized with mime types that we get from
Collector#collect_mimes_from_class_level. Mime::Type class as key and nil as
value. This need to happen before content negotiation. Before that, it was
looping though mime types and executing mime-type-generated method inside
collector (see
AbstractController::Collector#generate_method_for_mime). That approach resulted
in 2 unnecessary method calls for each mime type
collected by Collector#collect_mimes_from_class_level.
Now hash is initialized in place, without usage of Collector#custom method.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are circumstances where the capabilities of `assert_deprecated` and
`assert_not_deprecated` are not enough. For example if a ccertain call-path
raises two deprecations but should only raise a single one.
This module is still :nodoc and intented for internal use.
/cc @rafaelfranca
|
|\ \ \
| | | |
| | | | |
Fix type cast on group sum with custom expression
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For PG adapters with custom expression and grouped result
of aggregate functions have not found correct column type
for it. Extract column type from query result.
Closes: #13230
|
| | |
| | |
| | |
| | |
| | |
| | | |
Closes #13245.
[ci skip]
|
| | | |
|
|\ \ \
| | | |
| | | | |
Support MySQL 5.7 explain
|
| |/ / |
|
|\ \ \
| |/ /
|/| |
| | | |
From http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-3.html:
"Columns in a PRIMARY KEY must be NOT NULL, but if declared explicitly as NULL produced no error. Now an error occurs."
|
|/ /
| |
| |
| | |
Since MySQL 5.7.3 m13 does now allow primary key column is null.
|
| |
| |
| |
| |
| |
| |
| | |
little more work!
This reverts commit 186161148a189839a1e0924043f068a8d155ce69, reversing
changes made to cad9eb178ea5eec0e27d74e93518f4ed34e2f997.
|
|\ \
| |/
|/| |
Inline syntax for variants
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In most cases, when setting variant specific code, you're not sharing any code
within format.
Inline syntax can vastly simplify defining variants in those sitiations:
respond_to do |format|
format.js { render "trash" }
format.html do |variant|
variant.phone { redirect_to progress_path }
variant.none { render "trash" }
end
end
`
Becomes:
respond_to do |format|
format.js { render "trash" }
format.html.phone { redirect_to progress_path }
format.html.none { render "trash" }
end
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
@responses hash needs to be initialized with mime types that we get from
Collector#collect_mimes_from_class_level. Mime::Type class as key and nil as
value. This need to happen before content negotiation. Before that, it was
looping though mime types and executing mime-type-generated method inside
collector (see
AbstractController::Collector#generate_method_for_mime). That approach resulted
in 2 unnecessary method calls for each mime type
collected by Collector#collect_mimes_from_class_level.
Now hash is initialized in place, without usage of Collector#custom method.
|
|\ \
| | |
| | | |
Upgrade minitest version
|
| |/
| |
| |
| |
| | |
We made a change in #13213 that depends on a new file that's only in
minitest 5.1.0+, so the version should be updated.
|
|\ \
| |/
|/| |
Require action_view explicitly in AC::Base
|
|/ |
|
|
|
|
| |
controller
|
| |
|
|\
| |
| | |
fix tiny typo in comment, "state_state" should be "stale_state" [ci skip]
|
|/ |
|
|\
| |
| | |
Very tiny typo fix [ci skip]
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
Cycle object should accept an array
Conflicts:
actionview/CHANGELOG.md
|
| |
| |
| |
| | |
with a set of comma-separated objects.
|
|\ \
| | |
| | | |
Minitest upgrade broke build
|
| | |
| | |
| | |
| | |
| | |
| | | |
https://github.com/seattlerb/minitest/commit/34760e3b268bc1bb4ac5fe1a44ef1ff0a2f9bd4d
This PR should fix build
|
|\ \ \
| | | |
| | | | |
Some improvements on building nested forms. [ci skip]
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
#13204]
load_missing_constant is a private method that basically plays the role of const_missing.
This method has an error condition that is surprising: it raises if the class or module
already has the missing constant. How is it possible that if the class of module has
the constant Ruby has called const_missing in the first place?
The answer is that the from_mod argument is self except for anonymous modules, because
const_missing passes down Object in such case (see the comment in the source code of the
patch for the rationale).
But then, it is better to pass down Object *if Object is also missing the constant* and
otherwise err with an informative message right away.
|
|\ \ \ \
| | | | |
| | | | | |
Use `Base.strict_decode64` instead of `Base.decode64`
|
| | | | |
| | | | |
| | | | |
| | | | | |
Also reduce extra object allocation by creating string directly instead of join on Array
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Skipping debugger from plugin Gemfile for JRuby
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Enum doc fixes
|
| | | | | |
|