class Datapimp::Sources::Pivotal

Public Class Methods

new(args, options) click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 3
def initialize(args, options)
  @project_id = args.shift
  @story_id   = args.shift
  @options    = options.to_mash

  require 'pivotal-tracker' unless defined?(PivotalTracker)
  PivotalTracker::Client.token = Datapimp.config.pivotal_access_token
end

Public Instance Methods

all() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 12
def all
  %w(user_activity project_activity project_stories).each_with_object({}) do |slice, memo|
    memo[slice] = send(slice)
  end
end
project_activity() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 26
def project_activity
  project.activities.all(limit_params).map {|a| jsonify(a) }
end
project_stories() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 30
def project_stories
  stories = project.stories.all(limit_params)

  # add notes for each story and convert the objects to hashes
  stories.map do |story|
    story_hash = jsonify(story)
    story_hash[:notes] = story.notes.all(limit_params).map {|a| jsonify(a) }
    story_hash
  end
end
project_story_notes() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 41
def project_story_notes
  notes = project.stories.find(@story_id).notes.all(limit_params)
  notes.map {|a| jsonify(a) }
end
to_s() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 18
def to_s
  all
end
user_activity() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 22
def user_activity
  @_user_activity ||= PivotalTracker::Activity.all(nil, limit_params).map {|a| jsonify(a) }
end

Private Instance Methods

limit_params() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 52
def limit_params
  Hash.new.tap do |h|
    h[:limit]   = @options.limit  if @options.limit
    h[:offset]  = @options.offset if @options.offset
  end
end
project() click to toggle source
# File lib/datapimp/sources/pivotal.rb, line 48
def project
  @_project ||= PivotalTracker::Project.find(@project_id)
end