Class: QED::Reporter::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/qed/reporter/abstract.rb

Overview

Reporter Absract Base Class

Serves as the base class for all other output formats.

Direct Known Subclasses

BulletPoint, DTrace, DotProgress, Html, TapY, Verbatim

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Abstract

TODO: pass session into initialize



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/qed/reporter/abstract.rb', line 24

def initialize(options={})
  @io    = options[:io] || STDOUT
  @trace = options[:trace]

  @record = {
    :demo  => [],
    :step  => [],
    :omit  => [],
    :pass  => [],
    :fail  => [],
    :error => []
  }

  #@demos = 0
  #@steps = 0
  #@omit  = []
  #@pass  = []
  #@fail  = []
  #@error = []

  @source = {}
end

Instance Attribute Details

#ioObject (readonly)

Returns the value of attribute io.



19
20
21
# File 'lib/qed/reporter/abstract.rb', line 19

def io
  @io
end

#recordObject (readonly)

Returns the value of attribute record.



21
22
23
# File 'lib/qed/reporter/abstract.rb', line 21

def record
  @record
end

#sessionObject (readonly)

Returns the value of attribute session.



17
18
19
# File 'lib/qed/reporter/abstract.rb', line 17

def session
  @session
end

Class Method Details

.After(type, &block) ⇒ Object



77
78
79
80
81
# File 'lib/qed/reporter/abstract.rb', line 77

def self.After(type, &block)
#  raise ArgumentError unless %w{session demo demonstration step pass fail error}.include?(type.to_s)
#  type = :demonstration if type.to_s == 'demo'
  define_method("after_#{type}", &block)
end

.Before(type, &block) ⇒ Object



71
72
73
74
75
# File 'lib/qed/reporter/abstract.rb', line 71

def self.Before(type, &block)
#  raise ArgumentError unless %w{session demo demonstration step}.include?(type.to_s)
#  type = :demonstration if type.to_s == 'demo'
  define_method("before_#{type}", &block)
end

.When(type, &block) ⇒ Object



65
66
67
68
69
# File 'lib/qed/reporter/abstract.rb', line 65

def self.When(type, &block)
  #raise ArgumentError unless %w{session demo demonstration step}.include?(type.to_s)
  #type = :demonstration if type.to_s == 'demo'
  define_method(type, &block)
end

Instance Method Details

#after_code(step) ⇒ Object



211
212
# File 'lib/qed/reporter/abstract.rb', line 211

def after_code(step)
end

#after_data(step) ⇒ Object



207
208
# File 'lib/qed/reporter/abstract.rb', line 207

def after_data(step)
end

#after_demo(demo) ⇒ Object

End of a demonstration.



231
232
# File 'lib/qed/reporter/abstract.rb', line 231

def after_demo(demo)  #demo(demo)
end

#after_desc(step) ⇒ Object



215
216
# File 'lib/qed/reporter/abstract.rb', line 215

def after_desc(step)
end

#after_head(step) ⇒ Object



219
220
# File 'lib/qed/reporter/abstract.rb', line 219

def after_head(step)
end

#after_session(session) ⇒ Object

After running all demonstrations. This is the place to output a summary of the session, if applicable.



236
237
# File 'lib/qed/reporter/abstract.rb', line 236

def after_session(session)
end

#after_step(step) ⇒ Object



223
224
# File 'lib/qed/reporter/abstract.rb', line 223

def after_step(step)
end

#before_code(step) ⇒ Object



166
167
168
# File 'lib/qed/reporter/abstract.rb', line 166

def before_code(step)
  #steps << step
end

#before_data(step) ⇒ Object



157
158
# File 'lib/qed/reporter/abstract.rb', line 157

def before_data(step)
end

#before_demo(demo) ⇒ Object

Beginning of a demonstration.



127
128
129
# File 'lib/qed/reporter/abstract.rb', line 127

def before_demo(demo) #demo(demo)
  #demos << demo
end

#before_desc(step) ⇒ Object



152
153
154
# File 'lib/qed/reporter/abstract.rb', line 152

def before_desc(step)
  #steps << step
end

#before_head(step) ⇒ Object



148
149
# File 'lib/qed/reporter/abstract.rb', line 148

def before_head(step)
end

#before_session(session) ⇒ Object

At the start of a session, before running any demonstrations.



121
122
123
124
# File 'lib/qed/reporter/abstract.rb', line 121

def before_session(session)
  @session    = session
  @start_time = Time.now
end

#before_step(step) ⇒ Object



143
144
145
# File 'lib/qed/reporter/abstract.rb', line 143

def before_step(step)
  #@steps += 1
end

#code(step) ⇒ Object

Right before running code.



187
188
# File 'lib/qed/reporter/abstract.rb', line 187

def code(step)
end

#count_code(step) ⇒ Object



103
104
105
# File 'lib/qed/reporter/abstract.rb', line 103

def count_code(step)
  @record[:step] << step
end

#count_demo(demo) ⇒ Object

def After(type, target, *args)

type = :demonstration if type.to_s == 'demo'
__send__("after_#{type}", target, *args)

end



95
96
97
# File 'lib/qed/reporter/abstract.rb', line 95

def count_demo(demo)
  @record[:demo] << demo
end

#count_desc(step) ⇒ Object



99
100
101
# File 'lib/qed/reporter/abstract.rb', line 99

def count_desc(step)
  @record[:step] << step
end

#count_error(step, exception) ⇒ Object



115
116
117
# File 'lib/qed/reporter/abstract.rb', line 115

def count_error(step, exception)
  @record[:error] << [step, exception]
end

#count_fail(step, exception) ⇒ Object



111
112
113
# File 'lib/qed/reporter/abstract.rb', line 111

def count_fail(step, exception)
  @record[:fail] << [step, exception]
end

#count_pass(step) ⇒ Object



107
108
109
# File 'lib/qed/reporter/abstract.rb', line 107

def count_pass(step)
  @record[:pass] << step
end

#data(step) ⇒ Object

Right before date section.



183
184
# File 'lib/qed/reporter/abstract.rb', line 183

def data(step)
end

#demo(demo) ⇒ Object

Reight before demo.



171
172
# File 'lib/qed/reporter/abstract.rb', line 171

def demo(demo)
end

#demosObject



47
# File 'lib/qed/reporter/abstract.rb', line 47

def demos  ; @record[:demo]  ; end

#desc(step) ⇒ Object

Right before text section.



179
180
# File 'lib/qed/reporter/abstract.rb', line 179

def desc(step)  #text ?
end

#error(step, exception) ⇒ Object

After running a step that raised an error.



201
202
203
204
# File 'lib/qed/reporter/abstract.rb', line 201

def error(step, exception)
  raise exception if $DEBUG  # TODO: do we really want to do it like this?
  #@error << [step, exception]
end

#errorsObject



51
# File 'lib/qed/reporter/abstract.rb', line 51

def errors ; @record[:error] ; end

#fail(step, assertion) ⇒ Object

After running a step that failed.



196
197
198
# File 'lib/qed/reporter/abstract.rb', line 196

def fail(step, assertion)
  #@fail << [step, assertion]
end

#failsObject



52
# File 'lib/qed/reporter/abstract.rb', line 52

def fails  ; @record[:fail]  ; end

#head(step) ⇒ Object

Right before header.



175
176
# File 'lib/qed/reporter/abstract.rb', line 175

def head(step)
end

#import(file) ⇒ Object



136
137
# File 'lib/qed/reporter/abstract.rb', line 136

def import(file)
end

#load(demo) ⇒ Object



132
133
# File 'lib/qed/reporter/abstract.rb', line 132

def load(demo)
end

#omitsObject



49
# File 'lib/qed/reporter/abstract.rb', line 49

def omits  ; @record[:omit]  ; end

#pass(step) ⇒ Object

After running a step that passed.



191
192
193
# File 'lib/qed/reporter/abstract.rb', line 191

def pass(step)
  #@pass << step
end

#passesObject



50
# File 'lib/qed/reporter/abstract.rb', line 50

def passes ; @record[:pass]  ; end

#stepsObject



48
# File 'lib/qed/reporter/abstract.rb', line 48

def steps  ; @record[:step]  ; end

#trace?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/qed/reporter/abstract.rb', line 55

def trace?
  @trace
end

#unloadObject



227
228
# File 'lib/qed/reporter/abstract.rb', line 227

def unload
end

#update(type, *args) ⇒ Object



60
61
62
63
# File 'lib/qed/reporter/abstract.rb', line 60

def update(type, *args)
  __send__("count_#{type}", *args) if respond_to?("count_#{type}")
  __send__("#{type}", *args)
end

#when(*args) ⇒ Object

TODO: should we rename b/c of keyword?



240
241
# File 'lib/qed/reporter/abstract.rb', line 240

def when(*args)
end