Sha256: e147de3c49ce2080aed08aa5e4a62c9dfcf87eea0f3f5472cbcd30da6b5604a7
Contents?: true
Size: 911 Bytes
Versions: 62
Compression:
Stored size: 911 Bytes
Contents
require 'itamae' module Itamae class Definition < Resource::Base class << self attr_accessor :definition_block attr_accessor :defined_in_recipe def create_class(name, params, defined_in_recipe, &block) Class.new(self).tap do |klass| klass.definition_block = block klass.defined_in_recipe = defined_in_recipe klass.define_attribute :action, default: :run params.each_pair do |key, value| klass.define_attribute key.to_sym, type: Object, default: value end end end end def initialize(*args) super r = Recipe::RecipeFromDefinition.new( runner, self.class.defined_in_recipe.path, ) recipe.children << r r.definition = self r.load(params: @attributes.merge(name: resource_name)) end def run(*args) # nothing end end end
Version data entries
62 entries across 62 versions & 2 rubygems