Class: Feedbook::Notifiers::TwitterNotifier

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/feedbook/notifiers/twitter_notifier.rb

Instance Method Summary collapse

Instance Method Details

#load_configuration(configuration = {}) ⇒ NilClass

Load configuration for TwitterNotifier

Parameters:

  • configuration (defaults to: {})

    {} [Hash] Configuration hash (required: consumer_key, consumer_secret, access_token, access_token_secret)

Returns:

  • (NilClass)

    nil

Raises:



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/feedbook/notifiers/twitter_notifier.rb', line 31

def load_configuration(configuration = {})
  @client = Twitter::REST::Client.new do |config|
    config.consumer_key        = configuration.fetch('api_key')
    config.consumer_secret     = configuration.fetch('api_secret')
    config.access_token        = configuration.fetch('access_token')
    config.access_token_secret = configuration.fetch('access_token_secret')
  end

  puts 'Configuration loaded for TwitterNotifier'
rescue Twitter::Error => e
  raise Errors::NotifierConfigurationError.new(:twitter, e.message)
end

#notify(message) ⇒ NilClass

Sends notification to Twitter

Parameters:

  • message (String)

    message to be send to Twitter

Returns:

  • (NilClass)

    nil

Raises:

  • (Feedbook::Errors::NotifierNotifyError)

    if notify method fails



15
16
17
18
19
20
21
22
23
24
# File 'lib/feedbook/notifiers/twitter_notifier.rb', line 15

def notify(message)
  if client.nil?
    puts "Message has not been notified on Twitter: #{message} because of invalid client configuration"
  else
    client.update(message)
    puts "New message has been notified on Twitter: #{message}"
  end
rescue Twitter::Error => e
  p "TwitterNotifier did not notify because of client error (#{e.message})."
end