class Drnbench::PublishSubscribe::Configuration

Attributes

engine[RW]
feed_file[RW]
n_publishings[RW]
n_steps[RW]
output_path[RW]
protocol_adapter[RW]
report_progressively[RW]
start_n_subscribers[RW]
subscribe_request_file[RW]
timeout[RW]

Public Class Methods

new() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 25
def initialize
  @start_n_subscribers  = 1000
  @n_publishings        = 1000
  @n_steps              = 10
  @timeout              = 10

  @report_progressively = true
  @output_path          = "/tmp/drnbench-pubsub-result.csv"

  @engine           = Server::EngineConfiguration.new
  @protocol_adapter = Server::ProtocolAdapterConfiguration.new
  @protocol_adapter.engine = @engine
end

Public Instance Methods

feed() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 56
def feed
  @feed ||= prepare_feed
end
new_feed() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 60
def new_feed
  Marshal.load(Marshal.dump(feed))
end
new_subscribe_request() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 52
def new_subscribe_request
  Marshal.load(Marshal.dump(subscribe_request))
end
subscribe_request() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 48
def subscribe_request
  @subscribe_request ||= prepare_subscribe_request
end
validate() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 39
def validate
  if @subscribe_request_file.nil?
    raise ArgumentError.new("You must specify a JSON file for a message pattern to subscribe.")
  end
  if @feed_file.nil?
    raise ArgumentError.new("You must specify a JSON file for a message pattern to feed.")
  end
end

Private Instance Methods

prepare_feed() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 70
def prepare_feed
  feed_file = Pathname(@feed_file).expand_path(Dir.pwd)
  JSON.parse(feed_file.read)
end
prepare_subscribe_request() click to toggle source
# File lib/drnbench/publish-subscribe/configuration.rb, line 65
def prepare_subscribe_request
  subscribe_request_file = Pathname(@subscribe_request_file).expand_path(Dir.pwd)
  JSON.parse(subscribe_request_file.read)
end