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



123
124
125
126
127
# File 'lib/proxy_rb/announcer.rb', line 123

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)


115
116
117
# File 'lib/proxy_rb/announcer.rb', line 115

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.



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

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



105
106
107
108
109
# File 'lib/proxy_rb/announcer.rb', line 105

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

  self
end

#resetObject

Reset announcer



97
98
99
# File 'lib/proxy_rb/announcer.rb', line 97

def reset
  @announcer = @announcers.first
end