Sha256: c836473fd5fc9ad5de2fd1993466ccbadc111f2df087b41e1df8e5def056bde1

Contents?: true

Size: 928 Bytes

Versions: 90

Compression:

Stored size: 928 Bytes

Contents

require 'itamae-mitsurin'

module ItamaeMitsurin
  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

90 entries across 47 versions & 1 rubygems

Version Path
itamae-mitsurin-1.0.3 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-1.0.2 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-1.0.1 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-1.0.0 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.50 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.50 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.49 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.49 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.48 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.48 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.47 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.47 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.46 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.46 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.45 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.45 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.44 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.44 test/test_itamae-mitsurin/test_definition.rb
itamae-mitsurin-0.43 lib/itamae-mitsurin/definition.rb
itamae-mitsurin-0.43 test/test_itamae-mitsurin/test_definition.rb