Module: Quby::Compiler::DSL::Questions::Subquestions

Included in:
CheckboxQuestionBuilder, RadioQuestionBuilder
Defined in:
lib/quby/compiler/dsl/questions/base.rb

Instance Method Summary collapse

Instance Method Details

#initialize(key, **options, &block) ⇒ Object



143
144
145
146
# File 'lib/quby/compiler/dsl/questions/base.rb', line 143

def initialize(key, **options, &block)
  super
  @default_question_options = options[:default_question_options] || {}
end

#question(key, **options, &block) ⇒ Object



163
164
165
166
167
168
169
170
171
172
173
174
175
# File 'lib/quby/compiler/dsl/questions/base.rb', line 163

def question(key, **options, &block)
  options = @default_question_options.merge(options)
                                     .merge(questionnaire: @questionnaire,
                                            parent: @question,
                                            parent_option_key: @question.options.last.key)

  check_question_keys_uniqueness key, options, @questionnaire

  question = QuestionBuilder.build(key, **options, &block)

  @questionnaire.register_question(question)
  @question.options.last.questions << question
end

#title_question(key, **options, &block) ⇒ Object



148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/quby/compiler/dsl/questions/base.rb', line 148

def title_question(key, **options, &block)
  options = @default_question_options.merge({depends_on: @question.key,
                                             questionnaire: @questionnaire,
                                             parent: @question,
                                             presentation: :next_to_title,
                                             allow_blank_titles: @question.allow_blank_titles}.merge(options))

  check_question_keys_uniqueness key, options, @questionnaire

  question = QuestionBuilder.build(key, **options, &block)

  @questionnaire.register_question(question)
  @question.title_question = question
end