Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-actionview-7.0 for openSUSE:Factory checked in at 2022-05-16 18:08:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-actionview-7.0 (Old) and /work/SRC/openSUSE:Factory/.rubygem-actionview-7.0.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-actionview-7.0" Mon May 16 18:08:28 2022 rev:4 rq:977363 version:7.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-actionview-7.0/rubygem-actionview-7.0.changes 2022-04-30 22:52:23.748212723 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-actionview-7.0.new.1538/rubygem-actionview-7.0.changes 2022-05-16 18:10:55.569393104 +0200 @@ -1,0 +2,9 @@ +Sun May 15 15:17:47 UTC 2022 - Manuel Schnitzer <mschnit...@suse.com> + +- updated to version 7.0.3 + + * Ensure models passed to `form_for` attempt to call `to_model`. + + *Sean Doyle* + +------------------------------------------------------------------- Old: ---- actionview-7.0.2.4.gem New: ---- actionview-7.0.3.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-actionview-7.0.spec ++++++ --- /var/tmp/diff_new_pack.EYIhAt/_old 2022-05-16 18:10:55.969393422 +0200 +++ /var/tmp/diff_new_pack.EYIhAt/_new 2022-05-16 18:10:55.977393429 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-actionview-7.0 -Version: 7.0.2.4 +Version: 7.0.3 Release: 0 %define mod_name actionview %define mod_full_name %{mod_name}-%{version} ++++++ actionview-7.0.2.4.gem -> actionview-7.0.3.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md --- old/CHANGELOG.md 2022-04-26 21:32:40.000000000 +0200 +++ new/CHANGELOG.md 2022-05-09 15:40:11.000000000 +0200 @@ -1,3 +1,9 @@ +## Rails 7.0.3 (May 09, 2022) ## + +* Ensure models passed to `form_for` attempt to call `to_model`. + + *Sean Doyle* + ## Rails 7.0.2.4 (April 26, 2022) ## * Fix and add protections for XSS in `ActionView::Helpers` and `ERB::Util`. Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/gem_version.rb new/lib/action_view/gem_version.rb --- old/lib/action_view/gem_version.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/gem_version.rb 2022-05-09 15:40:11.000000000 +0200 @@ -1,7 +1,7 @@ # frozen_string_literal: true module ActionView - # Returns the version of the currently loaded Action View as a <tt>Gem::Version</tt> + # Returns the currently loaded version of Action View as a <tt>Gem::Version</tt>. def self.gem_version Gem::Version.new VERSION::STRING end @@ -9,8 +9,8 @@ module VERSION MAJOR = 7 MINOR = 0 - TINY = 2 - PRE = "4" + TINY = 3 + PRE = nil STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/asset_tag_helper.rb new/lib/action_view/helpers/asset_tag_helper.rb --- old/lib/action_view/helpers/asset_tag_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/asset_tag_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -517,9 +517,9 @@ def extract_dimensions(size) size = size.to_s - if /\A\d+x\d+\z/.match?(size) + if /\A(\d+|\d+.\d+)x(\d+|\d+.\d+)\z/.match?(size) size.split("x") - elsif /\A\d+\z/.match?(size) + elsif /\A(\d+|\d+.\d+)\z/.match?(size) [size, size] end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/asset_url_helper.rb new/lib/action_view/helpers/asset_url_helper.rb --- old/lib/action_view/helpers/asset_url_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/asset_url_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -219,7 +219,7 @@ # Computes the full URL to an asset in the public directory. This # will use +asset_path+ internally, so most of their behaviors - # will be the same. If :host options is set, it overwrites global + # will be the same. If +:host+ options is set, it overwrites global # +config.action_controller.asset_host+ setting. # # All other options provided are forwarded to +asset_path+ call. @@ -324,7 +324,7 @@ # Computes the full URL to a JavaScript asset in the public javascripts directory. # This will use +javascript_path+ internally, so most of their behaviors will be the same. - # Since +javascript_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +javascript_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # javascript_url "js/xmlhr.js", host: "http://stage.example.com" # => http://stage.example.com/assets/js/xmlhr.js @@ -351,7 +351,7 @@ # Computes the full URL to a stylesheet asset in the public stylesheets directory. # This will use +stylesheet_path+ internally, so most of their behaviors will be the same. - # Since +stylesheet_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +stylesheet_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # stylesheet_url "css/style.css", host: "http://stage.example.com" # => http://stage.example.com/assets/css/style.css @@ -381,7 +381,7 @@ # Computes the full URL to an image asset. # This will use +image_path+ internally, so most of their behaviors will be the same. - # Since +image_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +image_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # image_url "edit.png", host: "http://stage.example.com" # => http://stage.example.com/assets/edit.png @@ -407,7 +407,7 @@ # Computes the full URL to a video asset in the public videos directory. # This will use +video_path+ internally, so most of their behaviors will be the same. - # Since +video_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +video_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # video_url "hd.avi", host: "http://stage.example.com" # => http://stage.example.com/videos/hd.avi @@ -433,7 +433,7 @@ # Computes the full URL to an audio asset in the public audios directory. # This will use +audio_path+ internally, so most of their behaviors will be the same. - # Since +audio_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +audio_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # audio_url "horse.wav", host: "http://stage.example.com" # => http://stage.example.com/audios/horse.wav @@ -458,7 +458,7 @@ # Computes the full URL to a font asset. # This will use +font_path+ internally, so most of their behaviors will be the same. - # Since +font_url+ is based on +asset_url+ method you can set :host options. If :host + # Since +font_url+ is based on +asset_url+ method you can set +:host+ options. If +:host+ # options is set, it overwrites global +config.action_controller.asset_host+ setting. # # font_url "font.ttf", host: "http://stage.example.com" # => http://stage.example.com/fonts/font.ttf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/date_helper.rb new/lib/action_view/helpers/date_helper.rb --- old/lib/action_view/helpers/date_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/date_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -26,7 +26,7 @@ MINUTES_IN_QUARTER_YEAR = 131400 MINUTES_IN_THREE_QUARTERS_YEAR = 394200 - # Reports the approximate distance in time between two Time, Date or DateTime objects or integers as seconds. + # Reports the approximate distance in time between two Time, Date, or DateTime objects or integers as seconds. # Pass <tt>include_seconds: true</tt> if you want more detailed approximations when distance < 1 min, 29 secs. # Distances are reported based on the following table: # @@ -291,12 +291,12 @@ Tags::DateSelect.new(object_name, method, self, options, html_options).render end - # Returns a set of select tags (one for hour, minute and optionally second) pre-selected for accessing a + # Returns a set of select tags (one for hour, minute, and optionally second) pre-selected for accessing a # specified time-based attribute (identified by +method+) on an object assigned to the template (identified by # +object+). You can include the seconds with <tt>:include_seconds</tt>. You can get hours in the AM/PM format # with <tt>:ampm</tt> option. # - # This method will also generate 3 input hidden tags, for the actual year, month and day unless the option + # This method will also generate 3 input hidden tags, for the actual year, month, and day unless the option # <tt>:ignore_date</tt> is set to +true+. If you set the <tt>:ignore_date</tt> to +true+, you must have a # +date_select+ on the same method within the form otherwise an exception will be raised. # @@ -871,6 +871,10 @@ end end + def prompt_text(prompt, type) + prompt.kind_of?(String) ? prompt : I18n.translate(:"datetime.prompts.#{type}", locale: @options[:locale]) + end + # If the day is hidden, the day should be set to the 1st so all month and year choices are # valid. Otherwise, February 31st or February 29th, 2011 can be selected, which are invalid. def set_day_if_discarded @@ -1144,7 +1148,7 @@ I18n.translate(:"datetime.prompts.#{type}", locale: @options[:locale]) end - prompt ? content_tag("option", prompt, value: "") : "" + prompt ? content_tag("option", prompt_text(prompt, type), value: "") : "" end # Builds hidden input tag for date part and value. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/form_helper.rb new/lib/action_view/helpers/form_helper.rb --- old/lib/action_view/helpers/form_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/form_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -438,7 +438,7 @@ model = nil object_name = record else - model = record + model = convert_to_model(record) object = _object_for_form_builder(record) raise ArgumentError, "First argument in form cannot contain nil or be empty" unless object object_name = options[:as] || model_name_from_record_or_class(object).param_key @@ -1014,9 +1014,10 @@ # <% end %> # # Note that fields_for will automatically generate a hidden field - # to store the ID of the record. There are circumstances where this - # hidden field is not needed and you can pass <tt>include_id: false</tt> - # to prevent fields_for from rendering it automatically. + # to store the ID of the record if it responds to <tt>persisted?</tt>. + # There are circumstances where this hidden field is not needed and you + # can pass <tt>include_id: false</tt> to prevent fields_for from + # rendering it automatically. def fields_for(record_name, record_object = nil, options = {}, &block) options = { model: record_object, allow_method_names_outside_object: false, skip_default_ids: false }.merge!(options) @@ -1082,7 +1083,7 @@ # Returns a label tag tailored for labelling an input field for a specified attribute (identified by +method+) on an object # assigned to the template (identified by +object+). The text of label will default to the attribute name unless a translation - # is found in the current I18n locale (through helpers.label.<modelname>.<attribute>) or you specify it explicitly. + # is found in the current I18n locale (through <tt>helpers.label.<modelname>.<attribute></tt>) or you specify it explicitly. # Additional options on the label tag can be passed as a hash with +options+. These options will be tagged # onto the HTML as an HTML element attribute as in the example shown, except for the <tt>:value</tt> option, which is designed to # target labels for radio_button tags (where the value is used in the ID of the input tag). @@ -2285,7 +2286,7 @@ @template.fields_for(record_name, record_object, fields_options, &block) end - # See the docs for the <tt>ActionView::FormHelper.fields</tt> helper method. + # See the docs for the ActionView::Helpers::FormHelper#fields helper method. def fields(scope = nil, model: nil, **options, &block) options[:allow_method_names_outside_object] = true options[:skip_default_ids] = !FormHelper.form_with_generates_ids @@ -2297,7 +2298,7 @@ # Returns a label tag tailored for labelling an input field for a specified attribute (identified by +method+) on an object # assigned to the template (identified by +object+). The text of label will default to the attribute name unless a translation - # is found in the current I18n locale (through helpers.label.<modelname>.<attribute>) or you specify it explicitly. + # is found in the current I18n locale (through <tt>helpers.label.<modelname>.<attribute></tt>) or you specify it explicitly. # Additional options on the label tag can be passed as a hash with +options+. These options will be tagged # onto the HTML as an HTML element attribute as in the example shown, except for the <tt>:value</tt> option, which is designed to # target labels for radio_button tags (where the value is used in the ID of the input tag). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/form_options_helper.rb new/lib/action_view/helpers/form_options_helper.rb --- old/lib/action_view/helpers/form_options_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/form_options_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -598,9 +598,9 @@ # # Options: # * <tt>:index_as_value</tt> - Defaults to false, set to true to use the indexes from - # `I18n.translate("date.day_names")` as the values. By default, Sunday is always 0. + # <tt>I18n.translate("date.day_names")</tt> as the values. By default, Sunday is always 0. # * <tt>:day_format</tt> - The I18n key of the array to use for the weekday options. - # Defaults to :day_names, set to :abbr_day_names for abbreviations. + # Defaults to +:day_names+, set to +:abbr_day_names+ for abbreviations. # * <tt>:beginning_of_week</tt> - Defaults to Date.beginning_of_week. # # NOTE: Only the option tags are returned, you have to wrap this call in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/number_helper.rb new/lib/action_view/helpers/number_helper.rb --- old/lib/action_view/helpers/number_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/number_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -9,13 +9,13 @@ module Helpers # :nodoc: # Provides methods for converting numbers into formatted strings. # Methods are provided for phone numbers, currency, percentage, - # precision, positional notation, file size and pretty printing. + # precision, positional notation, file size, and pretty printing. # # Most methods expect a +number+ argument, and will return it # unchanged if can't be converted into a valid number. module NumberHelper # Raised when argument +number+ param given to the helpers is invalid and - # the option :raise is set to +true+. + # the option +:raise+ is set to +true+. class InvalidNumberError < StandardError attr_accessor :number def initialize(number) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/rendering_helper.rb new/lib/action_view/helpers/rendering_helper.rb --- old/lib/action_view/helpers/rendering_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/rendering_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -10,8 +10,8 @@ module RenderingHelper # Returns the result of a render that's dictated by the options hash. The primary options are: # - # * <tt>:partial</tt> - See <tt>ActionView::PartialRenderer</tt>. - # * <tt>:file</tt> - Renders an explicit template file (this used to be the old default), add :locals to pass in those. + # * <tt>:partial</tt> - See ActionView::PartialRenderer. + # * <tt>:file</tt> - Renders an explicit template file (this used to be the old default), add +:locals+ to pass in those. # * <tt>:inline</tt> - Renders an inline template similar to how it's done in the controller. # * <tt>:plain</tt> - Renders the text passed in out. Setting the content # type as <tt>text/plain</tt>. @@ -19,8 +19,7 @@ # performs HTML escape on the string first. Setting the content type as # <tt>text/html</tt>. # * <tt>:body</tt> - Renders the text passed in, and inherits the content - # type of <tt>text/plain</tt> from <tt>ActionDispatch::Response</tt> - # object. + # type of <tt>text/plain</tt> from ActionDispatch::Response object. # # If no <tt>options</tt> hash is passed or if <tt>:update</tt> is specified, then: # @@ -47,7 +46,7 @@ end end - # Overwrites _layout_for in the context object so it supports the case a block is + # Overrides _layout_for in the context object so it supports the case a block is # passed to a partial. Returns the contents that are yielded to a layout, given a # name or a block. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/tag_helper.rb new/lib/action_view/helpers/tag_helper.rb --- old/lib/action_view/helpers/tag_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/tag_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -45,8 +45,8 @@ include CaptureHelper include OutputSafetyHelper - HTML_VOID_ELEMENTS = %i(area base br col circle embed hr img input keygen link meta param source track wbr).to_set - SVG_VOID_ELEMENTS = %i(animate animateMotion animateTransform circle ellipse line path polygon polyline rect set stop use view).to_set + HTML_VOID_ELEMENTS = %i(area base br col embed hr img input keygen link meta param source track wbr).to_set + SVG_SELF_CLOSING_ELEMENTS = %i(animate animateMotion animateTransform circle ellipse line path polygon polyline rect set stop use view).to_set def initialize(view_context) @view_context = view_context @@ -69,8 +69,9 @@ escape = handle_deprecated_escape_options(options) content = @view_context.capture(self, &block) if block_given? - if (HTML_VOID_ELEMENTS.include?(name) || SVG_VOID_ELEMENTS.include?(name)) && content.nil? - "<#{name.to_s.dasherize}#{tag_options(options, escape)}>".html_safe + self_closing = SVG_SELF_CLOSING_ELEMENTS.include?(name) + if (HTML_VOID_ELEMENTS.include?(name) || self_closing) && content.nil? + "<#{name.to_s.dasherize}#{tag_options(options, escape)}#{self_closing ? " />" : ">"}".html_safe else content_tag_string(name.to_s.dasherize, content || "", options, escape) end @@ -239,7 +240,7 @@ # # Thus <tt>data-user-id</tt> can be accessed as <tt>dataset.userId</tt>. # - # Data attribute values are encoded to JSON, with the exception of strings, symbols and + # Data attribute values are encoded to JSON, with the exception of strings, symbols, and # BigDecimals. # This may come in handy when using jQuery's HTML5-aware <tt>.data()</tt> # from 1.4.3. @@ -271,7 +272,7 @@ # Transforms a Hash into HTML attributes, ready to be interpolated into # ERB. Includes or omits boolean attributes based on their truthiness. # Transforms keys nested within - # <tt>aria:</tt> or <tt>data:</tt> objects into `aria-` and `data-` + # <tt>aria:</tt> or <tt>data:</tt> objects into <tt>aria-</tt> and <tt>data-</tt> # prefixed attributes: # # <input <%= tag.attributes(type: :text, aria: { label: "Search" }) %>> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/text_helper.rb new/lib/action_view/helpers/text_helper.rb --- old/lib/action_view/helpers/text_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/text_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -268,7 +268,7 @@ end # Returns +text+ transformed into HTML using simple formatting rules. - # Two or more consecutive newlines(<tt>\n\n</tt> or <tt>\r\n\r\n</tt>) are + # Two or more consecutive newlines (<tt>\n\n</tt> or <tt>\r\n\r\n</tt>) are # considered a paragraph and wrapped in <tt><p></tt> tags. One newline # (<tt>\n</tt> or <tt>\r\n</tt>) is considered a linebreak and a # <tt><br /></tt> tag is appended. This method does not remove the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/url_helper.rb new/lib/action_view/helpers/url_helper.rb --- old/lib/action_view/helpers/url_helper.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/helpers/url_helper.rb 2022-05-09 15:40:11.000000000 +0200 @@ -89,21 +89,6 @@ # # ==== Options # * <tt>:data</tt> - This option can be used to add custom data attributes. - # * <tt>method: symbol of HTTP verb</tt> - This modifier will dynamically - # create an HTML form and immediately submit the form for processing using - # the HTTP verb specified. Useful for having links perform a POST operation - # in dangerous actions like deleting a record (which search bots can follow - # while spidering your site). Supported verbs are <tt>:post</tt>, <tt>:delete</tt>, <tt>:patch</tt>, and <tt>:put</tt>. - # Note that if the user has JavaScript disabled, the request will fall back - # to using GET. If <tt>href: '#'</tt> is used and the user has JavaScript - # disabled clicking the link will have no effect. If you are relying on the - # POST behavior, you should check for it in your controller's action by using - # the request object's methods for <tt>post?</tt>, <tt>delete?</tt>, <tt>patch?</tt>, or <tt>put?</tt>. - # * <tt>remote: true</tt> - This will allow the unobtrusive JavaScript - # driver to make an Ajax request to the URL in question instead of following - # the link. The drivers each provide mechanisms for listening for the - # completion of the Ajax request and performing JavaScript operations once - # they're complete # # ==== Examples # @@ -180,28 +165,43 @@ # link_to "Nonsense search", searches_path(foo: "bar", baz: "quux") # # => <a href="/searches?foo=bar&baz=quux">Nonsense search</a> # - # The only option specific to +link_to+ (<tt>:method</tt>) is used as follows: - # - # link_to("Destroy", "http://www.example.com", method: :delete) - # # => <a href='http://www.example.com' rel="nofollow" data-method="delete">Destroy</a> - # - # Also you can set any link attributes such as <tt>target</tt>, <tt>rel</tt>, <tt>type</tt>: + # You can set any link attributes such as <tt>target</tt>, <tt>rel</tt>, <tt>type</tt>: # # link_to "External link", "http://www.rubyonrails.org/", target: "_blank", rel: "nofollow" # # => <a href="http://www.rubyonrails.org/" target="_blank" rel="nofollow">External link</a> # - # ==== Deprecated: Rails UJS attributes + # ==== Deprecated: Rails UJS Attributes # - # Prior to Rails 7, Rails shipped with a JavaScript library called @rails/ujs on by default. Following Rails 7, + # Prior to Rails 7, Rails shipped with a JavaScript library called <tt>@rails/ujs</tt> on by default. Following Rails 7, # this library is no longer on by default. This library integrated with the following options: # - # * <tt>confirm: 'question?'</tt> - This will allow the unobtrusive JavaScript - # driver to prompt with the question specified (in this case, the + # * <tt>method: symbol of HTTP verb</tt> - This modifier will dynamically + # create an HTML form and immediately submit the form for processing using + # the HTTP verb specified. Useful for having links perform a POST operation + # in dangerous actions like deleting a record (which search bots can follow + # while spidering your site). Supported verbs are <tt>:post</tt>, <tt>:delete</tt>, <tt>:patch</tt>, and <tt>:put</tt>. + # Note that if the user has JavaScript disabled, the request will fall back + # to using GET. If <tt>href: '#'</tt> is used and the user has JavaScript + # disabled clicking the link will have no effect. If you are relying on the + # POST behavior, you should check for it in your controller's action by using + # the request object's methods for <tt>post?</tt>, <tt>delete?</tt>, <tt>patch?</tt>, or <tt>put?</tt>. + # * <tt>remote: true</tt> - This will allow <tt>@rails/ujs</tt> + # to make an Ajax request to the URL in question instead of following + # the link. + # + # <tt>@rails/ujs</tt> also integrated with the following +:data+ options: + # + # * <tt>confirm: "question?"</tt> - This will allow <tt>@rails/ujs</tt> + # to prompt with the question specified (in this case, the # resulting text would be <tt>question?</tt>). If the user accepts, the # link is processed normally, otherwise no action is taken. # * <tt>:disable_with</tt> - Value of this parameter will be used as the - # name for a disabled version of the link. This feature is provided by - # the unobtrusive JavaScript driver. + # name for a disabled version of the link. + # + # ===== Rails UJS Examples + # + # link_to "Remove Profile", profile_path(@profile), method: :delete + # # => <a href="/profiles/1" rel="nofollow" data-method="delete">Remove Profile</a> # # link_to "Visit Other Site", "http://www.rubyonrails.org/", data: { confirm: "Are you sure?" } # # => <a href="http://www.rubyonrails.org/" data-confirm="Are you sure?">Visit Other Site</a> @@ -255,8 +255,6 @@ # <tt>:delete</tt>, <tt>:patch</tt>, and <tt>:put</tt>. By default it will be <tt>:post</tt>. # * <tt>:disabled</tt> - If set to true, it will generate a disabled button. # * <tt>:data</tt> - This option can be used to add custom data attributes. - # * <tt>:remote</tt> - If set to true, will allow the Unobtrusive JavaScript drivers to control the - # submit behavior. By default this behavior is an ajax submit. # * <tt>:form</tt> - This hash will be form attributes # * <tt>:form_class</tt> - This controls the class of the form within which the submit button will # be placed @@ -298,25 +296,38 @@ # # <input name="authenticity_token" type="hidden" value="10f2163b45388899ad4d5ae948988266befcb6c3d1b2451cf657a0c293d605a6" autocomplete="off"/> # # </form>" # - # <%= button_to "Create", { action: "create" }, remote: true, form: { "data-type" => "json" } %> - # # => "<form method="post" action="/images/create" class="button_to" data-remote="true" data-type="json"> + # <%= button_to "Create", { action: "create" }, form: { "data-type" => "json" } %> + # # => "<form method="post" action="/images/create" class="button_to" data-type="json"> # # <button type="submit">Create</button> # # <input name="authenticity_token" type="hidden" value="10f2163b45388899ad4d5ae948988266befcb6c3d1b2451cf657a0c293d605a6" autocomplete="off"/> # # </form>" # - # ==== Deprecated: Rails UJS attributes + # ==== Deprecated: Rails UJS Attributes # - # Prior to Rails 7, Rails shipped with a JavaScript library called @rails/ujs on by default. Following Rails 7, + # Prior to Rails 7, Rails shipped with a JavaScript library called <tt>@rails/ujs</tt> on by default. Following Rails 7, # this library is no longer on by default. This library integrated with the following options: # - # * <tt>confirm: 'question?'</tt> - This will allow the unobtrusive JavaScript - # driver to prompt with the question specified (in this case, the + # * <tt>:remote</tt> - If set to true, will allow <tt>@rails/ujs</tt> to control the + # submit behavior. By default this behavior is an Ajax submit. + # + # <tt>@rails/ujs</tt> also integrated with the following +:data+ options: + # + # * <tt>confirm: "question?"</tt> - This will allow <tt>@rails/ujs</tt> + # to prompt with the question specified (in this case, the # resulting text would be <tt>question?</tt>). If the user accepts, the # button is processed normally, otherwise no action is taken. # * <tt>:disable_with</tt> - Value of this parameter will be # used as the value for a disabled version of the submit - # button when the form is submitted. This feature is provided - # by the unobtrusive JavaScript driver. + # button when the form is submitted. + # + # ===== Rails UJS Examples + # + # <%= button_to "Create", { action: "create" }, remote: true, form: { "data-type" => "json" } %> + # # => "<form method="post" action="/images/create" class="button_to" data-remote="true" data-type="json"> + # # <button type="submit">Create</button> + # # <input name="authenticity_token" type="hidden" value="10f2163b45388899ad4d5ae948988266befcb6c3d1b2451cf657a0c293d605a6" autocomplete="off"/> + # # </form>" + # def button_to(name = nil, options = nil, html_options = nil, &block) html_options, options = options, name if block_given? html_options ||= {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/layouts.rb new/lib/action_view/layouts.rb --- old/lib/action_view/layouts.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/layouts.rb 2022-05-09 15:40:11.000000000 +0200 @@ -183,7 +183,7 @@ # be rendered directly, without wrapping a layout around the rendered view. # # Both the <tt>:only</tt> and <tt>:except</tt> condition can accept an arbitrary number of method references, so - # #<tt>except: [ :rss, :text_only ]</tt> is valid, as is <tt>except: :rss</tt>. + # <tt>except: [ :rss, :text_only ]</tt> is valid, as is <tt>except: :rss</tt>. # # == Using a different layout in the action render call # @@ -255,14 +255,17 @@ # true:: raise an ArgumentError # nil:: Force default layout behavior with inheritance # - # Return value of +Proc+ and +Symbol+ arguments should be +String+, +false+, +true+ or +nil+ + # Return value of +Proc+ and +Symbol+ arguments should be +String+, +false+, +true+, or +nil+ # with the same meaning as described above. + # # ==== Parameters + # # * <tt>layout</tt> - The layout to use. # # ==== Options (conditions) - # * :only - A list of actions to apply this layout to. - # * :except - Apply this layout to all actions but this one. + # + # * +:only+ - A list of actions to apply this layout to. + # * +:except+ - Apply this layout to all actions but this one. def layout(layout, conditions = {}) include LayoutConditions unless conditions.empty? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/record_identifier.rb new/lib/action_view/record_identifier.rb --- old/lib/action_view/record_identifier.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/record_identifier.rb 2022-05-09 15:40:11.000000000 +0200 @@ -102,7 +102,7 @@ # on the default implementation (which just joins all key attributes with '_') or on your own # overwritten version of the method. By default, this implementation passes the key string through a # method that replaces all characters that are invalid inside DOM ids, with valid ones. You need to - # make sure yourself that your dom ids are valid, in case you overwrite this method. + # make sure yourself that your dom ids are valid, in case you override this method. def record_key_for_dom_id(record) # :doc: key = convert_to_model(record).to_key key ? key.join(JOIN) : key diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/renderer/partial_renderer.rb new/lib/action_view/renderer/partial_renderer.rb --- old/lib/action_view/renderer/partial_renderer.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/renderer/partial_renderer.rb 2022-05-09 15:40:11.000000000 +0200 @@ -27,7 +27,7 @@ # This would first render <tt>advertiser/_account.html.erb</tt> with <tt>@buyer</tt> passed in as the local variable +account+, then # render <tt>advertiser/_ad.html.erb</tt> and pass the local variable +ad+ to the template for display. # - # == The :as and :object options + # == The +:as+ and +:object+ options # # By default ActionView::PartialRenderer doesn't have any local variables. # The <tt>:object</tt> option can be used to pass an object to the partial. For instance: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/rendering.rb new/lib/action_view/rendering.rb --- old/lib/action_view/rendering.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/rendering.rb 2022-05-09 15:40:11.000000000 +0200 @@ -33,8 +33,8 @@ super end - # Overwrite process to set up I18n proxy. - def process(*) # :nodoc: + # Override process to set up I18n proxy. + def process(...) # :nodoc: old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context) super ensure diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/template/resolver.rb new/lib/action_view/template/resolver.rb --- old/lib/action_view/template/resolver.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/template/resolver.rb 2022-05-09 15:40:11.000000000 +0200 @@ -19,7 +19,7 @@ def build_path_regex handlers = Template::Handlers.extensions.map { |x| Regexp.escape(x) }.join("|") formats = Template::Types.symbols.map { |x| Regexp.escape(x) }.join("|") - locales = "[a-z]{2}(?:-[A-Z]{2})?" + locales = "[a-z]{2}(?:[-_][A-Z]{2})?" variants = "[^.]*" %r{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/test_case.rb new/lib/action_view/test_case.rb --- old/lib/action_view/test_case.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/test_case.rb 2022-05-09 15:40:11.000000000 +0200 @@ -57,7 +57,7 @@ include ActiveSupport::Testing::ConstantLookup delegate :lookup_context, to: :controller - attr_accessor :controller, :output_buffer, :rendered + attr_accessor :controller, :request, :output_buffer, :rendered module ClassMethods def tests(helper_class) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/version.rb new/lib/action_view/version.rb --- old/lib/action_view/version.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/version.rb 2022-05-09 15:40:11.000000000 +0200 @@ -3,7 +3,7 @@ require_relative "gem_version" module ActionView - # Returns the version of the currently loaded ActionView as a <tt>Gem::Version</tt> + # Returns the currently loaded version of Action View as a <tt>Gem::Version</tt>. def self.version gem_version end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/view_paths.rb new/lib/action_view/view_paths.rb --- old/lib/action_view/view_paths.rb 2022-04-26 21:32:40.000000000 +0200 +++ new/lib/action_view/view_paths.rb 2022-05-09 15:40:11.000000000 +0200 @@ -91,9 +91,9 @@ self.class._prefixes end - # <tt>LookupContext</tt> is the object responsible for holding all + # LookupContext is the object responsible for holding all # information required for looking up templates, i.e. view paths and - # details. Check <tt>ActionView::LookupContext</tt> for more information. + # details. Check ActionView::LookupContext for more information. def lookup_context @_lookup_context ||= ActionView::LookupContext.new(self.class._view_paths, details_for_lookup, _prefixes) @@ -103,7 +103,7 @@ {} end - # Append a path to the list of view paths for the current <tt>LookupContext</tt>. + # Append a path to the list of view paths for the current LookupContext. # # ==== Parameters # * <tt>path</tt> - If a String is provided, it gets converted into @@ -113,7 +113,7 @@ lookup_context.view_paths.push(*path) end - # Prepend a path to the list of view paths for the current <tt>LookupContext</tt>. + # Prepend a path to the list of view paths for the current LookupContext. # # ==== Parameters # * <tt>path</tt> - If a String is provided, it gets converted into diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2022-04-26 21:32:40.000000000 +0200 +++ new/metadata 2022-05-09 15:40:11.000000000 +0200 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: actionview version: !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 platform: ruby authors: - David Heinemeier Hansson autorequire: bindir: bin cert_chain: [] -date: 2022-04-26 00:00:00.000000000 Z +date: 2022-05-09 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: activesupport @@ -16,14 +16,14 @@ requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 - !ruby/object:Gem::Dependency name: builder requirement: !ruby/object:Gem::Requirement @@ -92,28 +92,28 @@ requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 - !ruby/object:Gem::Dependency name: activemodel requirement: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 7.0.2.4 + version: 7.0.3 description: Simple, battle-tested conventions and helpers for building web pages. email: da...@loudthinking.com executables: [] @@ -246,10 +246,10 @@ - MIT metadata: bug_tracker_uri: https://github.com/rails/rails/issues - changelog_uri: https://github.com/rails/rails/blob/v7.0.2.4/actionview/CHANGELOG.md - documentation_uri: https://api.rubyonrails.org/v7.0.2.4/ + changelog_uri: https://github.com/rails/rails/blob/v7.0.3/actionview/CHANGELOG.md + documentation_uri: https://api.rubyonrails.org/v7.0.3/ mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk - source_code_uri: https://github.com/rails/rails/tree/v7.0.2.4/actionview + source_code_uri: https://github.com/rails/rails/tree/v7.0.3/actionview rubygems_mfa_required: 'true' post_install_message: rdoc_options: [] @@ -267,7 +267,7 @@ version: '0' requirements: - none -rubygems_version: 3.1.6 +rubygems_version: 3.3.7 signing_key: specification_version: 4 summary: Rendering framework putting the V in MVC (part of Rails).