Sha256: fdf425248f158119f23272563ea5320ca44a51b128f127a56d0abc684409f463

Contents?: true

Size: 1.03 KB

Versions: 9

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'quby/questionnaires/dsl/base'
require 'quby/questionnaires/dsl/helpers'
require 'quby/questionnaires/dsl/questionnaire_builder'

module Quby
  module Questionnaires
    module DSL
      def self.build_from_definition(definition)
        Entities::Questionnaire.new(definition.key, last_update: definition.timestamp).tap do |questionnaire|
          builder = QuestionnaireBuilder.new(questionnaire)
          builder.instance_eval(definition.sourcecode, definition.path) if definition.sourcecode
          questionnaire.callback_after_dsl_enhance_on_questions
        end
      end

      def self.build(key, sourcecode = nil, timestamp: nil, &block)
        Entities::Questionnaire.new(key, last_update: timestamp).tap do |questionnaire|
          builder = QuestionnaireBuilder.new(questionnaire)
          builder.instance_eval(sourcecode, key) if sourcecode
          builder.instance_eval(&block) if block
          questionnaire.callback_after_dsl_enhance_on_questions
        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.rb
quby-4.0.3 lib/quby/questionnaires/dsl.rb
quby-4.0.2 lib/quby/questionnaires/dsl.rb
quby-4.0.1 lib/quby/questionnaires/dsl.rb
quby-4.0.0 lib/quby/questionnaires/dsl.rb
quby-3.2.2 lib/quby/questionnaires/dsl.rb
quby-3.2.1 lib/quby/questionnaires/dsl.rb
quby-3.2.0 lib/quby/questionnaires/dsl.rb
quby-3.2.0.pre.pre1 lib/quby/questionnaires/dsl.rb