Class: ProxyRb::Announcer

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_rb/announcer.rb

Overview

Announcer

Examples:

Activate your you own channel in cucumber


Before('@announce-my-channel') do
  aruba.announcer.activate :my_channel
end

Activate your you own channel in rspec > 3


before do
  current_example = context.example
  aruba.announcer.activate :my_channel if current_example.[:announce_my_channel]
end

ProxyRb.announcer.announce(:my_channel, 'my message')

Defined Under Namespace

Classes: KernelPutsAnnouncer, PutsAnnouncer

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Announcer

Returns a new instance of Announcer.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/proxy_rb/announcer.rb', line 58

def initialize(*args)
  @announcers = []
  @announcers << PutsAnnouncer.new
  @announcers << KernelPutsAnnouncer.new

  @colorizer = ProxyRb::Colorizer.new

  @announcer         = @announcers.first
  @channels          = {}
  @output_formats    = {}

  @options           = args[1] || {}

  after_init
end

Instance Method Details

#activate(*chns) ⇒ Object

Activate a channel

Parameters:

  • channel (Symbol)

    The name of the channel to activate



125
126
127
128
129
# File 'lib/proxy_rb/announcer.rb', line 125

def activate(*chns)
  chns.flatten.each { |c| channels[c.to_sym] = true }

  self
end

#activated?(channel) ⇒ Boolean

Check if channel is activated

Parameters:

  • channel (Symbol)

    The name of the channel to check

Returns:

  • (Boolean)


117
118
119
# File 'lib/proxy_rb/announcer.rb', line 117

def activated?(channel)
  channels[channel.to_sym] == true
end

#announce(channel, *args) { ... } ⇒ Object

Announce information to channel

Parameters:

  • channel (Symbol)

    The name of the channel to check

  • args (Array)

    Arguments

Yields:

  • If block is given, that one is called and the return value is used as message to be announced.



142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/proxy_rb/announcer.rb', line 142

def announce(channel, *args, &_block)
  channel = channel.to_sym

  the_output_format = if output_formats.key? channel
                        output_formats[channel]
                      else
                        proc { |v| format('%s', v) }
                      end

  return unless activated?(channel)

  message = if block_given?
              the_output_format.call(yield)
            else
              the_output_format.call(*args)
            end
  message += "\n"
  message = colorizer.cyan(message)

  announcer.announce(message)

  nil
end

#mode=(m) ⇒ Object

Change mode of announcer

Parameters:

  • m (Symbol)

    The mode to set



107
108
109
110
111
# File 'lib/proxy_rb/announcer.rb', line 107

def mode=(m)
  @announcer = @announcers.find { |_a| f.mode? m.to_sym }

  self
end

#resetObject

Reset announcer



99
100
101
# File 'lib/proxy_rb/announcer.rb', line 99

def reset
  @announcer = @announcers.first
end