module Quby::Compiler::DSL

Public Class Methods

build(key, sourcecode = nil, path: nil, timestamp: nil, lookup_tables: {}, &block) click to toggle source
# File lib/quby/compiler/dsl.rb, line 19
def self.build(key, sourcecode = nil, path: nil, timestamp: nil, lookup_tables: {}, &block)
  Entities::Questionnaire.new(key, last_update: timestamp).tap do |questionnaire|
    builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: lookup_tables)
    builder.instance_eval(sourcecode, path || key) if sourcecode
    builder.instance_eval(&block) if block
    questionnaire.callback_after_dsl_enhance_on_questions
  end
end
build_from_definition(definition) click to toggle source
# File lib/quby/compiler/dsl.rb, line 11
def self.build_from_definition(definition)
  Entities::Questionnaire.new(definition.key, last_update: definition.timestamp).tap do |questionnaire|
    builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: definition.lookup_tables)
    builder.instance_eval(definition.sourcecode, definition.path) if definition.sourcecode
    questionnaire.callback_after_dsl_enhance_on_questions
  end
end