Sha256: fed9c734d782c9c7406c7fbbe14df51b00fa83c72ab31a50b9ad29c75003f48c

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'rest_client'
require 'crack/xml'
require 'rufus/scheduler'

class Kilt
  include Crack

  attr_reader :id

  def self.init(token) 
    new token
  end

  def update
    activities = fetch_activities
    activities.reverse.each do |activity|
      if activity['id'] > @id.to_i
        notify_about activity['description']
      end
    end
    update_id_from activities
  end

  protected

  def initialize(token)
    @token = token
    update_id_from fetch_activities
    Rufus::Scheduler.start_new.every('30s') { update }
  end

  private

  def update_id_from(activities)
    @id = activities.first['id'].to_s
  end

  def fetch_activities
    return XML.parse(RestClient.get("http://www.pivotaltracker.com/services/v3/activities?limit=10", 'X-TrackerToken' => @token).body)['activities']
  end

  def notify_about(message)
    title = 'Pivotal Tracker'
    case RUBY_PLATFORM
    when /linux/
      system "notify-send '#{title}' '#{message}'"
    when /darwin/
      system "growlnotify -t '#{title}' -m '#{message}'"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kilt-0.4.0 lib/kilt.rb