From 1a0f4ec65f5c873b45557cf38dd334e0700ff91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 25 Jul 2023 05:01:30 +0200 Subject: [PATCH] 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. --- app/components/layout/common_html_attributes_component.rb | 2 +- app/helpers/layouts_helper.rb | 2 +- app/lib/sms_api.rb | 2 +- app/models/verification/sms.rb | 2 +- config/initializers/inflections.rb | 1 + .../layout/common_html_attributes_component_spec.rb | 4 ++-- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/components/layout/common_html_attributes_component.rb b/app/components/layout/common_html_attributes_component.rb index 0d4d8b741..63f35e0f6 100644 --- a/app/components/layout/common_html_attributes_component.rb +++ b/app/components/layout/common_html_attributes_component.rb @@ -1,4 +1,4 @@ -class Layout::CommonHTMLAttributesComponent < ApplicationComponent +class Layout::CommonHtmlAttributesComponent < ApplicationComponent use_helpers :rtl? private diff --git a/app/helpers/layouts_helper.rb b/app/helpers/layouts_helper.rb index 32ddde240..c602ba983 100644 --- a/app/helpers/layouts_helper.rb +++ b/app/helpers/layouts_helper.rb @@ -11,6 +11,6 @@ module LayoutsHelper end def common_html_attributes - render Layout::CommonHTMLAttributesComponent.new + render Layout::CommonHtmlAttributesComponent.new end end diff --git a/app/lib/sms_api.rb b/app/lib/sms_api.rb index d6373e934..db61fffe3 100644 --- a/app/lib/sms_api.rb +++ b/app/lib/sms_api.rb @@ -1,5 +1,5 @@ require "open-uri" -class SMSApi +class SmsApi attr_accessor :client def initialize diff --git a/app/models/verification/sms.rb b/app/models/verification/sms.rb index 4e8e07f71..ad23dda00 100644 --- a/app/models/verification/sms.rb +++ b/app/models/verification/sms.rb @@ -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? diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index e95cdbca7..17b2717d6 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -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 diff --git a/spec/components/layout/common_html_attributes_component_spec.rb b/spec/components/layout/common_html_attributes_component_spec.rb index ded22103c..ecdc6187b 100644 --- a/spec/components/layout/common_html_attributes_component_spec.rb +++ b/spec/components/layout/common_html_attributes_component_spec.rb @@ -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) }