aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge pull request #35429 from jhawthorn/template_format_nilAaron Patterson2019-03-014-12/+8
|\ \ \ \ | | | | | | | | | | Allow nil format on templates
| * | | | Remove query_format argument from resolverJohn Hawthorn2019-02-262-4/+4
| | | | |
| * | | | Create templates with format=nilJohn Hawthorn2019-02-262-3/+4
| | | | |
| * | | | Allow format to be nilJohn Hawthorn2019-02-261-5/+0
| | | | |
* | | | | Removes unnecessary dot in regexpXavier Noria2019-02-281-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A string S matches ([.]|\b)html if an only if matches \bhtml: * If S matches [.]html, then it matches \bhtml. * If S matches \bhtml, then it matches \bhtml. Reciprocally: * If S matches \bhtml, then it matches ([.]|\b)html. The character class can be removed, and since we are on it we remove the group too so that it is clear to a reader of the code that there is no grouping going on. References #35166.
* | | | Remove unused method / fix documentationAaron Patterson2019-02-261-6/+1
| | | |
* | | | Update actionview/lib/action_view/template/resolver.rbJohn Hawthorn2019-02-261-1/+1
| | | | | | | | | | | | Co-Authored-By: tenderlove <tenderlove@github.com>
* | | | `original_encoding` isn't used, so deprecate it and remove the ivarAaron Patterson2019-02-252-5/+5
| | | |
* | | | Expand key word args for ActionView::TemplateAaron Patterson2019-02-251-3/+3
| | | |
* | | | Don't mutate `virtual_path`, remove `decorate`Aaron Patterson2019-02-252-17/+4
| | | | | | | | | | | | | | | | | | | | | | | | `virtual_path` is calculated in the constructor when the Template object is allocated. We don't actually need to set it in the `decorate` method. That means we can remove the decorate method all together.
* | | | Pass locals in to the template object on constructionAaron Patterson2019-02-253-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit ensures that locals are passed in to the template objects when they are constructed, then removes the `locals=` mutator on the template object. This means we don't need to mutate Template objects with locals in the `decorate` method.
* | | | Merge pull request #35408 from rails/template-has-one-variantAaron Patterson2019-02-253-13/+11
|\ \ \ \ | |_|/ / |/| | | Template has one variant
| * | | Change `variants` to `variant`Aaron Patterson2019-02-252-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | Templates only have one variant, so we should not store it in an array. This commit converts `variants` to `variant` and deprecates the plural accessor
| * | | Remove potential `variants` mutation in `decorate`Aaron Patterson2019-02-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even if the template is constructed with a `nil` variant, the array it constructs will never be `empty?`: https://github.com/rails/rails/blob/56b030605b4d968077a4ddb96b4ab619e75fb999/actionview/lib/action_view/template.rb#L152 We get an array that is `[nil]`, which is not empty, so this conditional is never true.
| * | | Convert `variant` to a keyword argAaron Patterson2019-02-251-2/+2
| | | |
* | | | Preparing for 6.0.0.beta2 releaseRafael Mendonça França2019-02-251-1/+1
| | | |
* | | | Improve Template#inspect output (#35407)John Hawthorn2019-02-251-2/+6
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Don't call inspect from identifier_method_name * Add locals Template#inspect Handler, formats, and variant are usually obvious from looking at the identifier. However it's not uncommon to have different locals for the same template so we should make that obvious in inspect. * Add tests for short_identifier and inspect [John Hawthorn + Rafael Mendonça França]
* | | Templates have one formatAaron Patterson2019-02-257-19/+31
| | | | | | | | | | | | | | | | | | | | | Templates only have one format. Before this commit, templates would be constructed with a single element array that contained the format. This commit eliminates the single element array and just implements a `format` method. This saves one array allocation per template.
* | | Update actionview/lib/action_view/template.rbRyuta Kamizono2019-02-251-1/+1
| | | | | | | | | Co-Authored-By: tenderlove <tenderlove@github.com>
* | | remove the formats writer on templatesAaron Patterson2019-02-251-2/+6
| | |
* | | Dereference the format type before template constructionAaron Patterson2019-02-252-2/+2
| | | | | | | | | | | | | | | The format should always be exactly one symbol. Now we don't need to check whether or not the format is a `Type` in the constructor.
* | | Always pass a format to the ActionView::Template constructorAaron Patterson2019-02-253-9/+20
| | | | | | | | | | | | | | | This means we can eliminate nil checks and remove some mutations from the `decorate` method.
* | | Add a finalizer to inline templatesAaron Patterson2019-02-223-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a finalizer just to inline templates. We can't cache compilation of inline templates because it's possible that people could have render calls that look like this: ```ruby loop do render inline: "#{rand}" end ``` and we would cache every one of these different inline templates. That would cause a memory leak. OTOH, we don't need finalizers on regular templates because we can cache, control, and detect changes to the template source. Fixes: #35372
* | | Merge pull request #35371 from rails/always-have-a-formatAaron Patterson2019-02-224-7/+18
|\ \ \ | | | | | | | | Ensure that rendered templates always have a format
| * | | Ensure that rendered templates always have a formatAaron Patterson2019-02-224-7/+18
| | | | | | | | | | | | | | | | | | | | This removes one call to `lookup_context` and also eliminates a conditional in `_render_template`.
* | | | Pass lookup context to the layout handlersAaron Patterson2019-02-222-6/+6
|/ / / | | | | | | | | | | | | | | | | | | I want to start reducing the calls to `lookup_context`. That method caches the lookup context in an ivar, but I would like to cache the lookup context on the stack. That way we aren't coupled to the behavior of the `lookup_context` method.
* | | [ci skip] actionview typo fixes.alkesh262019-02-211-1/+1
| | |
* | | Deprecate ActionView::PathSet as argument to ActionView::Base.newCliff Pruitt2019-02-201-0/+2
| | | | | | | | | | | | Currently, `ActionView::Base.new` will raise a `NotImplementedError` when given an instance of `ActionView::PathSet` on initialization. This commit prevents the raised error in favor of a deprecation warning.
* | | Deprecate LookupContext#rendered_formatAaron Patterson2019-02-192-7/+11
| | | | | | | | | | | | | | | We no longer depend on `rendered_format` side effects, so we can remove this method now. 🎉
* | | Fix up styleAaron Patterson2019-02-194-8/+8
| | |
* | | Return rendered template information instead of just stringsAaron Patterson2019-02-197-31/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces "rendered template" and "rendered collection" objects. The template renderers can now return a more complex object than just strings. This allows the framework to get more information about the templates that were rendered. In this commit we use the rendered template object to set the "rendered_format" on the lookup context in the controller rather than all the way in the template renderer. That means we don't need to check the "rendered_format" every time we render a template, we just do it once after all templates have been rendered.
* | | rename push / pop functionAaron Patterson2019-02-192-2/+2
| | |
* | | Merge pull request #35293 from rails/remove-rendered-format-from-cacheAaron Patterson2019-02-196-19/+17
|\ \ \ | | | | | | | | Pass the template format to the digestor
| * | | remove another call to rendered_format=Aaron Patterson2019-02-171-2/+0
| | | |
| * | | Pass the template format to the digestorAaron Patterson2019-02-156-17/+17
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit passes the template format to the digestor in order to come up with a key. Before this commit, the digestor would depend on the side effect of the template renderer setting the rendered_format on the lookup context. I would like to remove that mutation, so I've changed this to pass the template format in to the digestor. I've introduced a new instance variable that will be alive during a template render. When the template is being rendered, it pushes the current template on to a stack, setting `@current_template` to the template currently being rendered. When the cache helper asks the digestor for a key, it uses the format of the template currently on the stack.
* | | Merge pull request #35281 from ↵Aaron Patterson2019-02-151-5/+9
|\ \ \ | | | | | | | | | | | | | | | | y-yagi/show_deprecated_message_instead_of_raise_exception Show deprecated message instead of raise exception in `compiled_method_container` method
| * | | Show deprecated message instead of raise exception in ↵yuuji.yaginuma2019-02-161-5/+9
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `compiled_method_container` method Since #35036, the subclasses of `ActionView::Base` requires the `compiled_method_container`. This is incompatible. For example, `web-console` use view class that subclass of `ActionView::Base`, and does not work it now cause of this. Actually, since it seems that it is only `ActionView::Base` that `compiled_method_container` is necessary, modified the condition that emits a warning.
* / / Allow to pass options to `csp_meta_tag`yuuji.yaginuma2019-02-161-2/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | Currently `csp_meta_tag` generates `name` attribute only. However, in libraries like `Material-UI` and `JSS`, expect that the meta tag that contains the nonce with `property` attribute. https://material-ui.com/css-in-js/advanced/#how-does-one-implement-csp https://github.com/cssinjs/jss/blob/master/docs/csp.md This patch allows `csp_meta_tag` to specify arbitrary options and allows `nonce` to be passed to those libraries.
* | Merge pull request #35253 from rails/cached-collections-must-have-a-templateAaron Patterson2019-02-131-3/+11
|\ \ | | | | | | Cached collections only work if there is one template
| * | Cached collections only work if there is one templateAaron Patterson2019-02-131-3/+11
| |/ | | | | | | | | Cached collections only work if there is one template. If there are more than one templates, the caching mechanism doesn't have a key.
* | Address to useless assignment `formats = nil` after #35254Ryuta Kamizono2019-02-141-3/+1
| | | | | | | | https://codeclimate.com/github/rails/rails/pull/35254
* | Clean for fix done in #35229. Removed unused argumentsAbhay Nikam2019-02-131-2/+2
| |
* | Turn lookup context in to a stack, push and pop if formats changeAaron Patterson2019-02-116-23/+56
|/ | | | | | | | | | | This commit keeps a stack of lookup contexts on the ActionView::Base instance. If a format is passed to render, we instantiate a new lookup context and push it on the stack, that way any child calls to "render" will use the same format information as the parent. This also isolates "sibling" calls to render (multiple calls to render in the same template). Fixes #35222 #34138
* Always call superAaron Patterson2019-02-081-1/+0
|
* reuse details cache key identity objectAaron Patterson2019-02-081-5/+1
|
* Teach DetailsKey how to clear the template cacheAaron Patterson2019-02-082-1/+29
| | | | | This commit exposes all system wide view paths so that we can clear their caches.
* Split digest cache from details identity cacheAaron Patterson2019-02-082-8/+22
| | | | | This commit splits the digest cache from the "details identity" cache. Now both caches can be managed independently.
* Fix some typos!Aaron Patterson2019-02-061-1/+1
|
* Add a message to help allocate AV::Base instancesAaron Patterson2019-02-061-1/+5
|
* Deprecate finalizer configuration (it doesn't do anything)Aaron Patterson2019-02-062-0/+22
| | | | | | Revert "Remove finalizer and configuration" This reverts commit 9e7b4a3173788ea43b11e74a4d2f69a5f1565daa.