tracker_api 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b4cba526663ee9306a7f26b12aa8f9f0c574b935
4
- data.tar.gz: d91cb8b54927afb96dfb2ffd266a21fe9e4732fb
3
+ metadata.gz: a4ea13ce0c74d3e644ebc7425d5100931b0e1e3a
4
+ data.tar.gz: 4e5e624540678a7a39757ce74b102e3300dbce8d
5
5
  SHA512:
6
- metadata.gz: a7784c955bea7296f2f92903c5722d114d46895935acb4d8f83519b1fd885803cf4be195cfc0835966a57ea745b4b8fbe295dd0d72bb985e66bd8c17f4bc9b72
7
- data.tar.gz: 3fc7c32d7be48c0eaec816b99698ffb7f9ca7d12290dc68aca563ae90bc1a2f1b36702a77fb4be687beaf38ffa1a01fbbbde44f6ef6ebe5585861b1d3897d53f
6
+ metadata.gz: 9356f13e4620b8a7c420b52a2beba5bbd29ef6a921882df0edc0e612d8b77886869a964a1a723fc6b4bc8d73d0eb9f74a0dafd0737f54b40dec8cc3d9a816abe
7
+ data.tar.gz: 199de08b674ddd887ece1a3f8d30e8be802723185554f70fdacc9dc74c3031c1fd3963b4beaa2c44ad7f61fc685e8f2f6d33874c6b24b90b65baa8bfc211e1e8
data/.travis.yml CHANGED
@@ -1,12 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.3"
3
+ # - "1.9.3"
4
4
  - "2.0.0"
5
5
  - "2.1.0"
6
- - "2.2.2"
6
+ - "2.2.3"
7
7
  # Faraday::ConnectionFailed: Could not generate DH keypair (Java::JavaLang::RuntimeException)
8
8
  # http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7044060
9
- # - jruby-19mode # JRuby in 1.9 mode
9
+ - "jruby"
10
10
  # - rbx
11
11
  # - "1.8.7"
12
12
  # uncomment this line if your project needs to run something other than `rake`:
data/README.md CHANGED
@@ -56,6 +56,12 @@ story.attributes = { name: 'Save the Ewoks', description: '...' } # Upda
56
56
  story.labels << TrackerApi::Resources::Label.new(name: 'Endor') # Add a new label to an existing story
57
57
  story.save # Save changes made to a story
58
58
 
59
+ story = TrackerApi::Resources::Story.new( client: client,
60
+ project_id: 123456,
61
+ id: 847762630) # Use the Story resource to get the story
62
+ comments = story.comments # comments without first fetching the story.
63
+
64
+
59
65
  epics = project.epics # Get all epics for a project
60
66
  epic = epics.first
61
67
  label = epic.label # Get an epic's label
data/lib/tracker_api.rb CHANGED
@@ -11,14 +11,15 @@ else
11
11
  end
12
12
  require 'equalizer'
13
13
  require 'representable/json'
14
- require 'oj'
14
+ require 'multi_json'
15
15
 
16
16
  # stdlib
17
17
  require 'addressable/uri'
18
18
  require 'forwardable'
19
19
  require 'logger'
20
20
 
21
- Oj.default_options = {:mode => :compat }
21
+ MultiJson.load_options = {:mode => :compat}
22
+ MultiJson.dump_options = {:mode => :compat}
22
23
 
23
24
  module TrackerApi
24
25
  autoload :Error, 'tracker_api/error'
@@ -190,7 +190,7 @@ module TrackerApi
190
190
  headers = options[:headers]
191
191
 
192
192
  if (method == :post || method == :put) && options[:body].blank?
193
- body = Oj.dump(params)
193
+ body = MultiJson.dump(params)
194
194
  headers['Content-Type'] = 'application/json'
195
195
 
196
196
  params = {}
@@ -1,3 +1,3 @@
1
1
  module TrackerApi
2
- VERSION = '0.2.11'
2
+ VERSION = '0.2.12'
3
3
  end
data/test/story_test.rb CHANGED
@@ -84,95 +84,110 @@ describe TrackerApi::Resources::Story do
84
84
  owner.must_be_instance_of TrackerApi::Resources::Person
85
85
  end
86
86
 
87
- it 'gets all owners for this story' do
88
- VCR.use_cassette('get story', record: :new_episodes) do
89
- story = project.story(story_id)
90
- owners = VCR.use_cassette('get owners for story') { story.owners }
91
-
92
- owners.wont_be_empty
93
- owner = owners.first
94
- owner.must_be_instance_of TrackerApi::Resources::Person
87
+ it 'gets all owners for this story' do
88
+ VCR.use_cassette('get story', record: :new_episodes) do
89
+ story = project.story(story_id)
90
+ owners = VCR.use_cassette('get owners for story') { story.owners }
91
+
92
+ owners.wont_be_empty
93
+ owner = owners.first
94
+ owner.must_be_instance_of TrackerApi::Resources::Person
95
+ end
95
96
  end
96
97
  end
97
- end
98
98
 
99
- describe '.tasks' do
100
- it 'gets all tasks for this story with eager loading' do
101
- VCR.use_cassette('get story with tasks', record: :new_episodes) do
102
- tasks = project.story(story_id, fields: ':default,tasks').tasks
99
+ describe '.tasks' do
100
+ it 'gets all tasks for this story with eager loading' do
101
+ VCR.use_cassette('get story with tasks', record: :new_episodes) do
102
+ tasks = project.story(story_id, fields: ':default,tasks').tasks
103
103
 
104
- tasks.wont_be_empty
105
- task = tasks.first
106
- task.must_be_instance_of TrackerApi::Resources::Task
104
+ tasks.wont_be_empty
105
+ task = tasks.first
106
+ task.must_be_instance_of TrackerApi::Resources::Task
107
+ end
107
108
  end
108
- end
109
109
 
110
- it 'gets all tasks for this story' do
111
- VCR.use_cassette('get tasks', record: :new_episodes) do
112
- story = project.story(story_id)
113
- tasks = VCR.use_cassette('get tasks for story') { story.tasks }
110
+ it 'gets all tasks for this story' do
111
+ VCR.use_cassette('get tasks', record: :new_episodes) do
112
+ story = project.story(story_id)
113
+ tasks = VCR.use_cassette('get tasks for story') { story.tasks }
114
114
 
115
- tasks.wont_be_empty
116
- task = tasks.first
117
- task.must_be_instance_of TrackerApi::Resources::Task
115
+ tasks.wont_be_empty
116
+ task = tasks.first
117
+ task.must_be_instance_of TrackerApi::Resources::Task
118
+ end
118
119
  end
119
- end
120
120
 
121
- it 'gets all tasks even when the project_id is excluded from the story fields' do
122
- VCR.use_cassette('get tasks when stories filtered', record: :new_episodes) do
123
- stories = project.stories(with_state: 'unstarted', fields: 'name,story_type')
124
- stories.each do |story|
125
- tasks = story.tasks
126
- unless tasks.empty?
127
- task = tasks.first
128
- task.must_be_instance_of TrackerApi::Resources::Task
121
+ it 'gets all tasks even when the project_id is excluded from the story fields' do
122
+ VCR.use_cassette('get tasks when stories filtered', record: :new_episodes) do
123
+ stories = project.stories(with_state: 'unstarted', fields: 'name,story_type')
124
+ stories.each do |story|
125
+ tasks = story.tasks
126
+ unless tasks.empty?
127
+ task = tasks.first
128
+ task.must_be_instance_of TrackerApi::Resources::Task
129
+ end
129
130
  end
130
131
  end
131
132
  end
132
- end
133
133
 
134
- it 'can create task' do
135
- VCR.use_cassette('create task') do
136
- task = project.story(story_id).create_task(description: 'Test task')
134
+ it 'can create task' do
135
+ VCR.use_cassette('create task') do
136
+ task = project.story(story_id).create_task(description: 'Test task')
137
137
 
138
- task.must_be_instance_of TrackerApi::Resources::Task
139
- task.id.wont_be_nil
140
- task.id.must_be :>, 0
141
- task.description.must_equal 'Test task'
138
+ task.must_be_instance_of TrackerApi::Resources::Task
139
+ task.id.wont_be_nil
140
+ task.id.must_be :>, 0
141
+ task.description.must_equal 'Test task'
142
+ end
142
143
  end
143
144
  end
144
- end
145
145
 
146
- describe '.activity' do
147
- before do
148
- # create some activity
149
- story.name = "#{story.name}+"
146
+ describe '.activity' do
147
+ before do
148
+ # create some activity
149
+ story.name = "#{story.name}+"
150
150
 
151
- VCR.use_cassette('update story to create activity', record: :new_episodes) do
152
- story.save
151
+ VCR.use_cassette('update story to create activity', record: :new_episodes) do
152
+ story.save
153
+ end
154
+ end
155
+
156
+ it 'gets all the activity for this story' do
157
+ VCR.use_cassette('get story activity', record: :new_episodes) do
158
+ activity = story.activity
159
+
160
+ activity.wont_be_empty
161
+ event = activity.first
162
+ event.must_be_instance_of TrackerApi::Resources::Activity
163
+ end
153
164
  end
154
165
  end
155
166
 
156
- it 'gets all the activity for this story' do
157
- VCR.use_cassette('get story activity', record: :new_episodes) do
158
- activity = story.activity
167
+ describe '.owners' do
168
+ it 'gets all owners of this story' do
169
+ VCR.use_cassette('get story owners', record: :new_episodes) do
170
+ owners = story.owners
159
171
 
160
- activity.wont_be_empty
161
- event = activity.first
162
- event.must_be_instance_of TrackerApi::Resources::Activity
172
+ owners.wont_be_empty
173
+ owner = owners.first
174
+ owner.must_be_instance_of TrackerApi::Resources::Person
175
+ end
163
176
  end
164
177
  end
165
- end
166
178
 
167
- describe '.owners' do
168
- it 'gets all owners of this story' do
169
- VCR.use_cassette('get story owners', record: :new_episodes) do
170
- owners = story.owners
179
+ describe '.comments' do
180
+ it 'gets all comments of story with just project_id and story_id' do
181
+ VCR.use_cassette('get story comments', record: :new_episodes) do
182
+ story = TrackerApi::Resources::Story.new( client: client,
183
+ project_id: project_id,
184
+ id: story_id)
171
185
 
172
- owners.wont_be_empty
173
- owner = owners.first
174
- owner.must_be_instance_of TrackerApi::Resources::Person
186
+ comments = story.comments
187
+ comment = comments.first
188
+ comment.must_be_instance_of TrackerApi::Resources::Comment
189
+ end
175
190
  end
176
191
  end
177
- end
192
+
178
193
  end
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.2.3 (x86_64-darwin15; ruby) TrackerApi/0.2.11 Faraday/0.9.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Content-Type":["application/json; charset=utf-8"],"Status":["200 OK"],"Cache-Control":["max-age=0, private, must-revalidate"],"Date":["Thu, 17 Dec 2015 22:19:11 GMT"],"X-Tracker-Project-Version":["80"],"X-Request-Id":["bf8de15dbe8dce11ab420e0d988e107f"],"X-UA-Compatible":["IE=Edge,chrome=1"],"ETag":["\"0deb8dbe1ce2f0d1f95892eb3114789a\""],"X-Runtime":["0.066911"],"X-Rack-Cache":["miss"],"X-Powered-By":["Phusion Passenger Enterprise"],"Server":["nginx + Phusion Passenger"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Credentials":["false"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"],"X-Tracker-Client-Pinger-Interval":["12"]},"body":{"encoding":"UTF-8","string":"[{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2015-12-17T22:13:55Z\"},{\"kind\":\"comment\",\"id\":120836938,\"story_id\":66728004,\"text\":\"This is another comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:14:04Z\",\"updated_at\":\"2015-12-17T22:14:04Z\"}]"},"http_version":null},"recorded_at":"Thu, 17 Dec 2015 22:19:11 GMT"}],"recorded_with":"VCR 2.9.3"}
data/tracker_api.gemspec CHANGED
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'minitest'
24
24
  spec.add_development_dependency 'awesome_print'
25
25
  spec.add_development_dependency 'vcr'
26
- spec.add_development_dependency 'multi_json'
27
26
 
28
27
  spec.add_dependency 'addressable'
29
28
  spec.add_dependency 'virtus'
@@ -31,6 +30,6 @@ Gem::Specification.new do |spec|
31
30
  spec.add_dependency 'faraday_middleware'
32
31
  spec.add_dependency 'excon'
33
32
  spec.add_dependency 'equalizer'
34
- spec.add_dependency 'oj'
35
33
  spec.add_dependency 'representable'
34
+ spec.add_dependency 'multi_json'
36
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tracker_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Forest Carlisle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-13 00:00:00.000000000 Z
11
+ date: 2016-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: multi_json
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: addressable
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +165,7 @@ dependencies:
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0'
181
167
  - !ruby/object:Gem::Dependency
182
- name: oj
168
+ name: representable
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
171
  - - ">="
@@ -193,7 +179,7 @@ dependencies:
193
179
  - !ruby/object:Gem::Version
194
180
  version: '0'
195
181
  - !ruby/object:Gem::Dependency
196
- name: representable
182
+ name: multi_json
197
183
  requirement: !ruby/object:Gem::Requirement
198
184
  requirements:
199
185
  - - ">="
@@ -288,6 +274,7 @@ files:
288
274
  - test/vcr/cassettes/get_project_with_labels.json
289
275
  - test/vcr/cassettes/get_story.json
290
276
  - test/vcr/cassettes/get_story_activity.json
277
+ - test/vcr/cassettes/get_story_comments.json
291
278
  - test/vcr/cassettes/get_story_owners.json
292
279
  - test/vcr/cassettes/get_story_with_owners.json
293
280
  - test/vcr/cassettes/get_story_with_tasks.json
@@ -321,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
308
  version: '0'
322
309
  requirements: []
323
310
  rubyforge_project:
324
- rubygems_version: 2.2.2
311
+ rubygems_version: 2.4.5.1
325
312
  signing_key:
326
313
  specification_version: 4
327
314
  summary: API client for the Pivotal Tracker v5 API
@@ -354,6 +341,7 @@ test_files:
354
341
  - test/vcr/cassettes/get_project_with_labels.json
355
342
  - test/vcr/cassettes/get_story.json
356
343
  - test/vcr/cassettes/get_story_activity.json
344
+ - test/vcr/cassettes/get_story_comments.json
357
345
  - test/vcr/cassettes/get_story_owners.json
358
346
  - test/vcr/cassettes/get_story_with_owners.json
359
347
  - test/vcr/cassettes/get_story_with_tasks.json