pivotal-tracker-fox 0.5.12 → 0.5.13

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.
Files changed (2) hide show
  1. data/lib/pivotal-tracker/story.rb +63 -11
  2. metadata +2 -2
@@ -19,10 +19,68 @@ module PivotalTracker
19
19
  end
20
20
  return story
21
21
  end
22
-
23
- def parse_stories(xml_string)
24
- parse(xml_string)
22
+
23
+ def parse_stories(xml_string, project_id)
24
+ doc = Nokogiri::XML(xml_string)
25
+ doc.xpath('//story').map do |xml_story|
26
+ story = Story.new({
27
+ id: xml_story.xpath('id').inner_text.to_i,
28
+ url: xml_story.xpath('url').inner_text,
29
+ project_id: project_id,
30
+ name: xml_story.xpath('name').inner_text,
31
+ description: xml_story.xpath('description').inner_text,
32
+ story_type: xml_story.xpath('story_type').inner_text,
33
+ estimate: xml_story.xpath('estimate').inner_text.to_i,
34
+ current_state: xml_story.xpath('current_state').inner_text,
35
+ requested_by: xml_story.xpath('requested_by').inner_text,
36
+ owned_by: xml_story.xpath('owned_by').inner_text,
37
+ labels: xml_story.xpath('labels').inner_text,
38
+ jira_id: xml_story.xpath('jira_id').inner_text,
39
+ jira_url: xml_story.xpath('jira_url').inner_text,
40
+ other_id: xml_story.xpath('other_id').inner_text,
41
+ integration_id: xml_story.xpath('integration_id').inner_text,
42
+ deadline: xml_story.xpath('deadline').inner_text
43
+ })
44
+
45
+ @attachments = xml_story.xpath('attachments')
46
+ story.attachments = @attachments.xpath('attachment').map do |xml|
47
+ attachment = Attachment.new
48
+ attachment.id = xml.xpath('id').inner_text.to_i
49
+ attachment.filename = xml.xpath('filename').inner_text
50
+ attachment.description = xml.xpath('description').inner_text
51
+ attachment.uploaded_by = xml.xpath('uploaded_by').inner_text
52
+ attachment.uploaded_at = xml.xpath('uploaded_at').inner_text
53
+ attachment.url = xml.xpath('url').inner_text
54
+ attachment.status = xml.xpath('status').inner_text
55
+ attachment
56
+ end
57
+
58
+ @notes = xml_story.xpath('notes')
59
+ story.notes = @notes.xpath('note').map do |xml|
60
+ Note.new({
61
+ id: xml.xpath('id').inner_text.to_i,
62
+ text: xml.xpath('text').inner_text,
63
+ author: xml.xpath('author').inner_text,
64
+ noted_at: DateTime.parse(xml.xpath('noted_at').inner_text.to_s).to_s,
65
+ story: story
66
+ })
67
+ end
68
+
69
+ @tasks = xml_story.xpath('tasks')
70
+ story.tasks = @tasks.xpath('task').map do |xml|
71
+ Task.new({
72
+ id: xml.xpath('id').inner_text.to_i,
73
+ description: xml.xpath('description').inner_text,
74
+ complete: xml.xpath('complete').inner_text,
75
+ created_at: DateTime.parse(xml.xpath('created_at').inner_text.to_s).to_s,
76
+ story: story
77
+ })
78
+ end
79
+
80
+ story
81
+ end
25
82
  end
83
+
26
84
  end
27
85
 
28
86
  tag "story"
@@ -46,6 +104,8 @@ module PivotalTracker
46
104
  element :other_id, String
47
105
  element :integration_id, Integer
48
106
  element :deadline, DateTime # Only available for Release stories
107
+ element :notes, Array
108
+ element :tasks, Array
49
109
 
50
110
  has_many :attachments, Attachment, :tag => 'attachments', :xpath => '//attachments'
51
111
 
@@ -79,14 +139,6 @@ module PivotalTracker
79
139
  Client.connection["/projects/#{project_id}/stories/#{id}"].delete
80
140
  end
81
141
 
82
- def notes
83
- @notes ||= Proxy.new(self, Note)
84
- end
85
-
86
- def tasks
87
- @tasks ||= Proxy.new(self, Task)
88
- end
89
-
90
142
  def upload_attachment(filename)
91
143
  Attachment.parse(Client.connection["/projects/#{project_id}/stories/#{id}/attachments"].post(:Filedata => File.new(filename)))
92
144
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pivotal-tracker-fox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.12
4
+ version: 0.5.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-07-31 00:00:00.000000000 Z
15
+ date: 2013-08-05 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rest-client