rails/actionview
Hartley McGuire 13df150c06
Enable DependencyTracker to evaluate interpolated paths (#50944)
* Enable RubyTracker to evaluate interpolated paths

Previously, neither the PrismRenderParser nor the RipperRenderParser
would consider an interpolated string as a dependency. The RubyTracker
even included a line to explcitly filter out interpolated paths returned
from the RipperRenderParser since they would end in a "/". However, the
RubyTracker does include the ability to evaluate explicit "Template
Dependency" comments with wildcard nodes.

This commit extends the RipperRenderParser and PrismRenderParser to
convert interpolated strings into wildcard globs. Additionally, it
changes the RubyTracker to evaluate wildcards the same for both implicit
and explicit dependencies. This enables the RubyTracker to identify
potential dependencies for interpolated renders, which it was previously
unable to do.

* Enable ERBTracker to evaluate interpolated paths

This ensures all three implementations (ERBTracker, RipperRenderParser,
and PrismRenderParser) are consistent in their ability to evaluate
interpolated paths.

* Extract WildcardResolver to remove duplication

Since both the ERBTracker and RubyTracker now support resolving
interpolated template paths against the view_paths, the logic for this
resolution can be extracted to its own class.

* Update CHANGELOG.md

---------

Co-authored-by: John Hawthorn <john@hawthorn.email>
2024-09-10 21:25:39 -07:00
..
app/assets/javascripts Remove rollup and test machinery for rails-ujs (#50535) 2024-01-02 16:49:36 +01:00
bin Use frozen string literal in actionview/ 2017-07-24 11:53:43 +03:00
lib Enable DependencyTracker to evaluate interpolated paths (#50944) 2024-09-10 21:25:39 -07:00
test Enable DependencyTracker to evaluate interpolated paths (#50944) 2024-09-10 21:25:39 -07:00
.gitignore Remove rollup and test machinery for rails-ujs (#50535) 2024-01-02 16:49:36 +01:00
CHANGELOG.md Enable DependencyTracker to evaluate interpolated paths (#50944) 2024-09-10 21:25:39 -07:00
MIT-LICENSE Remove Copyright years (#47467) 2023-02-23 11:38:16 +01:00
README.rdoc Unlink Rails constant from READMEs 2023-05-29 15:14:44 +09:00
RUNNING_UNIT_TESTS.rdoc Fix typos and add a few suggestions 2017-11-28 19:27:43 +01:00
Rakefile Enable Rails minitest plugin in our rake tasks 2024-05-23 16:16:37 +00:00
actionview.gemspec Bump the required Ruby version to 3.1.0 2023-12-31 08:54:03 +01:00

README.rdoc

= Action View

Action View is a framework for handling view template lookup and rendering, and provides
view helpers that assist when building HTML forms, Atom feeds and more.
Template formats that Action View handles are ERB (embedded Ruby, typically
used to inline short Ruby snippets inside HTML), and XML Builder.

You can read more about Action View in the {Action View Overview}[https://guides.rubyonrails.org/action_view_overview.html] guide.

== Download and installation

The latest version of Action View can be installed with RubyGems:

  $ gem install actionview

Source code can be downloaded as part of the \Rails project on GitHub:

* https://github.com/rails/rails/tree/main/actionview


== License

Action View is released under the MIT license:

* https://opensource.org/licenses/MIT


== Support

API documentation is at

* https://api.rubyonrails.org

Bug reports for the Ruby on \Rails project can be filed here:

* https://github.com/rails/rails/issues

Feature requests should be discussed on the rails-core mailing list here:

* https://discuss.rubyonrails.org/c/rubyonrails-core