Class: PrettyFace::Formatter::ReportFeature

Inherits:
Object
  • Object
show all
Includes:
Formatting
Defined in:
lib/pretty_face/formatter/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Formatting

#directory_prefix_for, #formatted_duration, #image_tag_for, #separator, #summary_percent, #table_image_for

Constructor Details

#initialize(feature, parent_filename) ⇒ ReportFeature

Returns a new instance of ReportFeature.



88
89
90
91
92
93
94
# File 'lib/pretty_face/formatter/report.rb', line 88

def initialize(feature, parent_filename)
  @scenarios = []
  @background = []
  @start_time = Time.now
  @description = feature.description
  @parent_filename = parent_filename
end

Instance Attribute Details

#backgroundObject

Returns the value of attribute background.



85
86
87
# File 'lib/pretty_face/formatter/report.rb', line 85

def background
  @background
end

#descriptionObject

Returns the value of attribute description.



85
86
87
# File 'lib/pretty_face/formatter/report.rb', line 85

def description
  @description
end

#durationObject (readonly)

Returns the value of attribute duration.



86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 86

def duration
  @duration
end

#fileObject (readonly)

Returns the value of attribute file.



86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 86

def file
  @file
end

#parent_filenameObject (readonly)

Returns the value of attribute parent_filename.



86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 86

def parent_filename
  @parent_filename
end

#scenariosObject

Returns the value of attribute scenarios.



85
86
87
# File 'lib/pretty_face/formatter/report.rb', line 85

def scenarios
  @scenarios
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 86

def start_time
  @start_time
end

#titleObject (readonly)

Returns the value of attribute title.



86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 86

def title
  @title
end

Instance Method Details

#background_stepsObject



114
115
116
# File 'lib/pretty_face/formatter/report.rb', line 114

def background_steps
  @background.find_all { |step| step.keyword }
end

#background_titleObject



110
111
112
# File 'lib/pretty_face/formatter/report.rb', line 110

def background_title
  title = @background.find { |step| step.keyword.nil? }
end

#close(feature) ⇒ Object



96
97
98
99
100
101
102
# File 'lib/pretty_face/formatter/report.rb', line 96

def close(feature)
  @title = feature.title
  @duration = Time.now - start_time
  a_file = feature.file.sub(/\.feature/, '.html')
  to_cut = a_file.split(separator).first
  @file = a_file.sub("#{to_cut}#{separator}", '')
end

#description?Boolean

Returns:

  • (Boolean)


147
148
149
# File 'lib/pretty_face/formatter/report.rb', line 147

def description?
  !description.nil?  && !description.empty?
end

#get_bindingObject



143
144
145
# File 'lib/pretty_face/formatter/report.rb', line 143

def get_binding
  binding
end

#has_background?Boolean

Returns:

  • (Boolean)


151
152
153
# File 'lib/pretty_face/formatter/report.rb', line 151

def has_background?
  background.length > 0
end

#scenario_average_durationObject



132
133
134
135
# File 'lib/pretty_face/formatter/report.rb', line 132

def scenario_average_duration
  durations = scenarios.collect { |scenario| scenario.duration }
  formatted_duration(durations.reduce(:+).to_f / durations.size)
end

#scenario_summary_for(status) ⇒ Object



122
123
124
125
# File 'lib/pretty_face/formatter/report.rb', line 122

def scenario_summary_for(status)
  scenarios_with_status = scenarios_for(status)
  summary_percent(scenarios_with_status.length, scenarios.length)
end

#scenarios_for(status) ⇒ Object



118
119
120
# File 'lib/pretty_face/formatter/report.rb', line 118

def scenarios_for(status)
  scenarios.find_all { |scenario| scenario.status == status }
end

#step_average_durationObject



137
138
139
140
141
# File 'lib/pretty_face/formatter/report.rb', line 137

def step_average_duration
  steps = scenarios.collect { |scenario| scenario.steps }
  durations = steps.flatten.collect { |step| step.duration }
  formatted_duration(durations.reduce(:+).to_f / durations.size)
end

#step_summary_for(status) ⇒ Object



127
128
129
130
# File 'lib/pretty_face/formatter/report.rb', line 127

def step_summary_for(status)
  steps_with_status = steps.find_all { |step| step.status == status }
  summary_percent(steps_with_status.length, steps.length)
end

#stepsObject



104
105
106
107
108
# File 'lib/pretty_face/formatter/report.rb', line 104

def steps
  steps = []
  scenarios.each { |scenario| steps += scenario.steps }
  steps
end