Follow Zeitwerk conventions in names with acronyms

We were getting a few errors when trying out Zeitwerk:

```
expected file lib/sms_api.rb to define constant SmsApi

expected file app/components/layout/common_html_attributes_component.rb
to define constant Layout::CommonHtmlAttributesComponent
```

In these cases, we aren't using an inflection because we also define the
`Verification::SmsController` and a few migrations containing `Html` in
their class name, and none of them would work if we defined the
inflection.

We were also getting an error regarding classes containing WYSIWYG in
its name:

```
NameError: uninitialized constant WYSIWYGSanitizer
Did you mean?  WysiwygSanitizer
```

In this case, adding the acronym is easier, since we never use "Wysiwyg"
in the code but we use "WYSIWYG" in many places.
This commit is contained in:
Javi Martín
2023-07-25 05:01:30 +02:00
parent e1d9e6f30f
commit 1a0f4ec65f
6 changed files with 7 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
class Layout::CommonHTMLAttributesComponent < ApplicationComponent
class Layout::CommonHtmlAttributesComponent < ApplicationComponent
use_helpers :rtl?
private

View File

@@ -11,6 +11,6 @@ module LayoutsHelper
end
def common_html_attributes
render Layout::CommonHTMLAttributesComponent.new
render Layout::CommonHtmlAttributesComponent.new
end
end

View File

@@ -1,5 +1,5 @@
require "open-uri"
class SMSApi
class SmsApi
attr_accessor :client
def initialize

View File

@@ -24,7 +24,7 @@ class Verification::Sms
end
def send_sms
SMSApi.new.sms_deliver(user.unconfirmed_phone, user.sms_confirmation_code)
SmsApi.new.sms_deliver(user.unconfirmed_phone, user.sms_confirmation_code)
end
def verified?

View File

@@ -18,5 +18,6 @@
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.plural(/^(\d+)$/i, '\1')
inflect.acronym "SDG"
inflect.acronym "WYSIWYG"
inflect.irregular "organización", "organizaciones"
end

View File

@@ -1,7 +1,7 @@
require "rails_helper"
describe Layout::CommonHTMLAttributesComponent do
let(:component) { Layout::CommonHTMLAttributesComponent.new }
describe Layout::CommonHtmlAttributesComponent do
let(:component) { Layout::CommonHtmlAttributesComponent.new }
context "with multitenancy disabled" do
before { allow(Rails.application.config).to receive(:multitenancy).and_return(false) }