class Fluent::RSSInput
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_rss.rb, line 12 def configure(conf) super @attrs = @attrs.split(',').map {|attr| attr.strip } @current_time = Time.now end
emit_rss()
click to toggle source
# File lib/fluent/plugin/in_rss.rb, line 34 def emit_rss begin next_current_time = @current_time rss = RSS::Parser.parse(@url) rss.items.each do |item| record = {} @attrs.each do |attr| record[attr] = item.send(attr) if item.send(attr) end time = Time.parse item.date.to_s if time > @current_time Fluent::Engine.emit @tag, Time.parse(item.date.to_s), record next_current_time = time if time > next_current_time end end @current_time = next_current_time rescue => e log.error e end end
run()
click to toggle source
# File lib/fluent/plugin/in_rss.rb, line 27 def run loop do Thread.new(&method(:emit_rss)) sleep @interval end end
shutdown()
click to toggle source
# File lib/fluent/plugin/in_rss.rb, line 23 def shutdown Thread.kill(@thread) end
start()
click to toggle source
# File lib/fluent/plugin/in_rss.rb, line 19 def start @thread = Thread.new(&method(:run)) end