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_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

2
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)

11
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

2
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

Loading…
Cancel
Save