class PivotalTracker::Activity
Constants
- MAX_PIVOTAL_ACTIVITY
Public Class Methods
all(project=nil, options={})
click to toggle source
# File lib/pivotal-tracker/activity.rb, line 8 def all(project=nil, options={}) options[:limit] ||= MAX_PIVOTAL_ACTIVITY per_page = options[:limit] auto_page = options[:auto_page] params = self.encode_options(options) if project if auto_page && Client.api_version >= 4 page_through_activities(project, params, per_page) else parse(Client.connection["/projects/#{project.id}/activities#{params}"].get) end else parse(Client.connection["/activities#{params}"].get) end end
Protected Class Methods
encode_options(options)
click to toggle source
# File lib/pivotal-tracker/activity.rb, line 28 def encode_options(options) return nil if !options.is_a?(Hash) || options.empty? options_string = [] options_string << "limit=#{options.delete(:limit)}" options_string << "newer_than_version=#{options.delete(:newer_than_version)}" if options[:newer_than_version] if options[:occurred_since] options_string << "occurred_since_date=\"#{options[:occurred_since].utc}\"" elsif options[:occurred_since_date] options_string << "occurred_since_date=#{URI.escape options[:occurred_since_date].strftime("%Y/%m/%d %H:%M:%S %Z")}" end return "?#{options_string.join('&')}" end
page_through_activities(project, params, per_page)
click to toggle source
# File lib/pivotal-tracker/activity.rb, line 44 def page_through_activities(project, params, per_page) collections = [] page = 1 begin collections << parse(Client.connection["/projects/#{project.id}/activities#{params}&page=#{page}"].get) returned = collections.last.size page += 1 end while returned == per_page collections.flatten end