Sha256: e567923e758ec50b6b35afac290773fb8a823e115c1408404144aaf095e9de3d
Contents?: true
Size: 1.36 KB
Versions: 9
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true require 'quby/questionnaires/entities' module Quby module Questionnaires module DSL class TableBuilder prepend CallsCustomMethods include Helpers def initialize(panel, options = {}) @panel = panel @table = Entities::Table.new(options) @default_question_options = options[:default_question_options] || {} @panel.items << @table end def title(value) @table.title = value end def description(value) @table.description = value end def text(value, options = {}) @table.items << Entities::Text.new(value.to_s, options) end def question(key, options = {}, &block) options = @default_question_options.merge(options) .merge(table: @table, questionnaire: @panel.questionnaire) check_question_keys_uniqueness key, options, @panel.questionnaire fail "You can't create a slider in a table at the moment" if options[:as] == :slider question = QuestionBuilder.build(key, options, &block) @panel.questionnaire.register_question(question) @table.items << question @panel.items << question end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems