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

Version Path
quby-4.0.4 lib/quby/questionnaires/dsl/table_builder.rb
quby-4.0.3 lib/quby/questionnaires/dsl/table_builder.rb
quby-4.0.2 lib/quby/questionnaires/dsl/table_builder.rb
quby-4.0.1 lib/quby/questionnaires/dsl/table_builder.rb
quby-4.0.0 lib/quby/questionnaires/dsl/table_builder.rb
quby-3.2.2 lib/quby/questionnaires/dsl/table_builder.rb
quby-3.2.1 lib/quby/questionnaires/dsl/table_builder.rb
quby-3.2.0 lib/quby/questionnaires/dsl/table_builder.rb
quby-3.2.0.pre.pre1 lib/quby/questionnaires/dsl/table_builder.rb