aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo in collection_radio_buttons spec [ci skip]Alberto Almagro2019-01-111-1/+1
|
* Merge pull request #34797 from ↵Eileen M. Uchitelle2019-01-042-2/+2
|\ | | | | | | | | gsamokovarov/views-without-defined-protect-against-forgery Don't expect defined protect_against_forgery? in {token,csrf_meta}_tag
| * Don't expect defined protect_against_forgery? in {token,csrf_meta}_tagGenadi Samokovarov2018-12-272-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `#csrf_meta_tags` and `#token_tag` Action View helper methods are expecting the class in which are included to explicitly define the method `#protect_against_forgery?` or else they will fail with `NoMethodError`. This is a problem if you want to use Action View outside of Rails applications. For example, in #34788 I used the `#button_to` helper inside of the error pages templates that have a custom `ActionView::Base` subclass, which did not defined `#protect_against_forgery?` and trying to call the button failed. I had to dig inside of Action View to find-out what's was going on. I think we should either set a default method implementation in the helpers or check for the method definition, but don't explicitly require the presence of `#protect_against_forgery?` in every `ActionViews::Base` subclass as the errors are hard to figure out.
* | Bump license years for 2019Arun Agrawal2018-12-311-1/+1
|/
* Generate doc of methods provided by form builders [ci skip]yuuji.yaginuma2018-12-261-0/+221
| | | | | | | | Because method arguments are different in the methods provided by form helpers and form builders, I think these are necessary to prevent confusion. Fixes #34787
* Fix integer regex deprecation warnings for Ruby 2.6.0 (#34728)Vinicius Stock2018-12-211-1/+1
| | | | | * Fix integer regex deprecation warnings for Ruby 2.6.0 * Define =~ in FakeZone to avoid warnings from Ruby 2.6.0
* Module#{define_method,alias_method,undef_method,remove_method} become public ↵Ryuta Kamizono2018-12-212-3/+3
| | | | | | since Ruby 2.5 https://bugs.ruby-lang.org/issues/14133
* Fix `View.new` method call with arguments syntaxRyuta Kamizono2018-12-181-1/+1
| | | [ci skip]
* Fix doc formattingT.J. Schuck2018-12-171-4/+5
| | | | [ci skip]
* use match?pavel2018-12-121-1/+1
|
* Prevent TextHelper#word_wrap from stripping white space on the leftLyle Mullican2018-11-191-1/+1
| | | | side of long lines; Fixes #34487
* Added maxlength example to text_field documentationRaghu Kamat2018-10-251-0/+3
| | | | | | | | | | | The usage of maxlength in the text_field helper adds a size attribute to the generated text_field input with the same value as the maxlength. This implicit addition of size attribute by the method gives a false impression that it may be bug. By adding the implementation of the maxlength to the api docs, we explicitly tell the reader referring the api doc that addition of size along with maxlength is the expected behaviour. [ci skip]
* Add allocations to template renderer subscriptionEileen Uchitelle2018-10-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | This PR adds the allocations to the instrumentation for template and partial rendering. Before: ``` Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (9.7ms) Rendered posts/new.html.erb within layouts/application (10.9ms) Completed 200 OK in 902ms (Views: 890.8ms | ActiveRecord: 0.8ms) ``` After: ``` Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (Duration: 7.1ms | Allocations: 6004) Rendered posts/new.html.erb within layouts/application (Duration: 8.3ms | Allocations: 6654) Completed 200 OK in 858ms (Views: 848.4ms | ActiveRecord: 0.4ms | Allocations: 1539564) ```
* Merge pull request #33324 from ↵Ryuta Kamizono2018-10-081-11/+12
|\ | | | | | | | | Jcambass/fix-only-path-option-in-url-for-with-arrays respect only_path option when an array is passed into url_for
| * respect path_only option when an array is passed into url_forJoel Ambass2018-10-011-11/+12
| | | | | | | | | | | | | | | | The url_for method is now extracting the path_only option in order to determine if polymorphic_path or polymorphic_url should be called. If the path_only option is not set it will be set to true unless the host option is set. This behaviour is the same as when a Hash or Params object is passed. To support this unifying the code responsible for setting this default value has been extracted into a private method
* | Fix rubocop issuebogdanvlviv2018-10-031-1/+1
| | | | | | | | | | | | | | | | Fixes: `Layout/TrailingWhitespace: Trailing whitespace detected. See https://codeclimate.com/github/rails/rails/issues Releted to b707a6d0eb7
* | Fix spellings for 'unmarshall(ing/ed)' & 'marshall(ing/ed)'Sharang Dashputre2018-10-021-3/+3
| |
* | Merge pull request #32031 from yahonda/remove_redundant_freezeRyuta Kamizono2018-10-0113-45/+45
|\ \ | | | | | | Add `Style/RedundantFreeze` to remove redudant `.freeze`
| * | Add `Style/RedundantFreeze` to remove redudant `.freeze`Yasuo Honda2018-09-2913-45/+45
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Rails 6.0 will support Ruby 2.4.1 or higher `# frozen_string_literal: true` magic comment is enough to make string object frozen. This magic comment is enabled by `Style/FrozenStringLiteralComment` cop. * Exclude these files not to auto correct false positive `Regexp#freeze` - 'actionpack/lib/action_dispatch/journey/router/utils.rb' - 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb' It has been fixed by https://github.com/rubocop-hq/rubocop/pull/6333 Once the newer version of RuboCop released and available at Code Climate these exclude entries should be removed. * Replace `String#freeze` with `String#-@` manually if explicit frozen string objects are required - 'actionpack/test/controller/test_case_test.rb' - 'activemodel/test/cases/type/string_test.rb' - 'activesupport/lib/active_support/core_ext/string/strip.rb' - 'activesupport/test/core_ext/string_ext_test.rb' - 'railties/test/generators/actions_test.rb'
* | Explain why we have explicit marshaling methodsDavid Heinemeier Hansson2018-09-301-2/+6
| |
* | make actionview templates marshalable so that they can be serialized during ↵lsylvester2018-09-301-0/+9
|/ | | | the parallel tests (#34030)
* Enable `Performance/UnfreezeString` copyuuji.yaginuma2018-09-2310-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`. ```ruby # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" gem "benchmark-ips" end Benchmark.ips do |x| x.report('+@') { +"" } x.report('dup') { "".dup } x.compare! end ``` ``` $ ruby -v benchmark.rb ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] Warming up -------------------------------------- +@ 282.289k i/100ms dup 187.638k i/100ms Calculating ------------------------------------- +@ 6.775M (± 3.6%) i/s - 33.875M in 5.006253s dup 3.320M (± 2.2%) i/s - 16.700M in 5.032125s Comparison: +@: 6775299.3 i/s dup: 3320400.7 i/s - 2.04x slower ```
* Merge pull request #33564 from avit/escape_javascript_castingRafael França2018-09-211-4/+5
|\ | | | | Let escape_javascript handle conversion to string
| * Let escape_javascript handle conversion to stringAndrew Vit2018-09-211-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | This brings `escape_javascript` in line with the behavior of `json_escape` and allows other value types to be output without needing explicit casting in the view template. Example: <%= javascript_tag do %> var locale = '<%== j I18n.locale %>'; // locale is a symbol <% end %>
* | [ci skip] document collection_caching.rbschneems2018-09-191-0/+35
| |
* | Fix for variants: :any special caseJohn Hawthorn2018-09-121-1/+3
| |
* | Use wildcard glob for optimized template resolvingJohn Hawthorn2018-09-121-13/+51
| |
* | Move digest path calculation out of loopschneems2018-09-112-10/+22
| | | | | | | | | | | | | | | | | | | | | | On every iteration of generating a cache for a collection a “digest path” is calculated even though it’s exactly the same for every element. This PR exposes a method `digest_path_from_virtual` that returns back a “digest_path”. This can in turn be passed back into `cache_fragment_name`. This not only does less work, but it also (you guessed it) uses less memory. before: Total allocated: 762539 bytes (7035 objects) after: Total allocated: 743590 bytes (6621 objects) (762539 - 743590)/ 762539.0 # => 2.4% faster ⚡️⚡️
* | Don’t allocate array on no argsschneems2018-09-071-4/+7
| | | | | | | | | | | | | | | | | | | | When no dependencies are present to be digested there is no reason to build an array just to turn around and turn it back into a string. The dependencies array is not mutated in this method so we can use the same empty array across all invocations. Total allocated: 791402 bytes (7294 objects) Total allocated: 777442 bytes (7132 objects) (791402 - 777442) / 791402.0 # => 1.76 % speed improvement
* | [ci skip] Doc ActionView::OutputBufferschneems2018-09-062-3/+17
| |
* | [ci skip] Clarify CaptureHelper#capture functionschneems2018-09-061-0/+5
| |
* | Merge pull request #33718 from kddeisz/permit-listMatthew Draper2018-08-292-4/+14
|\ \ | | | | | | Finish converting whitelist and blacklist references
| * | Permit list usage cleanup and clearer documentationKevin Deisz2018-08-272-7/+7
| | |
| * | Deprecate usage of ActionView::Template::Handlers::ERB::escape_whitelistKevin Deisz2018-08-241-2/+12
| | |
| * | Convert over the rest of the whitelist referencesKevin Deisz2018-08-241-2/+2
| | |
* | | Add `:namespace` option to the api docs of `form_with` [ci skip]bogdanvlviv2018-08-271-0/+3
|/ /
* | Merge pull request #33547 from Ana06/patch-1Matthew Draper2018-08-231-2/+10
|\ \ | | | | | | | | | Use public_send in value_for_collection
| * | Deprecate use of private methods in view's helpersAna María Martínez Gómez2018-08-081-2/+12
| | | | | | | | | | | | | | | Instead of dropping it completely in case someone is relying (probably inadvertenly) on it.
| * | Use public_send in extract_values_from_collectionAna María Martínez Gómez2018-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid exposing private methods in view's helpers. However, as `extract_values_from_collection` is only called from `options_from_collection_for_select` where `value_for_collection` is previously called, this case was already covered. The change makes anyway sense for consistency and in case the code changes in the future.
| * | Use public_send in value_for_collectionAna María Martínez Gómez2018-08-071-1/+1
| |/ | | | | | | | | | | Avoid exposing private methods in view's helpers. Fixes https://github.com/rails/rails/issues/33546
* | Merge pull request #31132 from ↵Ryuta Kamizono2018-08-201-0/+5
|\ \ | | | | | | | | | | | | | | | | | | emaxi/feature/add-missing-documentation-option-to-number-to-currency Add missing documentation option to number_to_currency [ci skip]
| * | Add missing documentation options to number_to_currency [ci skip]emaxi2018-07-111-0/+5
| | |
* | | Enable Style/ParenthesesAroundCondition copRyuta Kamizono2018-08-191-1/+1
| | | | | | | | | | | | To prevent style check in review like https://github.com/rails/rails/pull/33608#discussion_r211087605.
* | | Fix unclosed tags [ci skip]yuuji.yaginuma2018-08-181-1/+1
| |/ |/|
* | [ci skip] Change references from Rake task to Rails commandAlberto Almagro2018-08-011-2/+3
| | | | | | | | | | This commit follows the path we started at commit #ea4f0e2 and continued at PR #33229.
* | Enable Start/EndWith and RegexpMatch copsBart de Water2018-07-282-2/+2
| | | | | | | | | | In cases where the MatchData object is not used, this provides a speed-up: https://github.com/JuanitoFatas/fast-ruby/#stringmatch-vs-stringmatch-vs-stringstart_withstringend_with-code-start-code-end
* | Merge pull request #33268 from benpickles/remove-pubdate-from-docsRichard Schneeman2018-07-211-2/+0
|\ \ | | | | | | Keep time_tag docs up-to-date.
| * | Keep time_tag docs up-to-date.Ben Pickles2018-07-011-2/+0
| | | | | | | | | | | | | | | The pubdate attribute was removed from the spec, see 940eec417f20e53abd3e3114c7fa845dac0d3a62 for context.
* | | Fix leaking special form_with attributes into html attributesYurii Cherniavskyi2018-07-203-7/+8
| | | | | | | | | | | | | | | Special form_with attributes `skip_default_ids` and `allow_method_names_outside_object` attributes are leaking into html attributes of option select tag helpers.
* | | Fix issue with `button_to`'s `to_form_params`Georgi Georgiev2018-07-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | `button_to` was throwing exception when invoked with `params` hash that contains symbol and string keys. The reason for the exception was that `to_form_params` was comparing the given symbol and string keys. The issue is fixed by turning all keys to strings inside `to_form_params` before comparing them.