Sha256: dec76ba0b330e2920085953e994eea65eb1d0467598e31b2fc051f5f8c19bb68
Contents?: true
Size: 945 Bytes
Versions: 3
Compression:
Stored size: 945 Bytes
Contents
module Blueprints # Class for actual blueprints. Allows building itself by executing block passed against current context. class Plan < Buildable # Initializes blueprint by name and block def initialize(name, &block) super(name) @block = block end # Builds plan and adds it to executed plan hash. Setups instance variable with same name as plan if it is not defined yet. def build_plan surface_errors do if @block @result = Namespace.root.context.instance_eval(&@block) Namespace.root.add_variable(path, @result) end end unless Namespace.root.executed_plans.include?(path) Namespace.root.executed_plans << path @result end private def surface_errors yield rescue StandardError => error puts "\n=> There was an error building scenario '#{@name}'", error.inspect, '', error.backtrace raise error end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
blueprints-0.4.2 | lib/blueprints/plan.rb |
blueprints-0.4.1 | lib/blueprints/plan.rb |
blueprints-0.4.0 | lib/blueprints/plan.rb |