Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-actionview-8.0 for openSUSE:Factory checked in at 2025-08-22 17:49:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-actionview-8.0 (Old) and /work/SRC/openSUSE:Factory/.rubygem-actionview-8.0.new.29662 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-actionview-8.0" Fri Aug 22 17:49:21 2025 rev:4 rq:1300917 version:8.0.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-actionview-8.0/rubygem-actionview-8.0.changes 2025-01-21 21:10:24.218801150 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-actionview-8.0.new.29662/rubygem-actionview-8.0.changes 2025-08-22 17:50:47.827432115 +0200 @@ -1,0 +2,6 @@ +Thu Aug 14 00:24:56 UTC 2025 - Marcus Rueckert <mrueck...@suse.de> + +- Update to version 8.0.2.1: + https://rubyonrails.org/2025/8/13/Rails-Versions-8-0-2-1-7-2-2-2-and-7-1-5-2-have-been-released + +------------------------------------------------------------------- Old: ---- actionview-8.0.1.gem New: ---- actionview-8.0.2.1.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-actionview-8.0.spec ++++++ --- /var/tmp/diff_new_pack.ulFgbz/_old 2025-08-22 17:50:49.235490785 +0200 +++ /var/tmp/diff_new_pack.ulFgbz/_new 2025-08-22 17:50:49.235490785 +0200 @@ -1,7 +1,7 @@ # # spec file for package rubygem-actionview-8.0 # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-actionview-8.0 -Version: 8.0.1 +Version: 8.0.2.1 Release: 0 %define mod_name actionview %define mod_full_name %{mod_name}-%{version} ++++++ actionview-8.0.1.gem -> actionview-8.0.2.1.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md --- old/CHANGELOG.md 2024-12-13 21:02:35.000000000 +0100 +++ new/CHANGELOG.md 1980-01-02 01:00:00.000000000 +0100 @@ -1,3 +1,48 @@ +## Rails 8.0.2.1 (August 13, 2025) ## + +* No changes. + + +## Rails 8.0.2 (March 12, 2025) ## + +* No changes. + + +## Rails 8.0.2 (March 12, 2025) ## + +* Respect `html_options[:form]` when `collection_checkboxes` generates the + hidden `<input>`. + + *Riccardo Odone* + +* Layouts have access to local variables passed to `render`. + + This fixes #31680 which was a regression in Rails 5.1. + + *Mike Dalessio* + +* Argument errors related to strict locals in templates now raise an + `ActionView::StrictLocalsError`, and all other argument errors are reraised as-is. + + Previously, any `ArgumentError` raised during template rendering was swallowed during strict + local error handling, so that an `ArgumentError` unrelated to strict locals (e.g., a helper + method invoked with incorrect arguments) would be replaced by a similar `ArgumentError` with an + unrelated backtrace, making it difficult to debug templates. + + Now, any `ArgumentError` unrelated to strict locals is reraised, preserving the original + backtrace for developers. + + Also note that `ActionView::StrictLocalsError` is a subclass of `ArgumentError`, so any existing + code that rescues `ArgumentError` will continue to work. + + Fixes #52227. + + *Mike Dalessio* + +* Fix stack overflow error in dependency tracker when dealing with circular dependencies + + *Jean Boussier* + ## Rails 8.0.1 (December 13, 2024) ## * Fix a crash in ERB template error highlighting when the error occurs on a 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/base.rb new/lib/action_view/base.rb --- old/lib/action_view/base.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/base.rb 1980-01-02 01:00:00.000000000 +0100 @@ -267,15 +267,12 @@ begin public_send(method, locals, buffer, **locals, &block) rescue ArgumentError => argument_error - raise( - ArgumentError, - argument_error. - message. - gsub("unknown keyword:", "unknown local:"). - gsub("missing keyword:", "missing local:"). - gsub("no keywords accepted", "no locals accepted"). - concat(" for #{@current_template.short_identifier}") - ) + public_send_line = __LINE__ - 2 + frame = argument_error.backtrace_locations[1] + if frame.path == __FILE__ && frame.lineno == public_send_line + raise StrictLocalsError.new(argument_error, @current_template) + end + raise end else public_send(method, locals, buffer, &block) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/digestor.rb new/lib/action_view/digestor.rb --- old/lib/action_view/digestor.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/digestor.rb 1980-01-02 01:00:00.000000000 +0100 @@ -107,8 +107,12 @@ end.join("-") end - def to_dep_map - children.any? ? { name => children.map(&:to_dep_map) } : name + def to_dep_map(seen = Set.new.compare_by_identity) + if seen.add?(self) + children.any? ? { name => children.map { |c| c.to_dep_map(seen) } } : name + else # the tree has a cycle + name + end end end 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 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/gem_version.rb 1980-01-02 01:00:00.000000000 +0100 @@ -9,8 +9,8 @@ module VERSION MAJOR = 8 MINOR = 0 - TINY = 1 - PRE = nil + TINY = 2 + PRE = "1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/cache_helper.rb new/lib/action_view/helpers/cache_helper.rb --- old/lib/action_view/helpers/cache_helper.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/helpers/cache_helper.rb 1980-01-02 01:00:00.000000000 +0100 @@ -197,7 +197,7 @@ CachingRegistry.caching? end - # Raises +UncacheableFragmentError+ when called from within a +cache+ block. + # Raises UncacheableFragmentError when called from within a +cache+ block. # # Useful to denote helper methods that can't participate in fragment caching: # @@ -206,7 +206,7 @@ # "#{project.name} - #{Time.now}" # end # - # # Which will then raise if used within a +cache+ block: + # # Which will then raise if used within a `cache` block: # <% cache project do %> # <%= project_name_with_time(project) %> # <% end %> 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 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/helpers/form_helper.rb 1980-01-02 01:00:00.000000000 +0100 @@ -31,7 +31,7 @@ # of the resource should show the current values of those attributes. # # In \Rails, this is usually achieved by creating the form using either - # +form_with+ or +form_for+ and a number of related helper methods. These + # #form_with or #form_for and a number of related helper methods. These # methods generate an appropriate <tt>form</tt> tag and yield a form # builder object that knows the model the form is about. Input fields are # created by calling methods defined on the form builder, which means they @@ -42,7 +42,7 @@ # # For example, to create a new person you typically set up a new instance of # +Person+ in the <tt>PeopleController#new</tt> action, <tt>@person</tt>, and - # in the view template pass that object to +form_with+ or +form_for+: + # in the view template pass that object to #form_with or #form_for: # # <%= form_with model: @person do |f| %> # <%= f.label :first_name %>: @@ -209,7 +209,7 @@ # are designed to work with an object as base, like # FormOptionsHelper#collection_select and DateHelper#datetime_select. # - # === #form_for with a model object + # === +form_for+ with a model object # # In the examples above, the object to be created or edited was # represented by a symbol passed to +form_for+, and we noted that @@ -364,7 +364,7 @@ # # === Removing hidden model id's # - # The form_for method automatically includes the model id as a hidden field in the form. + # The +form_for+ method automatically includes the model id as a hidden field in the form. # This is used to maintain the correlation between the form data and its associated model. # Some ORM systems do not use IDs on nested models so in this case you want to be able # to disable the hidden id. @@ -784,12 +784,12 @@ end end - # Creates a scope around a specific model object like +form_with+, but + # Creates a scope around a specific model object like #form_with, but # doesn't create the form tags themselves. This makes +fields_for+ # suitable for specifying additional model objects in the same form. # - # Although the usage and purpose of +fields_for+ is similar to +form_with+'s, - # its method signature is slightly different. Like +form_with+, it yields + # Although the usage and purpose of +fields_for+ is similar to #form_with's, + # its method signature is slightly different. Like #form_with, it yields # a FormBuilder object associated with a particular model object to a block, # and within the block allows methods to be called on the builder to # generate fields associated with the model object. Fields may reflect @@ -848,7 +848,7 @@ # === Nested Attributes Examples # # When the object belonging to the current scope has a nested attribute - # writer for a certain attribute, fields_for will yield a new scope + # writer for a certain attribute, +fields_for+ will yield a new scope # for that attribute. This allows you to create forms that set or change # the attributes of a parent object and its associations in one go. # @@ -937,7 +937,7 @@ # end # # Note that the <tt>projects_attributes=</tt> writer method is in fact - # required for fields_for to correctly identify <tt>:projects</tt> as a + # required for +fields_for+ to correctly identify <tt>:projects</tt> as a # collection, and the correct indices to be set in the form markup. # # When projects is already an association on Person you can use @@ -949,7 +949,7 @@ # end # # This model can now be used with a nested fields_for. The block given to - # the nested fields_for call will be repeated for each instance in the + # the nested +fields_for+ call will be repeated for each instance in the # collection: # # <%= form_with model: @person do |person_form| %> @@ -1021,10 +1021,10 @@ # ... # <% end %> # - # Note that fields_for will automatically generate a hidden field + # Note that +fields_for+ will automatically generate a hidden field # 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 + # 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) @@ -1033,7 +1033,7 @@ end # Scopes input fields with either an explicit scope or model. - # Like +form_with+ does with <tt>:scope</tt> or <tt>:model</tt>, + # Like #form_with does with <tt>:scope</tt> or <tt>:model</tt>, # except it doesn't output the form tags. # # # Using a scope prefixes the input field names: @@ -1048,7 +1048,7 @@ # <% end %> # # => <input type="text" name="comment[body]" value="full bodied"> # - # # Using +fields+ with +form_with+: + # # Using `fields` with `form_with`: # <%= form_with model: @article do |form| %> # <%= form.text_field :title %> # @@ -1057,13 +1057,13 @@ # <% end %> # <% end %> # - # Much like +form_with+ a FormBuilder instance associated with the scope + # Much like #form_with a FormBuilder instance associated with the scope # or model is yielded, so any generated field names are prefixed with # either the passed scope or the scope inferred from the <tt>:model</tt>. # # === Mixing with other form helpers # - # While +form_with+ uses a FormBuilder object it's possible to mix and + # While #form_with uses a FormBuilder object it's possible to mix and # match the stand-alone FormHelper methods and methods # from FormTagHelper: # @@ -1221,7 +1221,7 @@ # hash with +options+. These options will be tagged onto the HTML as an HTML element attribute as in the example # shown. # - # Using this method inside a +form_with+ block will set the enclosing form's encoding to <tt>multipart/form-data</tt>. + # Using this method inside a #form_with block will set the enclosing form's encoding to <tt>multipart/form-data</tt>. # # ==== Options # * Creates standard HTML attributes for the tag. @@ -1326,7 +1326,7 @@ # the elements of the array. For each item with a checked check box you # get an extra ghost item with only that attribute, assigned to "0". # - # In that case it is preferable to either use +checkbox_tag+ or to use + # In that case it is preferable to either use FormTagHelper#checkbox_tag or to use # hashes instead of arrays. # # ==== Examples @@ -1632,7 +1632,7 @@ # # A +FormBuilder+ object is associated with a particular model object and # allows you to generate fields associated with the model object. The - # +FormBuilder+ object is yielded when using +form_with+ or +fields_for+. + # +FormBuilder+ object is yielded when using #form_with or #fields_for. # For example: # # <%= form_with model: @person do |person_form| %> @@ -1770,7 +1770,7 @@ # <% end %> # # In the example above, the <tt><input type="text"></tt> element built by - # the call to <tt>FormBuilder#text_field</tt> declares an + # the call to #text_field declares an # <tt>aria-describedby</tt> attribute referencing the <tt><span></tt> # element, sharing a common <tt>id</tt> root (<tt>article_title</tt>, in this # case). @@ -2033,12 +2033,12 @@ end alias_method :text_area, :textarea - # Creates a scope around a specific model object like +form_with+, but + # Creates a scope around a specific model object like #form_with, but # doesn't create the form tags themselves. This makes +fields_for+ # suitable for specifying additional model objects in the same form. # - # Although the usage and purpose of +fields_for+ is similar to +form_with+'s, - # its method signature is slightly different. Like +form_with+, it yields + # Although the usage and purpose of +fields_for+ is similar to #form_with's, + # its method signature is slightly different. Like #form_with, it yields # a FormBuilder object associated with a particular model object to a block, # and within the block allows methods to be called on the builder to # generate fields associated with the model object. Fields may reflect @@ -2109,7 +2109,7 @@ # === Nested Attributes Examples # # When the object belonging to the current scope has a nested attribute - # writer for a certain attribute, fields_for will yield a new scope + # writer for a certain attribute, +fields_for+ will yield a new scope # for that attribute. This allows you to create forms that set or change # the attributes of a parent object and its associations in one go. # @@ -2140,7 +2140,7 @@ # end # end # - # This model can now be used with a nested fields_for, like so: + # This model can now be used with a nested +fields_for+, like so: # # <%= form_with model: @person do |person_form| %> # ... @@ -2198,7 +2198,7 @@ # end # # Note that the <tt>projects_attributes=</tt> writer method is in fact - # required for fields_for to correctly identify <tt>:projects</tt> as a + # required for +fields_for+ to correctly identify <tt>:projects</tt> as a # collection, and the correct indices to be set in the form markup. # # When projects is already an association on Person you can use @@ -2209,8 +2209,8 @@ # accepts_nested_attributes_for :projects # end # - # This model can now be used with a nested fields_for. The block given to - # the nested fields_for call will be repeated for each instance in the + # This model can now be used with a nested +fields_for+. The block given to + # the nested +fields_for+ call will be repeated for each instance in the # collection: # # <%= form_with model: @person do |person_form| %> @@ -2282,10 +2282,10 @@ # ... # <% end %> # - # Note that fields_for will automatically generate a hidden field + # 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 prevent +fields_for+ from rendering it automatically. def fields_for(record_name, record_object = nil, fields_options = nil, &block) fields_options, record_object = record_object, nil if fields_options.nil? && record_object.is_a?(Hash) && record_object.extractable_options? fields_options ||= {} @@ -2451,7 +2451,7 @@ # the elements of the array. For each item with a checked check box you # get an extra ghost item with only that attribute, assigned to "0". # - # In that case it is preferable to either use +checkbox_tag+ or to use + # In that case it is preferable to either use FormTagHelper#checkbox_tag or to use # hashes instead of arrays. # # ==== Examples @@ -2525,7 +2525,7 @@ # hash with +options+. These options will be tagged onto the HTML as an HTML element attribute as in the example # shown. # - # Using this method inside a +form_with+ block will set the enclosing form's encoding to <tt>multipart/form-data</tt>. + # Using this method inside a #form_with block will set the enclosing form's encoding to <tt>multipart/form-data</tt>. # # ==== Options # * Creates standard HTML attributes for the tag. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/output_safety_helper.rb new/lib/action_view/helpers/output_safety_helper.rb --- old/lib/action_view/helpers/output_safety_helper.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/helpers/output_safety_helper.rb 1980-01-02 01:00:00.000000000 +0100 @@ -38,8 +38,7 @@ # Converts the array to a comma-separated sentence where the last element is # joined by the connector word. This is the html_safe-aware version of - # ActiveSupport's {Array#to_sentence}[https://api.rubyonrails.org/classes/Array.html#method-i-to_sentence]. - # + # ActiveSupport's Array#to_sentence. def to_sentence(array, options = {}) options.assert_valid_keys(:words_connector, :two_words_connector, :last_word_connector, :locale) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/sanitize_helper.rb new/lib/action_view/helpers/sanitize_helper.rb --- old/lib/action_view/helpers/sanitize_helper.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/helpers/sanitize_helper.rb 1980-01-02 01:00:00.000000000 +0100 @@ -24,6 +24,12 @@ # # Custom sanitization rules can also be provided. # + # <b>Warning</b>: Adding disallowed tags or attributes to the allowlists may introduce + # vulnerabilities into your application. Please rely on the default allowlists whenever + # possible, because they are curated to maintain security and safety. If you think that the + # default allowlists should be expanded, please {open an issue on the rails-html-sanitizer + # project}[https://github.com/rails/rails-html-sanitizer/issues]. + # # Please note that sanitizing user-provided text does not guarantee that the # resulting markup is valid or even well-formed. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/helpers/tags/collection_helpers.rb new/lib/action_view/helpers/tags/collection_helpers.rb --- old/lib/action_view/helpers/tags/collection_helpers.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/helpers/tags/collection_helpers.rb 1980-01-02 01:00:00.000000000 +0100 @@ -106,7 +106,8 @@ def hidden_field hidden_name = @html_options[:name] || hidden_field_name - @template_object.hidden_field_tag(hidden_name, "", id: nil) + options = { id: nil, form: @html_options[:form] } + @template_object.hidden_field_tag(hidden_name, "", options) end def hidden_field_name 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 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/layouts.rb 1980-01-02 01:00:00.000000000 +0100 @@ -284,7 +284,7 @@ silence_redefinition_of_method(:_layout) prefixes = /\blayouts/.match?(_implied_layout_name) ? [] : ["layouts"] - default_behavior = "lookup_context.find_all('#{_implied_layout_name}', #{prefixes.inspect}, false, [], { formats: formats }).first || super" + default_behavior = "lookup_context.find_all('#{_implied_layout_name}', #{prefixes.inspect}, false, keys, { formats: formats }).first || super" name_clause = if name default_behavior else @@ -325,7 +325,7 @@ class_eval <<-RUBY, __FILE__, __LINE__ + 1 # frozen_string_literal: true - def _layout(lookup_context, formats) + def _layout(lookup_context, formats, keys) if _conditional_layout? #{layout_definition} else @@ -389,8 +389,8 @@ case name when String then _normalize_layout(name) when Proc then name - when true then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, true) } - when :default then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, false) } + when true then Proc.new { |lookup_context, formats, keys| _default_layout(lookup_context, formats, keys, true) } + when :default then Proc.new { |lookup_context, formats, keys| _default_layout(lookup_context, formats, keys, false) } when false, nil then nil else raise ArgumentError, @@ -412,9 +412,9 @@ # # ==== Returns # * <tt>template</tt> - The template object for the default layout (or +nil+) - def _default_layout(lookup_context, formats, require_layout = false) + def _default_layout(lookup_context, formats, keys, require_layout = false) begin - value = _layout(lookup_context, formats) if action_has_layout? + value = _layout(lookup_context, formats, keys) if action_has_layout? rescue NameError => e raise e, "Could not render layout: #{e.message}" end 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 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/renderer/partial_renderer.rb 1980-01-02 01:00:00.000000000 +0100 @@ -94,7 +94,7 @@ # # <%= render partial: "accounts/account", locals: { account: @account} %> # <%= render partial: @account %> # - # # @posts is an array of Post instances, so every post record returns 'posts/post' on +to_partial_path+, + # # @posts is an array of Post instances, so every post record returns 'posts/post' on #to_partial_path, # # that's why we can replace: # # <%= render partial: "posts/post", collection: @posts %> # <%= render partial: @posts %> @@ -114,7 +114,7 @@ # # <%= render partial: "accounts/account", locals: { account: @account} %> # <%= render @account %> # - # # @posts is an array of Post instances, so every post record returns 'posts/post' on +to_partial_path+, + # # @posts is an array of Post instances, so every post record returns 'posts/post' on #to_partial_path, # # that's why we can replace: # # <%= render partial: "posts/post", collection: @posts %> # <%= render @posts %> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/renderer/template_renderer.rb new/lib/action_view/renderer/template_renderer.rb --- old/lib/action_view/renderer/template_renderer.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/renderer/template_renderer.rb 1980-01-02 01:00:00.000000000 +0100 @@ -99,14 +99,14 @@ if layout.start_with?("/") raise ArgumentError, "Rendering layouts from an absolute path is not supported." else - @lookup_context.find_template(layout, nil, false, [], details) + @lookup_context.find_template(layout, nil, false, keys, details) end rescue ActionView::MissingTemplate all_details = @details.merge(formats: @lookup_context.default_formats) - raise unless template_exists?(layout, nil, false, [], **all_details) + raise unless template_exists?(layout, nil, false, keys, **all_details) end when Proc - resolve_layout(layout.call(@lookup_context, formats), keys, formats) + resolve_layout(layout.call(@lookup_context, formats, keys), keys, formats) else layout end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/action_view/template/error.rb new/lib/action_view/template/error.rb --- old/lib/action_view/template/error.rb 2024-12-13 21:02:35.000000000 +0100 +++ new/lib/action_view/template/error.rb 1980-01-02 01:00:00.000000000 +0100 @@ -27,6 +27,17 @@ end end + class StrictLocalsError < ArgumentError # :nodoc: + def initialize(argument_error, template) + message = argument_error.message. + gsub("unknown keyword:", "unknown local:"). + gsub("missing keyword:", "missing local:"). + gsub("no keywords accepted", "no locals accepted"). + concat(" for #{template.short_identifier}") + super(message) + end + end + class MissingTemplate < ActionViewError # :nodoc: attr_reader :path, :paths, :prefixes, :partial diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2024-12-13 21:02:35.000000000 +0100 +++ new/metadata 1980-01-02 01:00:00.000000000 +0100 @@ -1,14 +1,13 @@ --- !ruby/object:Gem::Specification name: actionview version: !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 platform: ruby authors: - David Heinemeier Hansson -autorequire: bindir: bin cert_chain: [] -date: 2024-12-13 00:00:00.000000000 Z +date: 1980-01-02 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: activesupport @@ -16,14 +15,14 @@ requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 - !ruby/object:Gem::Dependency name: builder requirement: !ruby/object:Gem::Requirement @@ -86,28 +85,28 @@ requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 - !ruby/object:Gem::Dependency name: activemodel requirement: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 8.0.1 + version: 8.0.2.1 description: Simple, battle-tested conventions and helpers for building web pages. email: da...@loudthinking.com executables: [] @@ -247,12 +246,11 @@ - MIT metadata: bug_tracker_uri: https://github.com/rails/rails/issues - changelog_uri: https://github.com/rails/rails/blob/v8.0.1/actionview/CHANGELOG.md - documentation_uri: https://api.rubyonrails.org/v8.0.1/ + changelog_uri: https://github.com/rails/rails/blob/v8.0.2.1/actionview/CHANGELOG.md + documentation_uri: https://api.rubyonrails.org/v8.0.2.1/ mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk - source_code_uri: https://github.com/rails/rails/tree/v8.0.1/actionview + source_code_uri: https://github.com/rails/rails/tree/v8.0.2.1/actionview rubygems_mfa_required: 'true' -post_install_message: rdoc_options: [] require_paths: - lib @@ -268,8 +266,7 @@ version: '0' requirements: - none -rubygems_version: 3.5.22 -signing_key: +rubygems_version: 3.6.9 specification_version: 4 summary: Rendering framework putting the V in MVC (part of Rails). test_files: []