| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
stores the current locale in Thread.current[:local] (see: https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb#L23). StreamingTemplateRenderer is implemented with Fiber which have its own stack of locals and can not access Thread.current.locals(keys, see: https://ruby-doc.org/core-2.2.0/Thread.html#class-Thread-label-Fiber-local+vs.+Thread-local).
|
| |
|
|
|
|
|
| |
This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing
changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
|
|\
| |
| |
| | |
Enforce frozen string in Rubocop
|
| | |
|
|/
|
|
| |
Plus a couple of related ActionPack patches.
|
|
|
|
| |
boolean.
|
|\
| |
| | |
Add tests for rendering with variants
|
| | |
|
|/
|
|
|
| |
Closes #28382
Closes #28651
|
|
|
|
|
|
|
| |
When rendering heterogeneous collection using `render @collection` or
`render partial: @collection`, the expected `<partial_name>_iteration`
variable is missing due to `find_template` not having the name of the
iteration variable included in its cache keys.
|
|
|
|
|
|
|
|
|
| |
In #26672 we blocked use of Ruby keywords as identifiers for view
locals but inadvertently broke the use of instance variable names
as identifiers. Whilst not explicitly documented this behavior has
been around for a long time and there's no need to break it now.
Fixes #27480.
|
| |
|
|
|
|
| |
Remove `block` keyword from reserved method names
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this lets you pass ruby keywords to templates:
<%= render 'example', class: "cool" %>
<%= render 'example', "spaces are" => "a-ok" %>
<%= render 'example', Foo: "bar" %>
Previously you'd see confusing syntax errors like this:
SyntaxError (.../_example.html.erb:1: syntax error, unexpected '='
Now you can reference invalid identifiers through local_assigns.
If you try to use an invalid keyword (e.g. class) in your template, you
get a syntax error on the line where you use it.
|
| |
|
| |
|
|
|
|
|
| |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
| |
|
|
|
|
| |
non-default (html) template
|
|
|
|
| |
paths correctly
|
|
|
|
| |
format other than the first default
|
| |
|
|
|
|
|
|
|
|
| |
When rendering a collection with a partial whose filename contains a dot, e.g.
"customer.mobile", we would set a `locals[:'customer.mobile']` variable instead
of, as in earlier versions of Rails, `locals[:customer]`.
This bug was introduced in da9038eaa5d19c77c734a044c6b35d7bfac01104.
|
| |
|
|
|
|
|
|
|
| |
This fixes the case when you try to render an html you know safe and the
file is named something.html. With this commit the content of the html
won't be escaped anymore because AV won't use Raw handler and choose
Html handler instead.
|
|
|
|
|
| |
This commit fixes the bug convering `false` to `locals[as]` when
`options[:object]` is `false` (close #22260).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This will silence deprecation warnings.
Most of the test can be changed from `render :text` to render `:plain`
or `render :body` right away. However, there are some tests that needed
to be fixed by hand as they actually assert the default Content-Type
returned from `render :body`.
|
| |
|
|
|
|
|
|
|
|
| |
When one rendered a partial template without specifying an object
or a collection (e.g. <%= render partial: 'partial_name' %>), Rails
would make an object called :partial_name available in local_assigns.
I don't think this was the intended behavior, since no local variable
called 'partial_name' gets defined in the view.
|
| |
|
|
|
|
| |
can't acquire a encoding from StreamingBuffer. fixes #12001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collections can take advantage of `multi_read` if they render one template
and their partials begin with a cache call.
The cache call must correspond to either what the collections elements are
rendered as, or match the inferred name of the partial.
So with a notifications/_notification.html.erb template like:
```ruby
<% cache notification %>
<%# ... %>
<% end %>
```
A collection would be able to use `multi_read` if rendered like:
```ruby
<%= render @notifications %>
<%= render partial: 'notifications/notification', collection: @notifications, as: :notification %>
```
|
|
|
|
| |
because the partial renderer would not create an lvar per each template since c67005f221f102fe2caca231027d9b11cf630484
|
| |
|
|\
| |
| | |
Remove unused AV/test/fixtures/scope
|
| |
| |
| |
| |
| | |
The file `modgreet.erb` was added 8 years ago in 21187c0
and is not used anymore by any test.
|
|/
|
|
|
|
|
|
|
|
| |
The `test/fixtures/happy_path/render_action/hello_world.erb` file was
introduced in 8ab37c7 for the `TestRenderAction` test.
That test was subsequently removed in 34f058e, so the fixture is not
used anymore.
If Travis CI is happy, then you can be sure the fixture can be removed.
|
|\
| |
| | |
Remove unused AV/test/fixtures/blog_public
|
| |
| |
| |
| |
| |
| |
| |
| | |
The fixtures were added to support StaticTests in 401cd97 but
those tests were then removed in d5ad92ce.
If Travis CI is happy with this PR, then you can be sure that
those fixtures are not needed anymore.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Both ActionPack and ActionView include `test/fixtures/functional_caching/fragment_cached_without_digest.html.erb`.
The [ActionPack file](https://github.com/rails/rails/blob/master/actionpack/test/fixtures/functional_caching/fragment_cached_without_digest.html.erb) is used by the tests.
The [ActionView file](https://github.com/rails/rails/blob/master/actionview/test/fixtures/functional_caching/fragment_cached_without_digest.html.erb) is not: it was introduced in eb23754e when some tests and
fixtures were moved from AP to AV, but no tests in AV uses the fixture.
Long story short: if Travis CI is happy with removing the fixture, you can
be sure that is not needed anymore!
|
|
|
|
| |
Now ActionView accepts <%= foo(){ %> and <%= foo()do %> :golf:
|
|
|
|
|
| |
This is much less common than string literal appends, so add a special
case method for it. Maybe fixes bug reported by @jeremy on 97ef636191933f1d4abc92fc10871e6d1195285c
|
|
|
|
|
|
|
|
|
|
|
|
| |
The iteration object is available as the local variable
"template_name_iteration" when rendering partials with collections.
It gives access to the +size+ of the collection beeing iterated over,
the current +index+ and two convinicence methods +first?+ and +last?+
"template_name_counter" variable is kept but is deprecated.
[Joel Junström + Lucas Uyezu]
|
|
|
|
|
|
|
|
|
|
| |
Related to: #14242 #14243 14293
Variants passed to LookupContext#find() seem to be ignored, so
I've used the setter instead: `finder.variants = [ variant ]`.
I've also added some more test cases for variants. Hopefully this
time passing tests will mean it actually works.
|
|
|
|
|
|
|
|
|
|
|
| |
Take variants into account when calculating template digests in
ActionView::Digest.
Digestor#digest now takes a hash as an argument to support variants and
allow more flexibility in the future. Old-style arguments have been
deprecated.
Fixes #14242
|
|
|
|
|
|
|
|
|
|
| |
automatically call @foo.to_partial_path
Calling `render @foo` allows local variables but not options to be
passed to the partial renderer. The correct way to render an object AND
pass options to the partial renderer is to pass the object in the
`:partial` parameter. However, there were previously no tests for this
behaviour (in `render_helper_test.rb` at least).
|