uniform_notifier 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/Gemfile +3 -1
  4. data/README.md +18 -1
  5. data/Rakefile +13 -11
  6. data/lib/uniform_notifier.rb +8 -7
  7. data/lib/uniform_notifier/airbrake.rb +2 -0
  8. data/lib/uniform_notifier/base.rb +17 -14
  9. data/lib/uniform_notifier/bugsnag.rb +5 -3
  10. data/lib/uniform_notifier/customized_logger.rb +6 -4
  11. data/lib/uniform_notifier/errors.rb +3 -1
  12. data/lib/uniform_notifier/growl.rb +23 -20
  13. data/lib/uniform_notifier/honeybadger.rb +2 -0
  14. data/lib/uniform_notifier/javascript_alert.rb +7 -3
  15. data/lib/uniform_notifier/javascript_console.rb +18 -14
  16. data/lib/uniform_notifier/rails_logger.rb +3 -1
  17. data/lib/uniform_notifier/raise.rb +3 -1
  18. data/lib/uniform_notifier/rollbar.rb +2 -0
  19. data/lib/uniform_notifier/sentry.rb +2 -0
  20. data/lib/uniform_notifier/slack.rb +20 -19
  21. data/lib/uniform_notifier/terminal_notifier.rb +23 -0
  22. data/lib/uniform_notifier/version.rb +3 -1
  23. data/lib/uniform_notifier/xmpp.rb +26 -23
  24. data/spec/spec_helper.rb +8 -6
  25. data/spec/uniform_notifier/airbrake_spec.rb +12 -10
  26. data/spec/uniform_notifier/base_spec.rb +10 -8
  27. data/spec/uniform_notifier/bugsnag_spec.rb +21 -19
  28. data/spec/uniform_notifier/customized_logger_spec.rb +9 -7
  29. data/spec/uniform_notifier/growl_spec.rb +19 -18
  30. data/spec/uniform_notifier/honeybadger_spec.rb +12 -10
  31. data/spec/uniform_notifier/javascript_alert_spec.rb +29 -9
  32. data/spec/uniform_notifier/javascript_console_spec.rb +55 -17
  33. data/spec/uniform_notifier/rails_logger_spec.rb +9 -7
  34. data/spec/uniform_notifier/raise_spec.rb +13 -11
  35. data/spec/uniform_notifier/rollbar_spec.rb +8 -6
  36. data/spec/uniform_notifier/sentry_spec.rb +12 -10
  37. data/spec/uniform_notifier/slack_spec.rb +10 -8
  38. data/spec/uniform_notifier/terminal_notifier_spec.rb +25 -0
  39. data/spec/uniform_notifier/xmpp_spec.rb +17 -15
  40. data/uniform_notifier.gemspec +18 -17
  41. metadata +6 -3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class RailsLogger < Base
3
5
  def self.active?
@@ -6,7 +8,7 @@ class UniformNotifier
6
8
 
7
9
  protected
8
10
 
9
- def self._out_of_channel_notify( data )
11
+ def self._out_of_channel_notify(data)
10
12
  message = data.values.compact.join("\n")
11
13
 
12
14
  Rails.logger.warn message
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class Raise < Base
3
5
  def self.active?
@@ -10,7 +12,7 @@ class UniformNotifier
10
12
 
11
13
  protected
12
14
 
13
- def self._out_of_channel_notify( data )
15
+ def self._out_of_channel_notify(data)
14
16
  message = data.values.compact.join("\n")
15
17
 
16
18
  raise @exception_class, message
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class RollbarNotifier < Base
3
5
  def self.active?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class SentryNotifier < Base
3
5
  def self.active?
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class Slack < Base
3
- POSSIBLE_OPTIONS = [:username, :channel]
5
+ POSSIBLE_OPTIONS = %i[username channel].freeze
4
6
 
5
7
  @slack = nil
6
8
 
@@ -9,7 +11,7 @@ class UniformNotifier
9
11
  @slack
10
12
  end
11
13
 
12
- def setup_connection(config={})
14
+ def setup_connection(config = {})
13
15
  webhook_url, options = parse_config(config)
14
16
  fail_connection('webhook_url required for Slack notification') unless webhook_url
15
17
 
@@ -22,30 +24,29 @@ class UniformNotifier
22
24
 
23
25
  protected
24
26
 
25
- def _out_of_channel_notify(data)
26
- message = data.values.compact.join("\n")
27
- notify(message)
28
- end
27
+ def _out_of_channel_notify(data)
28
+ message = data.values.compact.join("\n")
29
+ notify(message)
30
+ end
29
31
 
30
32
  private
31
33
 
32
- def fail_connection(message)
33
- @slack = nil
34
- raise NotificationError.new(message)
35
- end
36
-
37
- def notify(message)
38
- @slack.ping message
39
- end
34
+ def fail_connection(message)
35
+ @slack = nil
36
+ raise NotificationError, message
37
+ end
40
38
 
41
- def parse_config(config)
42
- options = config.select do |name, value|
43
- POSSIBLE_OPTIONS.include?(name) && !value.nil?
44
- end
39
+ def notify(message)
40
+ @slack.ping message
41
+ end
45
42
 
46
- return config[:webhook_url], options
43
+ def parse_config(config)
44
+ options = config.select do |name, value|
45
+ POSSIBLE_OPTIONS.include?(name) && !value.nil?
47
46
  end
48
47
 
48
+ [config[:webhook_url], options]
49
+ end
49
50
  end
50
51
  end
51
52
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UniformNotifier
4
+ class TerminalNotifier < Base
5
+ def self.active?
6
+ !!UniformNotifier.terminal_notifier
7
+ end
8
+
9
+ protected
10
+
11
+ def self._out_of_channel_notify(data)
12
+ unless defined?(::TerminalNotifier)
13
+ begin
14
+ require 'terminal-notifier'
15
+ rescue LoadError
16
+ raise NotificationError, 'You must install the terminal-notifier gem to use terminal_notifier: `gem install terminal-notifier`'
17
+ end
18
+ end
19
+
20
+ ::TerminalNotifier.notify(data[:body], title: data[:title])
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
- VERSION = "1.11.0"
4
+ VERSION = '1.12.0'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class UniformNotifier
2
4
  class Xmpp < Base
3
5
  @receiver = nil
@@ -8,7 +10,7 @@ class UniformNotifier
8
10
  @xmpp
9
11
  end
10
12
 
11
- def self.setup_connection( xmpp_information )
13
+ def self.setup_connection(xmpp_information)
12
14
  return unless xmpp_information
13
15
 
14
16
  require 'xmpp4r'
@@ -23,36 +25,37 @@ class UniformNotifier
23
25
  connect if @stay_connected
24
26
  rescue LoadError
25
27
  @xmpp = nil
26
- raise NotificationError.new( 'You must install the xmpp4r gem to use XMPP notification: `gem install xmpp4r`' )
28
+ raise NotificationError, 'You must install the xmpp4r gem to use XMPP notification: `gem install xmpp4r`'
27
29
  end
28
30
 
29
31
  protected
30
32
 
31
- def self._out_of_channel_notify( data )
33
+ def self._out_of_channel_notify(data)
32
34
  message = data.values.compact.join("\n")
33
35
 
34
- notify( message )
36
+ notify(message)
35
37
  end
36
38
 
37
39
  private
38
- def self.connect
39
- jid = Jabber::JID.new( @account )
40
- @xmpp = Jabber::Client.new( jid )
41
- @xmpp.connect
42
- @xmpp.auth( @password )
43
- @xmpp.send( presence_status ) if @show_online_status
44
- end
45
-
46
- def self.notify( message )
47
- connect unless @stay_connected
48
- message = Jabber::Message.new( @receiver, message ).
49
- set_type( :normal ).
50
- set_subject( 'Uniform Notifier' )
51
- @xmpp.send( message )
52
- end
53
-
54
- def self.presence_status
55
- Jabber::Presence.new.set_status( "Uniform Notifier started on #{Time.now}" )
56
- end
40
+
41
+ def self.connect
42
+ jid = Jabber::JID.new(@account)
43
+ @xmpp = Jabber::Client.new(jid)
44
+ @xmpp.connect
45
+ @xmpp.auth(@password)
46
+ @xmpp.send(presence_status) if @show_online_status
47
+ end
48
+
49
+ def self.notify(message)
50
+ connect unless @stay_connected
51
+ message = Jabber::Message.new(@receiver, message)
52
+ .set_type(:normal)
53
+ .set_subject('Uniform Notifier')
54
+ @xmpp.send(message)
55
+ end
56
+
57
+ def self.presence_status
58
+ Jabber::Presence.new.set_status("Uniform Notifier started on #{Time.now}")
59
+ end
57
60
  end
58
61
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,9 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
1
+ # frozen_string_literal: true
2
2
 
3
- require "uniform_notifier"
4
- require "ruby-growl"
5
- require "xmpp4r"
6
- require "slack-notifier"
7
- require "rspec"
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+
5
+ require 'uniform_notifier'
6
+ require 'ruby-growl'
7
+ require 'xmpp4r'
8
+ require 'slack-notifier'
9
+ require 'rspec'
@@ -1,25 +1,27 @@
1
- require "spec_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
2
4
 
3
5
  class Airbrake
4
6
  # mock Airbrake
5
7
  end
6
8
 
7
9
  RSpec.describe UniformNotifier::AirbrakeNotifier do
8
- it "should not notify airbrake" do
9
- expect(UniformNotifier::AirbrakeNotifier.out_of_channel_notify(:title => "notify airbrake")).to be_nil
10
+ it 'should not notify airbrake' do
11
+ expect(UniformNotifier::AirbrakeNotifier.out_of_channel_notify(title: 'notify airbrake')).to be_nil
10
12
  end
11
13
 
12
- it "should notify airbrake" do
13
- expect(Airbrake).to receive(:notify).with(UniformNotifier::Exception.new("notify airbrake"), {})
14
+ it 'should notify airbrake' do
15
+ expect(Airbrake).to receive(:notify).with(UniformNotifier::Exception.new('notify airbrake'), {})
14
16
 
15
17
  UniformNotifier.airbrake = true
16
- UniformNotifier::AirbrakeNotifier.out_of_channel_notify(:title => "notify airbrake")
18
+ UniformNotifier::AirbrakeNotifier.out_of_channel_notify(title: 'notify airbrake')
17
19
  end
18
20
 
19
- it "should notify airbrake" do
20
- expect(Airbrake).to receive(:notify).with(UniformNotifier::Exception.new("notify airbrake"), :foo => :bar)
21
+ it 'should notify airbrake' do
22
+ expect(Airbrake).to receive(:notify).with(UniformNotifier::Exception.new('notify airbrake'), foo: :bar)
21
23
 
22
- UniformNotifier.airbrake = { :foo => :bar }
23
- UniformNotifier::AirbrakeNotifier.out_of_channel_notify("notify airbrake")
24
+ UniformNotifier.airbrake = { foo: :bar }
25
+ UniformNotifier::AirbrakeNotifier.out_of_channel_notify('notify airbrake')
24
26
  end
25
27
  end
@@ -1,22 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  RSpec.describe UniformNotifier::Base do
4
- context "#inline_channel_notify" do
6
+ context '#inline_channel_notify' do
5
7
  before do
6
8
  allow(UniformNotifier::Base).to receive(:active?).and_return(true)
7
9
  end
8
- it "should keep the compatibility" do
9
- expect(UniformNotifier::Base).to receive(:_inline_notify).once.with(:title => "something")
10
- UniformNotifier::Base.inline_notify("something")
10
+ it 'should keep the compatibility' do
11
+ expect(UniformNotifier::Base).to receive(:_inline_notify).once.with(title: 'something')
12
+ UniformNotifier::Base.inline_notify('something')
11
13
  end
12
14
  end
13
- context "#out_of_channel_notify" do
15
+ context '#out_of_channel_notify' do
14
16
  before do
15
17
  allow(UniformNotifier::Base).to receive(:active?).and_return(true)
16
18
  end
17
- it "should keep the compatibility" do
18
- expect(UniformNotifier::Base).to receive(:_out_of_channel_notify).once.with(:title => "something")
19
- UniformNotifier::Base.out_of_channel_notify("something")
19
+ it 'should keep the compatibility' do
20
+ expect(UniformNotifier::Base).to receive(:_out_of_channel_notify).once.with(title: 'something')
21
+ UniformNotifier::Base.out_of_channel_notify('something')
20
22
  end
21
23
  end
22
24
  end
@@ -1,4 +1,6 @@
1
- require "spec_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
2
4
 
3
5
  class Bugsnag
4
6
  # mock Bugsnag
@@ -6,51 +8,51 @@ end
6
8
 
7
9
  RSpec.describe UniformNotifier::BugsnagNotifier do
8
10
  let(:notification_data) { {} }
9
- it "should not notify bugsnag" do
11
+ it 'should not notify bugsnag' do
10
12
  expect(Bugsnag).not_to receive(:notify)
11
13
  UniformNotifier::BugsnagNotifier.out_of_channel_notify(notification_data)
12
14
  end
13
- context "with string notification" do
14
- let(:notification_data) { {:user => 'user', :title => 'notify bugsnag', :url => 'URL', body: 'something'} }
15
+ context 'with string notification' do
16
+ let(:notification_data) { { user: 'user', title: 'notify bugsnag', url: 'URL', body: 'something' } }
15
17
 
16
- it "should notify bugsnag" do
17
- expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new(notification_data[:title]), :grouping_hash => notification_data[:body], :notification => notification_data)
18
+ it 'should notify bugsnag' do
19
+ expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new(notification_data[:title]), grouping_hash: notification_data[:body], notification: notification_data)
18
20
 
19
21
  UniformNotifier.bugsnag = true
20
22
  UniformNotifier::BugsnagNotifier.out_of_channel_notify(notification_data)
21
23
  end
22
24
 
23
- it "should notify bugsnag with option" do
24
- expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new(notification_data[:title]), :foo => :bar, :grouping_hash => notification_data[:body], :notification => notification_data)
25
+ it 'should notify bugsnag with option' do
26
+ expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new(notification_data[:title]), foo: :bar, grouping_hash: notification_data[:body], notification: notification_data)
25
27
 
26
- UniformNotifier.bugsnag = { :foo => :bar }
28
+ UniformNotifier.bugsnag = { foo: :bar }
27
29
  UniformNotifier::BugsnagNotifier.out_of_channel_notify(notification_data)
28
30
  end
29
31
  end
30
- context "with hash notification" do
31
- let(:notification_data) { "notify bugsnag" }
32
+ context 'with hash notification' do
33
+ let(:notification_data) { 'notify bugsnag' }
32
34
 
33
- it "should notify bugsnag" do
34
- expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new("notify bugsnag"), :grouping_hash => "notify bugsnag", :notification => {:title => "notify bugsnag"})
35
+ it 'should notify bugsnag' do
36
+ expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new('notify bugsnag'), grouping_hash: 'notify bugsnag', notification: { title: 'notify bugsnag' })
35
37
 
36
38
  UniformNotifier.bugsnag = true
37
39
  UniformNotifier::BugsnagNotifier.out_of_channel_notify(notification_data)
38
40
  end
39
41
 
40
- it "should notify bugsnag with option" do
41
- expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new("notify bugsnag"), :foo => :bar, :grouping_hash => "notify bugsnag", :notification => {:title => "notify bugsnag"})
42
+ it 'should notify bugsnag with option' do
43
+ expect(Bugsnag).to receive(:notify).with(UniformNotifier::Exception.new('notify bugsnag'), foo: :bar, grouping_hash: 'notify bugsnag', notification: { title: 'notify bugsnag' })
42
44
 
43
- UniformNotifier.bugsnag = { :foo => :bar }
45
+ UniformNotifier.bugsnag = { foo: :bar }
44
46
  UniformNotifier::BugsnagNotifier.out_of_channel_notify(notification_data)
45
47
  end
46
48
  end
47
49
 
48
- it "should notify bugsnag with correct backtrace" do
50
+ it 'should notify bugsnag with correct backtrace' do
49
51
  expect(Bugsnag).to receive(:notify) do |error|
50
52
  expect(error).to be_a UniformNotifier::Exception
51
- expect(error.backtrace).to eq ["bugsnag spec test"]
53
+ expect(error.backtrace).to eq ['bugsnag spec test']
52
54
  end
53
55
  UniformNotifier.bugsnag = true
54
- UniformNotifier::BugsnagNotifier.out_of_channel_notify(backtrace: ["bugsnag spec test"])
56
+ UniformNotifier::BugsnagNotifier.out_of_channel_notify(backtrace: ['bugsnag spec test'])
55
57
  end
56
58
  end
@@ -1,21 +1,23 @@
1
- require "spec_helper"
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
2
4
 
3
5
  RSpec.describe UniformNotifier::CustomizedLogger do
4
- it "should not notify to customized logger" do
5
- expect(UniformNotifier::CustomizedLogger.out_of_channel_notify(:title => "notify rails logger")).to be_nil
6
+ it 'should not notify to customized logger' do
7
+ expect(UniformNotifier::CustomizedLogger.out_of_channel_notify(title: 'notify rails logger')).to be_nil
6
8
  end
7
9
 
8
- it "should notify to customized logger" do
9
- logger = File.open( 'test.log', 'a+' )
10
+ it 'should notify to customized logger' do
11
+ logger = File.open('test.log', 'a+')
10
12
  logger.sync = true
11
13
 
12
14
  now = Time.now
13
15
  allow(Time).to receive(:now).and_return(now)
14
16
  UniformNotifier.customized_logger = logger
15
- UniformNotifier::CustomizedLogger.out_of_channel_notify(:title => "notify rails logger")
17
+ UniformNotifier::CustomizedLogger.out_of_channel_notify(title: 'notify rails logger')
16
18
 
17
19
  logger.seek(0)
18
- expect(logger.read).to eq "#{now.strftime("%Y-%m-%d %H:%M:%S")}[WARN] notify rails logger"
20
+ expect(logger.read).to eq "#{now.strftime('%Y-%m-%d %H:%M:%S')}[WARN] notify rails logger"
19
21
 
20
22
  File.delete('test.log')
21
23
  end
@@ -1,13 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  RSpec.describe UniformNotifier::Growl do
4
-
5
- it "should not notify growl" do
6
- expect(UniformNotifier::Growl.out_of_channel_notify(:title => 'notify growl')).to be_nil
6
+ it 'should not notify growl' do
7
+ expect(UniformNotifier::Growl.out_of_channel_notify(title: 'notify growl')).to be_nil
7
8
  end
8
9
 
9
- it "should notify growl without password" do
10
- growl = double('growl', :is_a? => true)
10
+ it 'should notify growl without password' do
11
+ growl = double('growl', is_a?: true)
11
12
  expect(Growl).to receive(:new).with('localhost', 'uniform_notifier').and_return(growl)
12
13
  expect(growl).to receive(:add_notification).with('uniform_notifier')
13
14
  expect(growl).to receive(:password=).with(nil)
@@ -15,42 +16,42 @@ RSpec.describe UniformNotifier::Growl do
15
16
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'notify growl without password').ordered
16
17
 
17
18
  UniformNotifier.growl = true
18
- UniformNotifier::Growl.out_of_channel_notify(:title => 'notify growl without password')
19
+ UniformNotifier::Growl.out_of_channel_notify(title: 'notify growl without password')
19
20
  end
20
21
 
21
- it "should notify growl with password" do
22
- growl = double('growl', :is_a? => true)
22
+ it 'should notify growl with password' do
23
+ growl = double('growl', is_a?: true)
23
24
  expect(Growl).to receive(:new).with('localhost', 'uniform_notifier').and_return(growl)
24
25
  expect(growl).to receive(:add_notification).with('uniform_notifier')
25
26
  expect(growl).to receive(:password=).with('123456')
26
27
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'Uniform Notifier Growl has been turned on').ordered
27
28
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'notify growl with password').ordered
28
29
 
29
- UniformNotifier.growl = { :password => '123456' }
30
- UniformNotifier::Growl.out_of_channel_notify(:title => 'notify growl with password')
30
+ UniformNotifier.growl = { password: '123456' }
31
+ UniformNotifier::Growl.out_of_channel_notify(title: 'notify growl with password')
31
32
  end
32
33
 
33
- it "should notify growl with host" do
34
- growl = double('growl', :is_a? => true)
34
+ it 'should notify growl with host' do
35
+ growl = double('growl', is_a?: true)
35
36
  expect(Growl).to receive(:new).with('10.10.156.17', 'uniform_notifier').and_return(growl)
36
37
  expect(growl).to receive(:add_notification).with('uniform_notifier')
37
38
  expect(growl).to receive(:password=).with('123456')
38
39
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'Uniform Notifier Growl has been turned on').ordered
39
40
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'notify growl with password').ordered
40
41
 
41
- UniformNotifier.growl = { :password => '123456', :host => '10.10.156.17' }
42
- UniformNotifier::Growl.out_of_channel_notify(:title => 'notify growl with password')
42
+ UniformNotifier.growl = { password: '123456', host: '10.10.156.17' }
43
+ UniformNotifier::Growl.out_of_channel_notify(title: 'notify growl with password')
43
44
  end
44
45
 
45
- it "should notify growl with quiet" do
46
- growl = double('growl', :is_a? => true)
46
+ it 'should notify growl with quiet' do
47
+ growl = double('growl', is_a?: true)
47
48
  expect(Growl).to receive(:new).with('localhost', 'uniform_notifier').and_return(growl)
48
49
  expect(growl).to receive(:add_notification).with('uniform_notifier')
49
50
  expect(growl).to receive(:password=).with('123456')
50
51
  expect(growl).not_to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'Uniform Notifier Growl has been turned on')
51
52
  expect(growl).to receive(:notify).with('uniform_notifier', 'Uniform Notifier', 'notify growl with password')
52
53
 
53
- UniformNotifier.growl = { :password => '123456', :quiet => true }
54
- UniformNotifier::Growl.out_of_channel_notify(:title => 'notify growl with password')
54
+ UniformNotifier.growl = { password: '123456', quiet: true }
55
+ UniformNotifier::Growl.out_of_channel_notify(title: 'notify growl with password')
55
56
  end
56
57
  end