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.
31 lines
681 B
31 lines
681 B
class FormHandler |
|
include Singleton |
|
attr_reader :forms |
|
|
|
def initialize |
|
@forms = get_all_forms |
|
end |
|
|
|
def get_form(form) |
|
return @forms["test_form"] ||= Form.new("test_form") if ENV["RAILS_ENV"] == "test" |
|
|
|
@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| |
|
next if (filename == ".") || (filename == "..") |
|
|
|
form_name = filename.sub(".json", "") |
|
form_path = "#{directory}/#{filename}" |
|
forms[form_name] = Form.new(form_path) |
|
end |
|
end |
|
forms |
|
end |
|
end
|
|
|