pivotal-tracker-api 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 560e9d8e7bd5655593e3cd8b1d42411305ad29c2
4
- data.tar.gz: eeb4255fb00eb9bfffaf6ac4d473c0e3af93ccf8
3
+ metadata.gz: 67b72a23f515d4560f96ce3f8de0b3a130afd70f
4
+ data.tar.gz: 6ba37d5988bee6b8a9a18b0c979dd2551e505e21
5
5
  SHA512:
6
- metadata.gz: 1bf81cf50034cfbd2f5bef545cfc323c84bf28c1b2ae7851504d67286313a048676dd4bbb0139811ca78bf6445976f207a0cb85564f5ce6e62a132c90d0ca92b
7
- data.tar.gz: d7b52ae07c22aa081f8e18480f6b8187b81df6f05b0649adae915c8a21fb57be159733db4fca4eecdf12011f0012aedca81b03c87286e2381dab04893812059a
6
+ metadata.gz: b8e644d148110175fe463e4914382c3d93e7d026c33dc2e7b6ad48d806d1ab2df5b97bbd8ace146d2e00a8183701e3dd70b07509af562676d54338e2ceb27304
7
+ data.tar.gz: 6644610d76ad4ef2d5df4e81dc7b0c4fff5ef3280e28593cb3d4d9e6b17316680161e54dd0008f0735de9a509f85f488a41be6eee06cb009d228c6c8498d77e4
@@ -1,5 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <module type="RUBY_MODULE" version="4">
3
+ <component name="CompassSettings">
4
+ <option name="compassSupportEnabled" value="true" />
5
+ </component>
3
6
  <component name="FacetManager">
4
7
  <facet type="gem" name="Gem">
5
8
  <configuration>
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  pivotal-tracker-api
2
2
  ===================
3
3
 
4
- A Pivotal Tracker API gem that can be used to interface with the Pivotal Tracke API v5.
4
+ A Pivotal Tracker API gem that can be used to interface with the Pivotal Tracker API v5.
5
5
 
6
6
  ### Basic Example
7
7
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -7,10 +7,10 @@ module Scorer
7
7
  update_attributes(attributes)
8
8
  end
9
9
 
10
- def self.parse_json_iteration(json_iteration)
10
+ def self.parse_json_iteration(json_iteration, include_done)
11
11
  new({
12
12
  project_id: json_iteration[:project_id].to_i,
13
- stories: parse_stories(json_iteration[:stories], json_iteration[:project_id].to_i),
13
+ stories: parse_stories(json_iteration[:stories], json_iteration[:project_id].to_i, include_done),
14
14
  story_ids: json_iteration[:story_ids],
15
15
  number: json_iteration[:number],
16
16
  team_strength: json_iteration[:team_strength],
@@ -22,11 +22,11 @@ module Scorer
22
22
 
23
23
  protected
24
24
 
25
- def self.parse_stories(stories, project_id)
25
+ def self.parse_stories(stories, project_id, include_done)
26
26
  story_ids = Array.new
27
27
  stories.each { |story| story_ids << story[:id].to_i if !story[:id].nil? }
28
28
  project = PivotalService.one_project(project_id)
29
- PivotalService.stories(project, true, story_ids, Scorer::Story.fields)
29
+ PivotalService.stories(project, true, story_ids, Scorer::Story.fields, include_done)
30
30
  end
31
31
 
32
32
  def update_attributes(attrs)
@@ -37,16 +37,20 @@ class PivotalService
37
37
  return @iteration if !@iteration.nil? && @iteration.project_id == project_id
38
38
 
39
39
  api_url = "/projects/#{project_id}/iterations?"
40
- if scope
41
- if scope != 'current'
42
- api_url = api_url + "&offset=#{offset}&limit=#{limit}"
43
- end
44
- api_url = api_url + "&scope=#{scope}"
40
+
41
+ if scope == 'current'
42
+ api_url = append_scope(api_url, scope)
43
+ elsif scope == 'done' || scope == 'backlog' || scope == 'current_backlog'
44
+ api_url = append_limit_offset(api_url, limit, offset)
45
+ api_url = append_scope(api_url, scope)
46
+ else
47
+ api_url = append_limit_offset(api_url, limit, offset)
45
48
  end
49
+
46
50
  api_url = append_fields(api_url, fields)
47
51
  response = Scorer::Client.get_with_caching(api_url)
48
52
  json_iterations = JSON.parse(response, {:symbolize_names => true})
49
- @iteration = Scorer::Iteration.parse_json_iteration(json_iterations[0])
53
+ @iteration = Scorer::Iteration.parse_json_iteration(json_iterations[0], (scope == 'done'))
50
54
  end
51
55
 
52
56
  def all_stories(project_label, project, fields=[])
@@ -65,10 +69,14 @@ class PivotalService
65
69
  Scorer::Story.parse_json_story(json_story, project.id)
66
70
  end
67
71
 
68
- def stories(project, should_cache, ids=[], fields=[])
72
+ def stories(project, should_cache, ids=[], fields=[], include_done=false)
69
73
  @stories = Array.new
70
74
  api_url = append_fields('/projects' + "/#{project.id}/stories", fields)
71
- api_url = api_url.rindex('?fields=') ? "#{api_url}&filter=id%3A" : "#{api_url}?filter=id%3A"
75
+ if api_url.rindex('?fields=')
76
+ api_url = "#{api_url}&filter=includedone%3A#{include_done}%20id%3A"
77
+ else
78
+ api_url = "#{api_url}?filter=includedone%3A#{include_done}%20id%3A"
79
+ end
72
80
  if ids.size == 1
73
81
  api_url = api_url + ids[0].to_s
74
82
  if should_cache
@@ -109,13 +117,21 @@ class PivotalService
109
117
 
110
118
  private
111
119
 
112
- def append_fields(api_url, fields)
113
- url = api_url
114
- fields.each do |field|
115
- url = url.rindex('?fields=') ? url + ",#{field}" : url + "?fields=#{field}"
116
- end
117
- url
120
+ def append_fields(api_url, fields)
121
+ url = api_url
122
+ fields.each do |field|
123
+ url = url.rindex('?fields=') ? url + ",#{field}" : url + "?fields=#{field}"
118
124
  end
125
+ url
126
+ end
127
+
128
+ def append_scope(api_url, scope)
129
+ api_url + "&scope=#{scope}"
130
+ end
131
+
132
+ def append_limit_offset(api_url, limit, offset)
133
+ api_url + "&limit=#{limit}&offset=#{offset}"
134
+ end
119
135
 
120
136
  end
121
137
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: pivotal-tracker-api 0.1.6 ruby lib
5
+ # stub: pivotal-tracker-api 0.1.7 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pivotal-tracker-api"
9
- s.version = "0.1.6"
9
+ s.version = "0.1.7"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["jfox"]
14
- s.date = "2014-02-01"
14
+ s.date = "2014-11-13"
15
15
  s.description = "A ruby gem to communicate with the Picotal Tracker API v5"
16
16
  s.email = "atljeremy@me.com"
17
17
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pivotal-tracker-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-01 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client