aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/template
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve detection of partial templates eligible for collection caching.Dov Murik2015-06-221-1/+1
| | | | | | | | | | | | | | The regular expression which was used to detect partial templates that begin with a `<% cache ... do %>` call missed some cases. This commits attempts to improve the detection for some cases such as multi-line comments at the beginning of the template. The different templates are listed in two new unit test methods. Note that specially crafted Ruby code can still evade such `cache`-call detection: for example, a user might have its own method which itself calls the Rails `cache` helper. In such a case, the template's code doesn't start with a literal `cache` string and therefore will not be eligible for collection caching.
* applies project style guidelinesXavier Noria2015-06-201-7/+7
| | | | Just saw these in passing while reading this file.
* removes unnecessary backslashes in regexpsXavier Noria2015-06-201-3/+3
| | | | Colons are not metacharacters.
* Merge pull request #17512 from ↵Zachary Scott2015-04-101-1/+1
|\ | | | | | | | | JackDanger/danger/use-default-view-pattern-in-docs [docs] Using the real resolver pattern in docs
| * Using the real resolver pattern in docsJack Danger Canty2014-11-041-1/+1
| | | | | | | | | | | | | | | | If someone copies the docs into their app they'll find it simply doesn't work because the locale pattern doesn't have the same logic. This makes the doc examples work exactly as written. [ci skip]
* | Freeze static arguments for gsubbrainopia2015-04-021-1/+1
| |
* | Prefer string patterns for gsubbrainopia2015-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/ruby/ruby/pull/579 - there is a new optimization since ruby 2.2 Previously regexp patterns were faster (since a string was converted to regexp underneath anyway). But now string patterns are faster and better reflect the purpose. Benchmark.ips do |bm| bm.report('regexp') { 'this is ::a random string'.gsub(/::/, '/') } bm.report('string') { 'this is ::a random string'.gsub('::', '/') } bm.compare! end # string: 753724.4 i/s # regexp: 501443.1 i/s - 1.50x slower
* | Collections automatically cache and fetch partials.Kasper Timm Hansen2015-02-211-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 %> ```
* | Remove version conditional for find_template_pathsRafael Mendonça França2015-01-041-18/+6
| | | | | | | | | | Now that we only support Ruby 2.2+ we don't need this conditional anymore
* | Remove unneeded requiresRafael Mendonça França2015-01-041-1/+0
| | | | | | | | These requires were added only to change deprecation message
* | Change the default template handler from `ERB` to `Raw`.Rafael Mendonça França2015-01-042-8/+2
| | | | | | | | | | Files without a template handler in their extension will be rended using the raw handler instead of ERB.
* | Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-294-4/+4
| |
* | Wrap code snippets in +, not backticks, in sdocclaudiob2014-11-201-1/+1
| | | | | | | | | | | | | | | | I grepped the source code for code snippets wrapped in backticks in the comments and replaced the backticks with plus signs so they are correctly displayed in the Rails documentation. [ci skip]
* | Some valid block calls in templates caused syntax errorsAkira Matsuda2014-11-201-1/+1
|/ | | | Now ActionView accepts <%= foo(){ %> and <%= foo()do %> :golf:
* Call gsub with a Regexp instead of a String for better performancePablo Herrero2014-11-011-1/+1
|
* let's warn with heredocsXavier Noria2014-10-281-3/+5
| | | | | | | | | | | | The current style for warning messages without newlines uses concatenation of string literals with manual trailing spaces where needed. Heredocs have better readability, and with `squish` we can still produce a single line. This is a similar use case to the one that motivated defining `strip_heredoc`, heredocs are super clean.
* Add +variants to ActionView::FileSystemResolver documentation.Felipe Oliveira2014-09-261-3/+4
|
* handle <%== nil %> casesAaron Patterson2014-09-141-2/+2
| | | | | 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
* Add unregister_template_handler to prevent leaks.Zuhao Wan2014-06-121-0/+9
|
* Feature detect based on Ruby version.Aaron Patterson2014-05-181-1/+1
| | | | | | | I didn't want to do this, FNM_EXTGLOB is defined on 2.1.x, but Dir.glob returns the wrong value on Ruby less than 2.2.0. Checking for a case-insensitive FS seems too hard, so just check Ruby version Checking for a case-insensitive FS seems too hard, so just check Ruby version.
* feature detect for FNM_EXTGLOB for older Ruby. Fixes #15053Aaron Patterson2014-05-101-5/+21
|
* use fnmatch to test for case insensitive file systemsAaron Patterson2014-05-091-4/+2
| | | | | | this is due to: https://bugs.ruby-lang.org/issues/5994
* Fix documentation of extract_handler_and_format_and_variant [ci skip]Prathamesh Sonpatki2014-04-261-1/+1
|
* Add variants to Template classŁukasz Strzałkowski2014-03-141-7/+10
|
* Use the reference for the mime type to get the formatRafael Mendonça França2014-02-182-2/+2
| | | | | | | | Before we were calling to_sym in the mime type, even when it is unknown what can cause denial of service since symbols are not removed by the garbage collector. Fixes: CVE-2014-0082
* Introduce `render :html` for render HTML stringPrem Sichanugrist2014-02-181-0/+34
| | | | | | | | | This is an option for to HTML content with a content type of `text/html`. This rendering option calls `ERB::Util.html_escape` internally to escape unsafe HTML string, so you will have to mark your string as html safe if you have any HTML tag in it. Please see #12374 for more detail.
* Action Pack VariantsŁukasz Strzałkowski2013-12-041-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, variants in the templates will be picked up if a variant is set and there's a match. The format will be: app/views/projects/show.html.erb app/views/projects/show.html+tablet.erb app/views/projects/show.html+phone.erb If request.variant = :tablet is set, we'll automatically be rendering the html+tablet template. In the controller, we can also tailer to the variants with this syntax: class ProjectsController < ActionController::Base def show respond_to do |format| format.html do |html| @stars = @project.stars html.tablet { @notifications = @project.notifications } html.phone { @chat_heads = @project.chat_heads } end format.js format.atom end end end The variant itself is nil by default, but can be set in before filters, like so: class ApplicationController < ActionController::Base before_action do if request.user_agent =~ /iPad/ request.variant = :tablet end end end This is modeled loosely on custom mime types, but it's specifically not intended to be used together. If you're going to make a custom mime type, you don't need a variant. Variants are for variations on a single mime types.
* optimize string literals in erb templatesAaron Patterson2013-12-031-2/+2
|
* Remove deprecated cattr_* requiresGenadi Samokovarov2013-12-032-2/+2
|
* `ActionView::MissingTemplate` for partials includes underscore.Yves Senn2013-12-021-0/+3
| | | | | | Missing partial folder/_partial instead of folder/partial. Closes #13002.
* Use `set_backtrace` instead of `@backtrace` in ActionView errorShimpei Makimoto2013-11-161-2/+2
|
* Remove require to AP stuff that leftŁukasz Strzałkowski2013-06-201-1/+0
|
* Move actionpack/lib/action_view* into actionview/libPiotr Sarnacki2013-06-208-0/+791