class StartHer::Heartbeat

Constants

CHANNELS
DEFAULT_OPTS

Attributes

options[R]
request[R]
response[RW]

Public Class Methods

call(request, service_klass, opts = {}, &subscriber_heartbeat_block) click to toggle source
# File lib/start_her/heartbeat.rb, line 12
def self.call(request, service_klass, opts = {}, &subscriber_heartbeat_block)
  new(request, service_klass, opts, &subscriber_heartbeat_block).call
end
new(request, service_klass, opts = {}, &subscriber_heartbeat_block) click to toggle source
# File lib/start_her/heartbeat.rb, line 16
def initialize(request, service_klass, opts = {}, &subscriber_heartbeat_block)
  @request = request
  @subscriber_heartbeat_block = subscriber_heartbeat_block
  @options = DEFAULT_OPTS.merge opts
  @response = {
    id: msid(service_klass),
    generated_at: Time.now.utc.to_s,
    service_name: service_klass.to_s,
    ping: request['data']
  }
  @response[:version] = service_klass::VERSION if defined? service_klass::VERSION
end

Public Instance Methods

call() click to toggle source
# File lib/start_her/heartbeat.rb, line 29
def call
  @subscriber_heartbeat_block.call(response) if @subscriber_heartbeat_block
  publish(options[:heartbeat][:out],
    id: SecureRandom.uuid, generated_at: Time.now.utc.to_s, data: response)
end