Sha256: 401edd2daad88222b7567c02a6175ef3e271a52309ac7797537a468ea27c6195

Contents?: true

Size: 540 Bytes

Versions: 4

Compression:

Stored size: 540 Bytes

Contents

# frozen_string_literal: true

require 'heart_top/plugin'

module HeartTop
  class Agent
    PLUGINS = %i[slack].freeze

    def initialize(interval:, verbose:)
      @interval = interval
      @verbose  = verbose
    end

    def run
      loop do
        execute_plugins
        sleep @interval
      end
    end

    private

    def execute_plugins
      puts 'executing ...' if @verbose
      PLUGINS.each do |plugin|
        Object.const_get("HeartTop::Plugin::#{plugin.capitalize}").instance.send('ping')
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
heart_top-0.3.2 lib/heart_top/agent.rb
heart_top-0.3.1 lib/heart_top/agent.rb
heart_top-0.3.0 lib/heart_top/agent.rb
heart_top-0.2.0 lib/heart_top/agent.rb