Class: AffirmIt::UI::ConsoleUI

Inherits:
Object
  • Object
show all
Includes:
FacilitatorListener
Defined in:
lib/affirmit/ui/consoleui.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output = STDOUT) ⇒ ConsoleUI

Returns a new instance of ConsoleUI.



15
16
17
# File 'lib/affirmit/ui/consoleui.rb', line 15

def initialize(output = STDOUT)
  @output = output
end

Instance Attribute Details

#outputObject (readonly)

Returns the value of attribute output.



13
14
15
# File 'lib/affirmit/ui/consoleui.rb', line 13

def output
  @output
end

Instance Method Details

#notify(facilitator, event) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/affirmit/ui/consoleui.rb', line 19

def notify facilitator, event
  case event.type
  when :embrace_started
    @output.puts "Starting group hug #{event.affirmation.name}"
  when :affirmation_cherished
    @output.print '.'
  when :success_deferred
    @output.print 'D'
  when :differing_opinion_encountered
    @output.print 'O'
  when :behavioral_challenge_admitted
    @output.print 'B'
  when :issue_raised
    @output.print 'I'
  when :pig_expelled
    @output.print '!'
    @output.puts ''
    @output.puts args[0].message
  when :embrace_ended
    @output.puts ''
    write_summary facilitator
    write_challenges facilitator
  end
end

#write_challenges(facilitator) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/affirmit/ui/consoleui.rb', line 57

def write_challenges facilitator
  facilitator.events.each do |event|
    if event.is_a? IssueEvent
      @output.puts ''
      @output.puts "#{event.description}: #{event.issue.message}"
      event.backtrace.each do |line|
        @output.puts line
      end
    elsif event.is_a? PraiseEvent
      @output.puts ''
      @output.puts "#{event.description}: #{event.message}"
    end
  end
end

#write_summary(facilitator) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/affirmit/ui/consoleui.rb', line 44

def write_summary facilitator
  @output.puts "There were:"
  @output.puts "  - #{facilitator.affirmation_count} affirmations (#{facilitator.cherished_affirmation_count} cherished)"
  @output.puts "  - #{facilitator.preference_count} preferences"
  @output.puts "  - #{facilitator.differing_opinion_count} differing opinions"
  @output.puts "  - #{facilitator.deferred_success_count} elective success deferrals"
  @output.puts "  - #{facilitator.behavioral_challenge_count} behavioral challenges"
  @output.puts "  - #{facilitator.issue_count} issues"
  @output.puts "  - #{facilitator.bonus_points} bonus points"
  @output.puts ''
  @output.puts "You got #{facilitator.stars.round} out of 5 gold stars!  Great job!"
end