pivotal-tracker-api 0.1.5 → 0.1.6
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 +4 -4
- data/VERSION +1 -1
- data/lib/pivotal-tracker-api/comment.rb +2 -1
- data/lib/pivotal-tracker-api/iteration.rb +5 -13
- data/lib/pivotal-tracker-api/person.rb +4 -0
- data/lib/pivotal-tracker-api/pivotal_service.rb +7 -12
- data/lib/pivotal-tracker-api/story.rb +5 -13
- data/pivotal-tracker-api.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 560e9d8e7bd5655593e3cd8b1d42411305ad29c2
|
4
|
+
data.tar.gz: eeb4255fb00eb9bfffaf6ac4d473c0e3af93ccf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bf81cf50034cfbd2f5bef545cfc323c84bf28c1b2ae7851504d67286313a048676dd4bbb0139811ca78bf6445976f207a0cb85564f5ce6e62a132c90d0ca92b
|
7
|
+
data.tar.gz: d7b52ae07c22aa081f8e18480f6b8187b81df6f05b0649adae915c8a21fb57be159733db4fca4eecdf12011f0012aedca81b03c87286e2381dab04893812059a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
@@ -4,7 +4,8 @@ module Scorer
|
|
4
4
|
attr_accessor :story, :project_id, :story_id, :id, :text, :author, :created_at, :updated_at, :file_attachments
|
5
5
|
|
6
6
|
def self.fields
|
7
|
-
[
|
7
|
+
["person(#{Scorer::Person.fields.join(',')})", 'text', 'updated_at', 'id',
|
8
|
+
'created_at', 'story_id', 'file_attachments']
|
8
9
|
end
|
9
10
|
|
10
11
|
def self.parse_json_comments(json_comments, story)
|
@@ -7,20 +7,10 @@ module Scorer
|
|
7
7
|
update_attributes(attributes)
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.parse_json_iteration_with_comments(json_iteration)
|
11
|
-
parse_iteration(json_iteration, true)
|
12
|
-
end
|
13
|
-
|
14
10
|
def self.parse_json_iteration(json_iteration)
|
15
|
-
parse_iteration(json_iteration, false)
|
16
|
-
end
|
17
|
-
|
18
|
-
protected
|
19
|
-
|
20
|
-
def self.parse_iteration(json_iteration, with_comments)
|
21
11
|
new({
|
22
12
|
project_id: json_iteration[:project_id].to_i,
|
23
|
-
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),
|
24
14
|
story_ids: json_iteration[:story_ids],
|
25
15
|
number: json_iteration[:number],
|
26
16
|
team_strength: json_iteration[:team_strength],
|
@@ -30,11 +20,13 @@ module Scorer
|
|
30
20
|
})
|
31
21
|
end
|
32
22
|
|
33
|
-
|
23
|
+
protected
|
24
|
+
|
25
|
+
def self.parse_stories(stories, project_id)
|
34
26
|
story_ids = Array.new
|
35
27
|
stories.each { |story| story_ids << story[:id].to_i if !story[:id].nil? }
|
36
28
|
project = PivotalService.one_project(project_id)
|
37
|
-
PivotalService.stories(project, true,
|
29
|
+
PivotalService.stories(project, true, story_ids, Scorer::Story.fields)
|
38
30
|
end
|
39
31
|
|
40
32
|
def update_attributes(attrs)
|
@@ -33,7 +33,7 @@ class PivotalService
|
|
33
33
|
Scorer::Activity.parse_json_activity(json_activity, project_id)
|
34
34
|
end
|
35
35
|
|
36
|
-
def iterations(project_id, scope,
|
36
|
+
def iterations(project_id, scope, fields=[], limit=1, offset=1)
|
37
37
|
return @iteration if !@iteration.nil? && @iteration.project_id == project_id
|
38
38
|
|
39
39
|
api_url = "/projects/#{project_id}/iterations?"
|
@@ -46,20 +46,15 @@ class PivotalService
|
|
46
46
|
api_url = append_fields(api_url, fields)
|
47
47
|
response = Scorer::Client.get_with_caching(api_url)
|
48
48
|
json_iterations = JSON.parse(response, {:symbolize_names => true})
|
49
|
-
|
50
|
-
@iteration = Scorer::Iteration.parse_json_iteration_with_comments(json_iterations[0])
|
51
|
-
else
|
52
|
-
@iteration = Scorer::Iteration.parse_json_iteration(json_iterations[0])
|
53
|
-
end
|
54
|
-
@iteration
|
49
|
+
@iteration = Scorer::Iteration.parse_json_iteration(json_iterations[0])
|
55
50
|
end
|
56
51
|
|
57
|
-
def all_stories(project_label, project,
|
52
|
+
def all_stories(project_label, project, fields=[])
|
58
53
|
api_url = append_fields('/projects' + "/#{project.id}/stories", fields)
|
59
54
|
api_url = api_url + "&with_label=#{project_label}&with_state=unstarted&limit=100"
|
60
55
|
response = Scorer::Client.get(api_url)
|
61
56
|
json_stories = JSON.parse(response, {:symbolize_names => true})
|
62
|
-
Scorer::Story.parse_json_stories(json_stories, project.id
|
57
|
+
Scorer::Story.parse_json_stories(json_stories, project.id)
|
63
58
|
end
|
64
59
|
|
65
60
|
def one_story(project_label, project, fields=[])
|
@@ -70,7 +65,7 @@ class PivotalService
|
|
70
65
|
Scorer::Story.parse_json_story(json_story, project.id)
|
71
66
|
end
|
72
67
|
|
73
|
-
def stories(project, should_cache,
|
68
|
+
def stories(project, should_cache, ids=[], fields=[])
|
74
69
|
@stories = Array.new
|
75
70
|
api_url = append_fields('/projects' + "/#{project.id}/stories", fields)
|
76
71
|
api_url = api_url.rindex('?fields=') ? "#{api_url}&filter=id%3A" : "#{api_url}?filter=id%3A"
|
@@ -82,7 +77,7 @@ class PivotalService
|
|
82
77
|
response = Scorer::Client.get(api_url)
|
83
78
|
end
|
84
79
|
json_story = JSON.parse(response, {:symbolize_names => true})
|
85
|
-
@stories << Scorer::Story.parse_json_story(json_story[0], project.id
|
80
|
+
@stories << Scorer::Story.parse_json_story(json_story[0], project.id)
|
86
81
|
else
|
87
82
|
story_ids = ''
|
88
83
|
ids.each do |id|
|
@@ -95,7 +90,7 @@ class PivotalService
|
|
95
90
|
response = Scorer::Client.get(api_url)
|
96
91
|
end
|
97
92
|
json_stories = JSON.parse(response, {:symbolize_names => true})
|
98
|
-
@stories = Scorer::Story.parse_json_stories(json_stories, project.id
|
93
|
+
@stories = Scorer::Story.parse_json_stories(json_stories, project.id)
|
99
94
|
end
|
100
95
|
end
|
101
96
|
|
@@ -14,10 +14,10 @@ module Scorer
|
|
14
14
|
['url', 'name', 'description', 'story_type',
|
15
15
|
'estimate', 'current_state', 'requested_by',
|
16
16
|
'owned_by', 'labels', 'integration_id',
|
17
|
-
'deadline',
|
17
|
+
'deadline', "comments(#{Scorer::Comment.fields.join(',')})", 'tasks']
|
18
18
|
end
|
19
19
|
|
20
|
-
def self.parse_json_story(json_story, project_id
|
20
|
+
def self.parse_json_story(json_story, project_id)
|
21
21
|
requested_by = json_story[:requested_by][:name] if !json_story[:requested_by].nil?
|
22
22
|
story_id = json_story[:id].to_i
|
23
23
|
estimate = json_story[:estimate] ? json_story[:estimate].to_i : -1
|
@@ -39,11 +39,7 @@ module Scorer
|
|
39
39
|
deadline: json_story[:deadline]
|
40
40
|
})
|
41
41
|
|
42
|
-
|
43
|
-
parsed_story.comments = get_story_comments(project_id, parsed_story)
|
44
|
-
else
|
45
|
-
parsed_story.comments = Scorer::Comment.parse_json_comments(json_story[:comments], parsed_story)
|
46
|
-
end
|
42
|
+
parsed_story.comments = Scorer::Comment.parse_json_comments(json_story[:comments], parsed_story)
|
47
43
|
parsed_story.has_attachments = false
|
48
44
|
if !parsed_story.comments.nil? && parsed_story.comments.count > 0
|
49
45
|
parsed_story.comments.each do |note|
|
@@ -57,18 +53,14 @@ module Scorer
|
|
57
53
|
parsed_story
|
58
54
|
end
|
59
55
|
|
60
|
-
def self.parse_json_stories(json_stories, project_id
|
56
|
+
def self.parse_json_stories(json_stories, project_id)
|
61
57
|
stories = Array.new
|
62
58
|
json_stories.each do |story|
|
63
|
-
stories << parse_json_story(story, project_id
|
59
|
+
stories << parse_json_story(story, project_id)
|
64
60
|
end
|
65
61
|
stories
|
66
62
|
end
|
67
63
|
|
68
|
-
def self.get_story_comments(project_id, story)
|
69
|
-
PivotalService.comments(project_id, story, Scorer::Comment.fields)
|
70
|
-
end
|
71
|
-
|
72
64
|
def self.parse_tasks(tasks, story)
|
73
65
|
parsed_tasks = Array.new
|
74
66
|
if tasks
|
data/pivotal-tracker-api.gemspec
CHANGED
@@ -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.
|
5
|
+
# stub: pivotal-tracker-api 0.1.6 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "pivotal-tracker-api"
|
9
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.6"
|
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-01
|
14
|
+
s.date = "2014-02-01"
|
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.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jfox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01
|
11
|
+
date: 2014-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|