Class: Aruba::Platforms::Announcer

Inherits:
Object
  • Object
show all
Defined in:
lib/aruba/platforms/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

Aruba.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/aruba/platforms/announcer.rb', line 58

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

  @colorizer = Aruba::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



159
160
161
162
163
# File 'lib/aruba/platforms/announcer.rb', line 159

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)


151
152
153
# File 'lib/aruba/platforms/announcer.rb', line 151

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.



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/aruba/platforms/announcer.rb', line 176

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

#cmd(cmd) ⇒ Object

Deprecated.


219
220
221
222
# File 'lib/aruba/platforms/announcer.rb', line 219

def cmd(cmd)
  warn('The announcer now has a new api to activate channels. Please use this one announce(:command, message)')
  announce :command, cmd
end

#dir(dir) ⇒ Object

Deprecated.


213
214
215
216
# File 'lib/aruba/platforms/announcer.rb', line 213

def dir(dir)
  warn('The announcer now has a new api to activate channels. Please use this one announce(:directory, message)')
  announce :directory, dir
end

#env(name, value) ⇒ Object

Deprecated.


225
226
227
228
229
# File 'lib/aruba/platforms/announcer.rb', line 225

def env(name, value)
  warn('The announcer now has a new api to activate channels. Please use this one: announce(:changed_environment, key, value)')

  announce :changed_environment, name, value
end

#mode=(m) ⇒ Object

Change mode of announcer

Parameters:

  • m (Symbol)

    The mode to set



141
142
143
144
145
# File 'lib/aruba/platforms/announcer.rb', line 141

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

  self
end

#resetObject

Reset announcer



133
134
135
# File 'lib/aruba/platforms/announcer.rb', line 133

def reset
  @announcer = @announcers.first
end

#stderr(content) ⇒ Object

Deprecated.


207
208
209
210
# File 'lib/aruba/platforms/announcer.rb', line 207

def stderr(content)
  warn('The announcer now has a new api to activate channels. Please use this one: announce(:stderr, message)')
  announce :stderr, content
end

#stdout(content) ⇒ Object

Deprecated.


201
202
203
204
# File 'lib/aruba/platforms/announcer.rb', line 201

def stdout(content)
  warn('The announcer now has a new api to activate channels. Please use this one: announce(:stdout, message)')
  announce :stdout, content
end