There were a few changes needed:
* Plugins are now specified through `plugin:` config keyword.
* All plugin gems need to be specified explicitly in Gemfile since they
are no longer dependencies of plugins already specified explicitly.
* All plugin gems need to be updated in other to use the new APIs.
* One cop was renamed.
* New offenses safe to correct were corrected directly with `bundle exec
rubocop -a`.
* New offenses unsafe to correct were added to the TODO configuration
with `bundle exec rubocop --auto-gen-config --auto-gen-only-exclude
--exclude-limit 1400 --no-auto-gen-timestamp`.
This happened back in 2015 through
9c9051498b, but two places were missed.
One was a code comment so did not affect anything (other than confused
code readers I guess?). The other one did create a regression but was
later fixed by 18d966f0de in 2021.
We're passing the `id` key twice, and with different value, resulting in
warnings like:
> /path/to/app/views/producers/index.html.haml:27: warning: key :id is duplicated and overwritten on line 31
Use only the latest value passed to remove the warning.
##### Before
```
$ bundle exec rspec -e "displays in an iframe" -e "logging in with a redirect set"
(...)
Run options: include {:full_description=>/(?-mix:displays\ in\ an\ iframe)|(?-mix:logging\ in\ with\ a\ redirect\ set)/}
Capybara starting Puma...
* Version 6.5.0, codename: Sky's Version
* Min threads: 0, max threads: 4
* Listening on http://127.0.0.1:50292
/path/to/app/views/producers/index.html.haml:27: warning: key :id is duplicated and overwritten on line 31
./path/to/app/views/groups/show.html.haml:68: warning: key :id is duplicated and overwritten on line 72
Modal window with text `Unable to load map. Please check your browser settings and allow 3rd party cookies for this website.` has been opened, but you didn't wrap your code into (`accept_prompt` | `dismiss_prompt` | `accept_confirm` | `dismiss_confirm` | `accept_alert`), accepting by default
.
Finished in 4.54 seconds (files took 4.04 seconds to load)
2 examples, 0 failures
```
##### After
```
$ bundle exec rspec -e "displays in an iframe" -e "logging in with a redirect set"
(...)
Run options: include {:full_description=>/(?-mix:displays\ in\ an\ iframe)|(?-mix:logging\ in\ with\ a\ redirect\ set)/}
Capybara starting Puma...
* Version 6.5.0, codename: Sky's Version
* Min threads: 0, max threads: 4
* Listening on http://127.0.0.1:50256
.Modal window with text `Unable to load map. Please check your browser settings and allow 3rd party cookies for this website.` has been opened, but you didn't wrap your code into (`accept_prompt` | `dismiss_prompt` | `accept_confirm` | `dismiss_confirm` | `accept_alert`), accepting by default
.
Finished in 4.17 seconds (files took 4.1 seconds to load)
2 examples, 0 failures
```
The first test tokens had an inconsistent client_id and I had to
introduce multiple mappings to get the right config. But that has been
harmonised and we can put the config in one place.
We separate the default tag rules and the various tag rule groups by an
index of 1000. This is so the previous group does not overlap with the
current group. Rails will managed the non continusly numbered
tag_rule_attributes param just fine. It saves us from having to manage
the numbering of tag_rule_attributes in javascript
- allow passing html options to the hidden field with the tags values,
to be used to add stimulus directive
- dispatch an input event when the hidden field with tags value gets
updated, it allows stimulus controller (or javascript) to react to
update
TagRuleController is now a subclass of Spree::Admin::BaseController
because Admin::ResourceController did not play well with turbo_stream.
And to be honest we did not need all the functionality provided by the
ResourceController