Sha256: 91e7ac47457bd1110fa715062a2abfff78c82004448376b280e2e73f5621c14f
Contents?: true
Size: 1.01 KB
Versions: 3
Compression:
Stored size: 1.01 KB
Contents
module Octospy class Worker attr_reader :thread def initialize(repositories, &block) @repositories = repositories @block = block @last_event_id = nil thread_loop end def thread_loop @thread = Thread.start do loop do begin watch_repositories sleep 30 rescue => e puts e.message sleep 30 end end end end def events @repositories.each_with_object([]) do |repo, arr| arr.concat ::Octokit.repository_events(repo) end end def watch_repositories events.sort_by(&:id).reverse_each { |event| if @last_event_id.nil? next if Time.now.utc - (60*60) >= event.created_at else next if @last_event_id >= event.id end parsed_event = Octospy.parse(event) next unless parsed_event @last_event_id = event.id parsed_event.each { |p| @block.call p[:message] } } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
octospy-0.0.3 | lib/octospy/worker.rb |
octospy-0.0.2 | lib/octospy/worker.rb |
octospy-0.0.1 | lib/octospy/worker.rb |