class Screengem::Factories::QuestionFactory

Knows how to create a Question from a question name.

Public Instance Methods

method_missing(question_name, *args) click to toggle source
# File lib/screengem/factories/question_factory.rb, line 9
      def method_missing(question_name, *args)
        question_class_name = "#{question_name}_question".camelize
        question_class = "#{question_scope}::#{question_class_name}".constantize

        question_class.new(*args)
      rescue => e
        QuestionError.new(<<~MSG)
          Unable to create question: '#{question_class_name}'.
            Details: #{e.message}
        MSG
      end
respond_to_missing?(_question_name, *) click to toggle source
# File lib/screengem/factories/question_factory.rb, line 21
def respond_to_missing?(_question_name, *)
  true
end

Private Instance Methods

question_scope() click to toggle source
# File lib/screengem/factories/question_factory.rb, line 33
def question_scope
  @question_scope ||= ::Screengem.configuration.question_scope
end