Class: Twing
- Inherits:
-
Object
- Object
- Twing
- Includes:
- Modules, OperatingMode
- Defined in:
- lib/twing.rb,
lib/twing/cli.rb,
lib/twing/queue.rb,
lib/twing/cursor.rb,
lib/twing/modules.rb,
lib/twing/version.rb,
lib/twing/receivers.rb,
lib/twing/initializer.rb,
lib/twing/modules/base.rb,
lib/twing/operating_mode.rb,
lib/twing/utility/logger.rb
Defined Under Namespace
Modules: Modules, OperatingMode Classes: Cli, Cursor, Initializer, Queue, Receivers
Constant Summary collapse
- LOGGER_FORMAT =
'%Y-%m-%d %H:%M:%S.%L '
- REDIS_KEY =
'home_timeline_streamer'
- VERSION =
"0.1.3"
Instance Attribute Summary collapse
-
#cli ⇒ Object
readonly
Returns the value of attribute cli.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#receivers ⇒ Object
readonly
Returns the value of attribute receivers.
-
#rest_client ⇒ Object
readonly
Returns the value of attribute rest_client.
-
#setting ⇒ Object
readonly
Returns the value of attribute setting.
-
#stream_client ⇒ Object
readonly
Returns the value of attribute stream_client.
Instance Method Summary collapse
-
#initialize ⇒ Twing
constructor
A new instance of Twing.
- #pouring(tweet_id) ⇒ Object
- #start ⇒ Object
Methods included from Modules
#after_init, included, #init_modules
Constructor Details
#initialize ⇒ Twing
Returns a new instance of Twing.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/twing.rb', line 23 def initialize @receivers = Receivers.new @cli = Cli.new(self) @setting = @cli.parse @logger = generate_logger @receivers.init(self) @logger.debug("load plugins: #{@receivers.receivers}") @rest_client = Twitter::REST::Client.new(setting.twitter.api_key) @stream_client = Twitter::Streaming::Client.new(setting.twitter.api_key) unless setting.standalone Redis.current = Redis::Namespace.new( setting.redis.namespace, :redis => Redis.new(setting.redis.config) ) @redis = Redis.current @queue = Queue.new('queue', setting.redis.namespace) end @cursor = Cursor.new(REDIS_KEY, !setting.standalone) after_init end |
Instance Attribute Details
#cli ⇒ Object (readonly)
Returns the value of attribute cli.
21 22 23 |
# File 'lib/twing.rb', line 21 def cli @cli end |
#logger ⇒ Object
Returns the value of attribute logger.
20 21 22 |
# File 'lib/twing.rb', line 20 def logger @logger end |
#receivers ⇒ Object (readonly)
Returns the value of attribute receivers.
21 22 23 |
# File 'lib/twing.rb', line 21 def receivers @receivers end |
#rest_client ⇒ Object (readonly)
Returns the value of attribute rest_client.
21 22 23 |
# File 'lib/twing.rb', line 21 def rest_client @rest_client end |
#setting ⇒ Object (readonly)
Returns the value of attribute setting.
21 22 23 |
# File 'lib/twing.rb', line 21 def setting @setting end |
#stream_client ⇒ Object (readonly)
Returns the value of attribute stream_client.
21 22 23 |
# File 'lib/twing.rb', line 21 def stream_client @stream_client end |
Instance Method Details
#pouring(tweet_id) ⇒ Object
63 64 65 66 |
# File 'lib/twing.rb', line 63 def pouring(tweet_id) obj = rest_client.status(tweet_id) delivery(obj) end |
#start ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/twing.rb', line 49 def start raise ArgumentError, 'mode is empty' if mode.nil? logger.info("start mode=#{mode} standalone=#{setting.standalone}") send(mode) rescue Interrupt, SignalException # do nothing rescue Exception => ex backtrace = ex.backtrace.dup logger.error(" \#{backtrace.shift}: \#{ex.message} (\#{ex.class})\n \#{backtrace.join(\"\\n\")}\n EOF\nend\n") |