Sha256: 338346a62bbdb752d397e7455aab2ad390932b7368c4ecb8677c2b52d2de9706

Contents?: true

Size: 602 Bytes

Versions: 2

Compression:

Stored size: 602 Bytes

Contents

module Stove
  class Plugin::Base
    extend Mixin::Filterable
    extend Mixin::Loggable
    extend Mixin::Optionable
    extend Mixin::Validatable

    option :id
    option :description

    class << self
      def onload(&block)
        if block
          @onload = block
        else
          @onload
        end
      end
    end

    attr_reader :cookbook
    attr_reader :options

    def initialize(cookbook, options = {})
      @cookbook, @options = cookbook, options
      instance_eval(&onload)
    end

    private

    def onload
      self.class.onload || Proc.new {}
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stove-2.0.0.beta.2 lib/stove/plugins/base.rb
stove-2.0.0.beta.1 lib/stove/plugins/base.rb