Class: ShareLinuxFr

Inherits:
Object
  • Object
show all
Defined in:
lib/share-linuxfr.rb,
lib/share-linuxfr/version.rb

Constant Summary collapse

VERSION =
"0.1.6"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url) ⇒ ShareLinuxFr

Returns a new instance of ShareLinuxFr.



29
30
31
32
# File 'lib/share-linuxfr.rb', line 29

def initialize(base_url)
  @redis = Redis.new
  @base_url = base_url
end

Class Method Details

.configure_twitter(options) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/share-linuxfr.rb', line 20

def self.configure_twitter(options)
  @@client = Twitter::REST::Client.new do |config|
    config.consumer_key        = options['consumer_key']
    config.consumer_secret     = options['consumer_secret']
    config.access_token        = options['access_token']
    config.access_token_secret = options['access_token_secret']
  end
end

.run(base_url) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/share-linuxfr.rb', line 12

def self.run(base_url)
  instance = self.new(base_url)
  loop do
    instance.start
    sleep 1
  end
end

Instance Method Details

#startObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/share-linuxfr.rb', line 34

def start
  @redis.subscribe("news") do |on|
    on.message do |chan,message|
      msg = Yajl::Parser.parse(message)
      puts "Publish a new message: #{msg.inspect}"
      tweet msg
    end
  end
rescue Errno::ECONNREFUSED => err
  $stderr.puts "Connection to redis has been lost"
end

#tweet(news) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/share-linuxfr.rb', line 46

def tweet(news)
  title  = news['title'].slice(0, 115)
  status = "#{title}#{'' if title != news['title']} #{@base_url}#{news['id']}"
  @@client.update status
rescue => err
  puts "Error on twitter: #{err}"
  puts "\tstatus = #{status.inspect}"
end