Class: Bombard::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/bombard/runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts) ⇒ Runner

Returns a new instance of Runner.



7
8
9
10
11
12
13
# File 'lib/bombard/runner.rb', line 7

def initialize(opts)
  @global_opts = Config.for opts
  @conf        = @global_opts.bombard

  load_requirements
  publish
end

Instance Attribute Details

#confObject (readonly)

Returns the value of attribute conf.



5
6
7
# File 'lib/bombard/runner.rb', line 5

def conf
  @conf
end

Instance Method Details

#buildObject



33
34
35
36
# File 'lib/bombard/runner.rb', line 33

def build
  puts "Building using:\n\t#{builder}"
  builder.with_opts(@conf.builder_opts)
end

#builderObject



28
29
30
31
# File 'lib/bombard/runner.rb', line 28

def builder
  # TODO: Need a sane default or simply fail if not specified.
  @builder ||= @conf.builder ? class_for(@conf.builder, Bombard::Builder) : Bombard::Builder::Test
end

#load_requirementsObject



38
39
40
# File 'lib/bombard/runner.rb', line 38

def load_requirements
  require_all @conf.require if @conf.require
end

#publishObject



23
24
25
26
# File 'lib/bombard/runner.rb', line 23

def publish
  puts "Publishing using:\n\t#{publisher}"
  publisher.for(results).with_opts(@conf.publisher_opts).publish
end

#publisherObject



19
20
21
# File 'lib/bombard/runner.rb', line 19

def publisher
  @publisher ||= @conf.publisher ? class_for(@conf.publisher, Bombard::Publisher) : Bombard::Publisher::Console
end

#resultsObject



15
16
17
# File 'lib/bombard/runner.rb', line 15

def results
  @results ||= Siege.new(build.urls, @global_opts.siege).results
end