class Itamae::Notification

Public Class Methods

create(*args) click to toggle source
# File lib/itamae/notification.rb, line 5
def self.create(*args)
  self.new(*args).tap(&:validate!)
end

Public Instance Methods

action_resource() click to toggle source
# File lib/itamae/notification.rb, line 17
def action_resource
  resource
end
delayed?() click to toggle source
# File lib/itamae/notification.rb, line 25
def delayed?
  [:delay, :delayed].include?(timing)
end
immediately?() click to toggle source
# File lib/itamae/notification.rb, line 29
def immediately?
  timing == :immediately
end
resource() click to toggle source
# File lib/itamae/notification.rb, line 9
def resource
  runner.children.find_resource_by_description(target_resource_desc)
end
run() click to toggle source
# File lib/itamae/notification.rb, line 13
def run
  action_resource.run(action)
end
runner() click to toggle source
# File lib/itamae/notification.rb, line 21
def runner
  defined_in_resource.recipe.runner
end
validate!() click to toggle source
# File lib/itamae/notification.rb, line 33
def validate!
  unless [:delay, :delayed, :immediately].include?(timing)
    Itamae.logger.error "'#{timing}' is not valid notification timing. (Valid option is delayed or immediately)"
    abort
  end
end