Class: Cukeregator::Aggregator

Inherits:
Object
  • Object
show all
Includes:
Status
Defined in:
lib/cukeregator/aggregator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Status

#status

Constructor Details

#initialize(files) ⇒ Aggregator

Returns a new instance of Aggregator.



32
33
34
35
36
# File 'lib/cukeregator/aggregator.rb', line 32

def initialize(files)
  @docs = files.map do |f|
    HtmlReader.new(File.read(f), f)
  end
end

Instance Attribute Details

#docsObject (readonly)

Returns the value of attribute docs.



30
31
32
# File 'lib/cukeregator/aggregator.rb', line 30

def docs
  @docs
end

Instance Method Details

#durationObject



61
62
63
64
65
66
# File 'lib/cukeregator/aggregator.rb', line 61

def duration
  @duration ||= @docs.inject(0) do |result, doc|
    result += doc.duration
    result
  end
end

#duration_inner_htmlObject



50
51
52
# File 'lib/cukeregator/aggregator.rb', line 50

def duration_inner_html
  SummaryFormatter.duration_inner_html(duration_string)
end

#duration_stringObject



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cukeregator/aggregator.rb', line 68

def duration_string
  hours = (duration / 3600).to_i
  min_sec = duration % 3600
  minutes = (min_sec / 60).to_i
  seconds = min_sec % 60

  s = ""
  s += "#{hours}h" if hours > 0
  s += "#{minutes}m"
  s += "#{seconds.to_s[0..5]}s"
  s
end

#scenario_totalsObject



38
39
40
# File 'lib/cukeregator/aggregator.rb', line 38

def scenario_totals
  @scenario_totals ||= sum_hash(:scenario_totals)
end

#step_totalsObject



57
58
59
# File 'lib/cukeregator/aggregator.rb', line 57

def step_totals
  @step_totals ||= sum_hash(:step_totals)
end

#total_scenariosObject



42
43
44
# File 'lib/cukeregator/aggregator.rb', line 42

def total_scenarios
  @total_scenarios ||= sum(:total_scenarios)
end

#total_stepsObject



53
54
55
# File 'lib/cukeregator/aggregator.rb', line 53

def total_steps
  @total_steps ||= sum(:total_steps)
end

#totals_inner_htmlObject



46
47
48
# File 'lib/cukeregator/aggregator.rb', line 46

def totals_inner_html
  SummaryFormatter.totals_inner_html {|method| self.send(method) }
end