class CycloneLariat::Abstract::Client

Constants

DEFAULT_INSTANCE
DEFAULT_VERSION

Attributes

key[R]
region[R]
secret_key[R]

Public Class Methods

instance(instance = nil) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 60
def instance(instance = nil)
  instance.nil? ? @instance || DEFAULT_INSTANCE : @instance = instance
end
new(key:, secret_key:, region:, version: nil, publisher: nil, instance: nil) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 20
def initialize(key:, secret_key:, region:, version: nil, publisher: nil, instance: nil)
  @key = key
  @secret_key = secret_key
  @region = region
  @version = version
  @publisher = publisher
  @instance = instance
end
publisher(publisher = nil) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 64
def publisher(publisher = nil)
  publisher.nil? ? @publisher || (raise 'You should define publisher') : @publisher = publisher
end
version(version = nil) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 56
def version(version = nil)
  version.nil? ? @version || DEFAULT_VERSION : @version = version
end

Public Instance Methods

command(type, data: {}, version: self.version, uuid: SecureRandom.uuid) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 40
def command(type, data: {}, version: self.version, uuid: SecureRandom.uuid)
  Command.wrap(
    uuid: uuid,
    type: type,
    sent_at: Time.now.iso8601,
    version: version,
    publisher: publisher,
    data: data
  )
end
event(type, data: {}, version: self.version, uuid: SecureRandom.uuid) click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 29
def event(type, data: {}, version: self.version, uuid: SecureRandom.uuid)
  Event.wrap(
    uuid: uuid,
    type: type,
    sent_at: Time.now.iso8601,
    version: version,
    publisher: publisher,
    data: data
  )
end
instance() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 77
def instance
  @instance ||= self.class.instance
end
publish() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 51
def publish
  raise LunaPark::Errors::AbstractMethod, 'Publish method should be defined'
end
publisher() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 73
def publisher
  @publisher ||= self.class.publisher
end
version() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 69
def version
  @version ||= self.class.version
end

Private Instance Methods

aws_client() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 85
def aws_client
  @aws_client ||= aws_client_class.new(credentials: aws_credentials, region: region)
end
aws_credentials() click to toggle source
# File lib/cyclone_lariat/abstract/client.rb, line 89
def aws_credentials
  @aws_credentials ||= aws_credentials_class.new(key, secret_key)
end