Sha256: 27b1fe14d0c8a63185d1fbebd61ad6847b2d074f5bef7f799e1f90cec80391cf
Contents?: true
Size: 1.07 KB
Versions: 4
Compression:
Stored size: 1.07 KB
Contents
require 'itamae-mitsurin' module ItamaeMitsurin class Notification < Struct.new(:defined_in_resource, :action, :target_resource_desc, :timing) def self.create(*args) self.new(*args).tap(&:validate!) end def resource runner.children.find_resource_by_description(target_resource_desc) end def run action_resource.run(action) end def action_resource resource end def runner defined_in_resource.recipe.runner end def delayed? [:delay, :delayed].include?(timing) end def immediately? timing == :immediately end def validate! unless [:delay, :delayed, :immediately].include?(timing) ItamaeMitsurin.logger.error "'#{timing}' is not valid notification timing. (Valid option is delayed or immediately)" ItamaeMitsurin.file_logger.error "'#{timing}' is not valid notification timing. (Valid option is delayed or immediately)" abort end end end class Subscription < Notification def action_resource defined_in_resource end end end
Version data entries
4 entries across 4 versions & 1 rubygems