Class: SlowServer::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/slow_server/config.rb

Direct Known Subclasses

ClientConfig, ServerConfig

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



9
10
11
12
13
14
# File 'lib/slow_server/config.rb', line 9

def initialize
  self.port = 4000
  self.chunks = 1
  self.response_delay = 0
  self.chunk_delay = 0
end

Instance Attribute Details

#chunk_delayObject

Returns the value of attribute chunk_delay.



7
8
9
# File 'lib/slow_server/config.rb', line 7

def chunk_delay
  @chunk_delay
end

#chunksObject

Returns the value of attribute chunks.



7
8
9
# File 'lib/slow_server/config.rb', line 7

def chunks
  @chunks
end

#portObject

Returns the value of attribute port.



7
8
9
# File 'lib/slow_server/config.rb', line 7

def port
  @port
end

#response_delayObject

Returns the value of attribute response_delay.



7
8
9
# File 'lib/slow_server/config.rb', line 7

def response_delay
  @response_delay
end

Instance Method Details

#argsObject



27
28
29
# File 'lib/slow_server/config.rb', line 27

def args
  opts.parse!
end

#optsObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/slow_server/config.rb', line 16

def opts
  @opts ||= OptionParser.new do |opt|
    opt.banner = "Usage: #{File.basename($PROGRAM_NAME)} [OPTIONS] [RESPONSE]"
    opt.on("-p", "--port NUMBER",            Integer, "Listen Port                         (default: #{self.port})")           { |v| self.port = v }
    opt.on("-c", "--chunks BYTES",           Integer, "Chunks                              (default: #{self.chunks})")         { |v| self.chunks = v }
    opt.on("-d", "--delay SECONDS",          Integer, "Transmission delay after connecting (default: #{self.response_delay})") { |v| self.response_delay = v }
    opt.on("-k", "--chunk-delay SECONDS",    Float,   "Delay between chunks                (default: #{self.chunk_delay})")    { |v| self.chunk_delay = v }
    opt.on("-v", "--version",                         "Show Version")                                                          { puts SlowServer::VERSION; throw :exit }
  end
end