Sha256: 89688078a2e08523a563a804d94437958c51742ba6a0bfa0a0a9f5d03a324235
Contents?: true
Size: 1.31 KB
Versions: 4
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true require_relative "./condition_pack" require_relative "./condition_creator" require_relative "../logging/logger" module Kanal module Core module Conditions # This class helps in condition pack creation # with the help of dsl class ConditionPackCreator include Logging::Logger TEMP_NAME = :temp_name def initialize(name) @name = name @conditions = [] end def create(&block) instance_eval(&block) unless @name logger.fatal "Attempted to create condition pack without name" raise "Please provide condition pack name" end if @conditions.empty? logger.fatal "Attempted to create condition pack #{@name} without conditions provided" raise "Please provide conditions for condition pack #{@name}" end logger.info "Creating condition pack '#{@name}'" pack = ConditionPack.new(@name) @conditions.each do |c| pack.register_condition c end pack end def add_condition(name, &block) creator = ConditionCreator.new name condition = creator.create(&block) @conditions.append condition end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems