class Copperegg::Alerts::Schedule

Attributes

schedules[R]

Public Class Methods

new() click to toggle source
# File lib/copperegg/alerts/schedule.rb, line 9
def initialize
  @client = Copperegg::Alerts::Client.instance
  @schedules = @client.get('alerts/schedules.json')
end

Public Instance Methods

add(name, *args) click to toggle source
# File lib/copperegg/alerts/schedule.rb, line 36
def add(name, *args)
  defaults = {
    'name' => name,
    'state' => 'enabled',
    'duration' => 10,
    'start_time' => Time.now.gmtime.strftime('%Y-%m-%dt%H:%M:%Sz')
  }
  args.each { |arg| defaults.deep_merge!(arg) }
  result = @client.post?('alerts/schedules.json', defaults)
  @schedules << result.parsed_response if result
end
create(name, tags = {}) click to toggle source
# File lib/copperegg/alerts/schedule.rb, line 14
def create(name, tags = {})
  delete(name)
  add(name, tags)
end
delete(name) click to toggle source
# File lib/copperegg/alerts/schedule.rb, line 48
def delete(name)
  selected_schedules = @schedules.select { |h| h['name'] == name }
  if selected_schedules
    @schedules -= selected_schedules
    selected_schedules.each do |s|
      if @client.delete?("alerts/schedules/#{s['id']}.json").nil?
        @schedules << s
      end
    end
  end
end
update(name, *args) click to toggle source
# File lib/copperegg/alerts/schedule.rb, line 19
def update(name, *args)
  body = {}
  args.each { |arg| body.deep_merge!(arg) }
  selected_schedules = @schedules.select { |h| h['name'] == name }
  if selected_schedules
    @schedules -= selected_schedules
    selected_schedules.each do |s|
      result = @client.put?("alerts/schedules/#{s['id']}.json", body)
      @schedules << if result.nil?
                      s
                    else
                      result
                    end
    end
  end
end