Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
class FormHandler
|
|
|
|
include Singleton
|
|
|
|
attr_reader :forms
|
|
|
|
|
|
|
|
def initialize
|
|
|
|
@forms = get_all_forms
|
|
|
|
end
|
|
|
|
|
|
|
|
def get_form(form)
|
|
|
|
@forms[form]
|
|
|
|
end
|
|
|
|
|
|
|
|
def current_form
|
|
|
|
forms[forms.keys.max_by(&:to_i)]
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def get_all_forms
|
|
|
|
forms = {}
|
|
|
|
directories.each do |directory|
|
|
|
|
Dir.glob("#{directory}/*.json").each do |form_path|
|
|
|
|
form_name = form_path.sub(".json", "").split("/")[-1]
|
|
|
|
forms[form_name] = Form.new(form_path, form_name)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
forms
|
|
|
|
end
|
|
|
|
|
|
|
|
def directories
|
|
|
|
Rails.env.test? ? ["spec/fixtures/forms"] : ["config/forms"]
|
|
|
|
end
|
|
|
|
end
|