diff --git a/Gemfile b/Gemfile index 60ca7b1b6..f28f6dee0 100644 --- a/Gemfile +++ b/Gemfile @@ -21,7 +21,6 @@ gem "bootsnap", ">= 1.4.4", require: false gem "govuk-components" gem "govuk_design_system_formbuilder" gem "hotwire-rails" -gem "singleton" group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console diff --git a/Gemfile.lock b/Gemfile.lock index d565e7d8c..328d2a9ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -287,7 +287,6 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.3) - singleton (0.1.1) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -356,7 +355,6 @@ DEPENDENCIES scss_lint-govuk selenium-webdriver simplecov - singleton tzinfo-data web-console (>= 4.1.0) webpacker (~> 5.0) diff --git a/app/models/form_handler.rb b/app/models/form_handler.rb index 3251e3371..986ebd4da 100644 --- a/app/models/form_handler.rb +++ b/app/models/form_handler.rb @@ -1,9 +1,9 @@ class FormHandler include Singleton + attr_reader :forms def initialize - @forms = {} - get_all_forms + @forms = get_all_forms end def get_form(form) @@ -12,7 +12,10 @@ class FormHandler @forms[form] ||= Form.new(form) end + + private def get_all_forms + forms = {} directories = ["config/forms", "spec/fixtures/forms"] directories.each do |directory| Dir.foreach(directory) do |filename| @@ -20,9 +23,9 @@ class FormHandler form_name = filename.sub(".json", "") form_path = "#{directory}/#{filename}" - @forms[form_name] = Form.new(form_path) + forms[form_name] = Form.new(form_path) end end - @forms + forms end end diff --git a/spec/models/form_handler_spec.rb b/spec/models/form_handler_spec.rb index 8e4e53e53..239326199 100644 --- a/spec/models/form_handler_spec.rb +++ b/spec/models/form_handler_spec.rb @@ -4,7 +4,7 @@ RSpec.describe FormHandler do describe "Get all forms" do it "should be able to load all the forms" do form_handler = FormHandler.instance - all_forms = form_handler.get_all_forms + all_forms = form_handler.forms expect(all_forms.count).to be >= 1 expect(all_forms["test_form"]).to be_a(Form) end