Browse Source

remove singleton and make get_all_forms a private method

pull/46/head
Kat 4 years ago
parent
commit
0c14dc40c4
  1. 1
      Gemfile
  2. 2
      Gemfile.lock
  3. 11
      app/models/form_handler.rb
  4. 2
      spec/models/form_handler_spec.rb

1
Gemfile

@ -21,7 +21,6 @@ gem "bootsnap", ">= 1.4.4", require: false
gem "govuk-components" gem "govuk-components"
gem "govuk_design_system_formbuilder" gem "govuk_design_system_formbuilder"
gem "hotwire-rails" gem "hotwire-rails"
gem "singleton"
group :development, :test do group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console # Call 'byebug' anywhere in the code to stop execution and get a debugger console

2
Gemfile.lock

@ -287,7 +287,6 @@ GEM
simplecov_json_formatter (~> 0.1) simplecov_json_formatter (~> 0.1)
simplecov-html (0.12.3) simplecov-html (0.12.3)
simplecov_json_formatter (0.1.3) simplecov_json_formatter (0.1.3)
singleton (0.1.1)
sprockets (4.0.2) sprockets (4.0.2)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (> 1, < 3) rack (> 1, < 3)
@ -356,7 +355,6 @@ DEPENDENCIES
scss_lint-govuk scss_lint-govuk
selenium-webdriver selenium-webdriver
simplecov simplecov
singleton
tzinfo-data tzinfo-data
web-console (>= 4.1.0) web-console (>= 4.1.0)
webpacker (~> 5.0) webpacker (~> 5.0)

11
app/models/form_handler.rb

@ -1,9 +1,9 @@
class FormHandler class FormHandler
include Singleton include Singleton
attr_reader :forms
def initialize def initialize
@forms = {} @forms = get_all_forms
get_all_forms
end end
def get_form(form) def get_form(form)
@ -12,7 +12,10 @@ class FormHandler
@forms[form] ||= Form.new(form) @forms[form] ||= Form.new(form)
end end
private
def get_all_forms def get_all_forms
forms = {}
directories = ["config/forms", "spec/fixtures/forms"] directories = ["config/forms", "spec/fixtures/forms"]
directories.each do |directory| directories.each do |directory|
Dir.foreach(directory) do |filename| Dir.foreach(directory) do |filename|
@ -20,9 +23,9 @@ class FormHandler
form_name = filename.sub(".json", "") form_name = filename.sub(".json", "")
form_path = "#{directory}/#{filename}" form_path = "#{directory}/#{filename}"
@forms[form_name] = Form.new(form_path) forms[form_name] = Form.new(form_path)
end end
end end
@forms forms
end end
end end

2
spec/models/form_handler_spec.rb

@ -4,7 +4,7 @@ RSpec.describe FormHandler do
describe "Get all forms" do describe "Get all forms" do
it "should be able to load all the forms" do it "should be able to load all the forms" do
form_handler = FormHandler.instance 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.count).to be >= 1
expect(all_forms["test_form"]).to be_a(Form) expect(all_forms["test_form"]).to be_a(Form)
end end

Loading…
Cancel
Save