scrumninja 0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ coverage
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/Changelog ADDED
File without changes
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gem_template.gemspec
4
+ gemspec
5
+
data/Gemfile.lock ADDED
@@ -0,0 +1,43 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ scrumninja (0.1)
5
+ faraday_middleware (~> 0.6.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ addressable (2.2.6)
11
+ crack (0.1.8)
12
+ diff-lcs (1.1.2)
13
+ faraday (0.6.1)
14
+ addressable (~> 2.2.4)
15
+ multipart-post (~> 1.1.0)
16
+ rack (< 2, >= 1.1.0)
17
+ faraday_middleware (0.6.3)
18
+ faraday (~> 0.6.0)
19
+ hashie (1.0.0)
20
+ multi_xml (0.2.2)
21
+ multipart-post (1.1.2)
22
+ rack (1.3.0)
23
+ rspec (2.6.0)
24
+ rspec-core (~> 2.6.0)
25
+ rspec-expectations (~> 2.6.0)
26
+ rspec-mocks (~> 2.6.0)
27
+ rspec-core (2.6.4)
28
+ rspec-expectations (2.6.0)
29
+ diff-lcs (~> 1.1.2)
30
+ rspec-mocks (2.6.0)
31
+ webmock (1.6.4)
32
+ addressable (> 2.2.5, ~> 2.2)
33
+ crack (>= 0.1.7)
34
+
35
+ PLATFORMS
36
+ ruby
37
+
38
+ DEPENDENCIES
39
+ hashie (~> 1.0.0)
40
+ multi_xml (~> 0.2.0)
41
+ rspec (~> 2.6)
42
+ scrumninja!
43
+ webmock (~> 1.5)
data/LICENSE ADDED
File without changes
data/README ADDED
File without changes
@@ -0,0 +1,58 @@
1
+ require 'faraday_middleware'
2
+
3
+ module ScrumNinja
4
+ class Client
5
+ def initialize(key)
6
+ @api_key = key
7
+ end
8
+
9
+ def projects(options={})
10
+ response = get 'https://scrumninja.com/projects.xml', options
11
+ response.projects
12
+ end
13
+
14
+ def project_stories(project_id,options={})
15
+ response = get "http://scrumninja.com/projects/#{project_id}/stories.xml", options
16
+ response.stories
17
+ end
18
+
19
+ def project_backlog(project_id,options={})
20
+ response = get "http://scrumninja.com/projects/#{project_id}/backlog/index.xml", options
21
+ response.sprints
22
+ end
23
+
24
+ def project_card_wall(project_id,options={})
25
+ response = get "http://scrumninja.com/projects/#{project_id}/card_wall.xml", options
26
+ response.tasks
27
+ end
28
+
29
+ def story_tasks(story_id,options={})
30
+ response = get "http://scrumninja.com/stories/#{story_id}/tasks.xml", options
31
+ response.tasks
32
+ end
33
+
34
+ private
35
+
36
+ def connection
37
+ options = {
38
+ :headers => {'Accept' => 'application/xml'},
39
+ :ssl => {:verify => false}
40
+ }
41
+
42
+ Faraday::Connection.new(options) do |builder|
43
+ builder.use Faraday::Request::Multipart
44
+ builder.use Faraday::Response::Mashify
45
+ builder.use Faraday::Response::ParseXml
46
+ builder.adapter(Faraday.default_adapter)
47
+ end
48
+ end
49
+
50
+ def get(path,options)
51
+ options.merge!({:api_key => @api_key})
52
+ response = connection.get do |request|
53
+ request.url path, options
54
+ end
55
+ response.body
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,3 @@
1
+ module ScrumNinja
2
+ VERSION = "0.1"
3
+ end
data/lib/scrumninja.rb ADDED
@@ -0,0 +1,31 @@
1
+ require 'scrumninja/client'
2
+ require 'scrumninja/version'
3
+
4
+ module ScrumNinja
5
+ # Alias for FccReboot::Client.new
6
+ #
7
+ # @return [FccReboot::Client]
8
+ def self.client(options={})
9
+ ScrumNinja::Client.new(options)
10
+ end
11
+
12
+ def self.projects(api_key)
13
+ client(api_key).projects
14
+ end
15
+
16
+ def self.project_stories(api_key,project_id)
17
+ client(api_key).project_stories project_id
18
+ end
19
+
20
+ def self.project_backlog(api_key,project_id)
21
+ client(api_key).project_backlog project_id
22
+ end
23
+
24
+ def self.project_card_wall(api_key,project_id)
25
+ client(api_key).project_card_wall project_id
26
+ end
27
+
28
+ def self.story_tasks(api_key,story_id)
29
+ client(api_key).story_tasks story_id
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "scrumninja/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "scrumninja"
7
+ s.version = ScrumNinja::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Javier Muniz"]
10
+ s.email = "javier@granicus.com"
11
+ s.summary = "Scrumninja API Wrapper"
12
+ s.homepage = "http://github.com/gov20cto/scrumninja"
13
+ s.description = "Wrapper for the Scrumninja backlog/sprint management tool."
14
+
15
+ s.rubyforge_project = "scrumninja"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_development_dependency('rspec', '~> 2.6')
23
+ s.add_development_dependency('webmock', '~> 1.5')
24
+ s.add_development_dependency('hashie', '~> 1.0.0')
25
+ s.add_development_dependency('multi_xml', '~> 0.2.0')
26
+
27
+ s.add_dependency('faraday_middleware', '~> 0.6.0')
28
+ end
@@ -0,0 +1,346 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <sprints type="array">
3
+ <sprint>
4
+ <stories type="array">
5
+ <story>
6
+ <accepted-on type="date" nil="true"></accepted-on>
7
+ <complexity>5</complexity>
8
+ <content>As a user, I want to reset my password in the event that I forget it so that I won't get locked out</content>
9
+ <created-at type="datetime">2011-06-09T12:02:26-07:00</created-at>
10
+ <created-by-user-id type="integer">8218</created-by-user-id>
11
+ <delivered-on type="date" nil="true"></delivered-on>
12
+ <id type="integer">139447</id>
13
+ <name>Reset Password</name>
14
+ <owner-user-id type="integer" nil="true"></owner-user-id>
15
+ <position type="float">2.0</position>
16
+ <rejection-reason nil="true"></rejection-reason>
17
+ <status>pending</status>
18
+ <story-collection-id type="integer">26247</story-collection-id>
19
+ <updated-at type="datetime">2011-06-09T12:02:26-07:00</updated-at>
20
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
21
+ <hours_remaining>6.0</hours_remaining>
22
+ <link href="http://scrumninja.com/projects/8991/stories/139447.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
23
+ <link href="http://scrumninja.com/stories/139447/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
24
+ </story>
25
+ </stories>
26
+ <date-start type="date">2011-06-23</date-start>
27
+ <number type="integer">1</number>
28
+ <date-finish type="date">2011-07-06</date-finish>
29
+ </sprint>
30
+ <sprint>
31
+ <stories type="array">
32
+ <story>
33
+ <accepted-on type="date" nil="true"></accepted-on>
34
+ <complexity>13</complexity>
35
+ <content>As a user, I want to write an article, so that I can share it with other users</content>
36
+ <created-at type="datetime">2011-06-09T12:02:26-07:00</created-at>
37
+ <created-by-user-id type="integer">8218</created-by-user-id>
38
+ <delivered-on type="date" nil="true"></delivered-on>
39
+ <id type="integer">139448</id>
40
+ <name>Create Article</name>
41
+ <owner-user-id type="integer" nil="true"></owner-user-id>
42
+ <position type="float">5.0</position>
43
+ <rejection-reason nil="true"></rejection-reason>
44
+ <status>pending</status>
45
+ <story-collection-id type="integer">26247</story-collection-id>
46
+ <updated-at type="datetime">2011-06-09T12:02:26-07:00</updated-at>
47
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
48
+ <hours_remaining>8.0</hours_remaining>
49
+ <link href="http://scrumninja.com/projects/8991/stories/139448.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
50
+ <link href="http://scrumninja.com/stories/139448/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
51
+ </story>
52
+ </stories>
53
+ <date-start type="date">2011-07-07</date-start>
54
+ <number type="integer">2</number>
55
+ <date-finish type="date">2011-07-20</date-finish>
56
+ </sprint>
57
+ <sprint>
58
+ <stories type="array">
59
+ <story>
60
+ <accepted-on type="date" nil="true"></accepted-on>
61
+ <complexity>8</complexity>
62
+ <content>As a user, I want to upload a photo, so that I can share it with other users</content>
63
+ <created-at type="datetime">2011-06-09T12:02:26-07:00</created-at>
64
+ <created-by-user-id type="integer">8218</created-by-user-id>
65
+ <delivered-on type="date" nil="true"></delivered-on>
66
+ <id type="integer">139449</id>
67
+ <name>Upload Photo</name>
68
+ <owner-user-id type="integer" nil="true"></owner-user-id>
69
+ <position type="float">6.0</position>
70
+ <rejection-reason nil="true"></rejection-reason>
71
+ <status>pending</status>
72
+ <story-collection-id type="integer">26247</story-collection-id>
73
+ <updated-at type="datetime">2011-06-09T12:02:26-07:00</updated-at>
74
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
75
+ <hours_remaining>8.0</hours_remaining>
76
+ <link href="http://scrumninja.com/projects/8991/stories/139449.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
77
+ <link href="http://scrumninja.com/stories/139449/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
78
+ </story>
79
+ </stories>
80
+ <date-start type="date">2011-07-21</date-start>
81
+ <number type="integer">3</number>
82
+ <date-finish type="date">2011-08-03</date-finish>
83
+ </sprint>
84
+ <sprint>
85
+ <stories type="array">
86
+ <story>
87
+ <accepted-on type="date" nil="true"></accepted-on>
88
+ <complexity>5</complexity>
89
+ <content>As a user, I want to browse other users' articles because I want to see content</content>
90
+ <created-at type="datetime">2011-06-09T12:02:26-07:00</created-at>
91
+ <created-by-user-id type="integer">8218</created-by-user-id>
92
+ <delivered-on type="date" nil="true"></delivered-on>
93
+ <id type="integer">139450</id>
94
+ <name>Browse Articles</name>
95
+ <owner-user-id type="integer" nil="true"></owner-user-id>
96
+ <position type="float">7.0</position>
97
+ <rejection-reason nil="true"></rejection-reason>
98
+ <status>pending</status>
99
+ <story-collection-id type="integer">26247</story-collection-id>
100
+ <updated-at type="datetime">2011-06-09T12:02:26-07:00</updated-at>
101
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
102
+ <hours_remaining>8.0</hours_remaining>
103
+ <link href="http://scrumninja.com/projects/8991/stories/139450.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
104
+ <link href="http://scrumninja.com/stories/139450/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
105
+ </story>
106
+ <story>
107
+ <accepted-on type="date" nil="true"></accepted-on>
108
+ <complexity>BUG</complexity>
109
+ <content nil="true"></content>
110
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
111
+ <created-by-user-id type="integer">8218</created-by-user-id>
112
+ <delivered-on type="date" nil="true"></delivered-on>
113
+ <id type="integer">139451</id>
114
+ <name>Fix Bugs</name>
115
+ <owner-user-id type="integer" nil="true"></owner-user-id>
116
+ <position type="float">8.0</position>
117
+ <rejection-reason nil="true"></rejection-reason>
118
+ <status>pending</status>
119
+ <story-collection-id type="integer">26247</story-collection-id>
120
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
121
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
122
+ <hours_remaining>2.0</hours_remaining>
123
+ <link href="http://scrumninja.com/projects/8991/stories/139451.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
124
+ <link href="http://scrumninja.com/stories/139451/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
125
+ </story>
126
+ </stories>
127
+ <date-start type="date">2011-08-04</date-start>
128
+ <number type="integer">4</number>
129
+ <date-finish type="date">2011-08-17</date-finish>
130
+ </sprint>
131
+ <sprint>
132
+ <stories type="array">
133
+ <story>
134
+ <accepted-on type="date" nil="true"></accepted-on>
135
+ <complexity>5</complexity>
136
+ <content>As a user, I want to browse other users' photos because I want to see content</content>
137
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
138
+ <created-by-user-id type="integer">8218</created-by-user-id>
139
+ <delivered-on type="date" nil="true"></delivered-on>
140
+ <id type="integer">139452</id>
141
+ <name>Browse Photos</name>
142
+ <owner-user-id type="integer" nil="true"></owner-user-id>
143
+ <position type="float">9.0</position>
144
+ <rejection-reason nil="true"></rejection-reason>
145
+ <status>pending</status>
146
+ <story-collection-id type="integer">26247</story-collection-id>
147
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
148
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
149
+ <hours_remaining>8.0</hours_remaining>
150
+ <link href="http://scrumninja.com/projects/8991/stories/139452.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
151
+ <link href="http://scrumninja.com/stories/139452/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
152
+ </story>
153
+ </stories>
154
+ <date-start type="date">2011-08-18</date-start>
155
+ <number type="integer">5</number>
156
+ <date-finish type="date">2011-08-31</date-finish>
157
+ </sprint>
158
+ <sprint>
159
+ <stories type="array">
160
+ <story>
161
+ <accepted-on type="date" nil="true"></accepted-on>
162
+ <complexity>5</complexity>
163
+ <content>As a user, I want to submit my profile so others with similar interests can find me</content>
164
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
165
+ <created-by-user-id type="integer">8218</created-by-user-id>
166
+ <delivered-on type="date" nil="true"></delivered-on>
167
+ <id type="integer">139453</id>
168
+ <name>User Profile</name>
169
+ <owner-user-id type="integer" nil="true"></owner-user-id>
170
+ <position type="float">10.0</position>
171
+ <rejection-reason nil="true"></rejection-reason>
172
+ <status>pending</status>
173
+ <story-collection-id type="integer">26247</story-collection-id>
174
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
175
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
176
+ <hours_remaining>8.0</hours_remaining>
177
+ <link href="http://scrumninja.com/projects/8991/stories/139453.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
178
+ <link href="http://scrumninja.com/stories/139453/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
179
+ </story>
180
+ <story>
181
+ <accepted-on type="date" nil="true"></accepted-on>
182
+ <complexity>3</complexity>
183
+ <content>As a user, I want to view other user's profiles so I can find users with similar interests</content>
184
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
185
+ <created-by-user-id type="integer">8218</created-by-user-id>
186
+ <delivered-on type="date" nil="true"></delivered-on>
187
+ <id type="integer">139454</id>
188
+ <name>Browse Profiles</name>
189
+ <owner-user-id type="integer" nil="true"></owner-user-id>
190
+ <position type="float">11.0</position>
191
+ <rejection-reason nil="true"></rejection-reason>
192
+ <status>pending</status>
193
+ <story-collection-id type="integer">26247</story-collection-id>
194
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
195
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
196
+ <hours_remaining>12.0</hours_remaining>
197
+ <link href="http://scrumninja.com/projects/8991/stories/139454.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
198
+ <link href="http://scrumninja.com/stories/139454/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
199
+ </story>
200
+ </stories>
201
+ <date-start type="date">2011-09-01</date-start>
202
+ <number type="integer">6</number>
203
+ <date-finish type="date">2011-09-14</date-finish>
204
+ </sprint>
205
+ <sprint>
206
+ <stories type="array">
207
+ <story>
208
+ <accepted-on type="date" nil="true"></accepted-on>
209
+ <complexity>3</complexity>
210
+ <content>As a user, I want to search other user's profiles so I can find users with similar interests</content>
211
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
212
+ <created-by-user-id type="integer">8218</created-by-user-id>
213
+ <delivered-on type="date" nil="true"></delivered-on>
214
+ <id type="integer">139455</id>
215
+ <name>Search Profiles</name>
216
+ <owner-user-id type="integer" nil="true"></owner-user-id>
217
+ <position type="float">12.0</position>
218
+ <rejection-reason nil="true"></rejection-reason>
219
+ <status>pending</status>
220
+ <story-collection-id type="integer">26247</story-collection-id>
221
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
222
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
223
+ <hours_remaining>12.0</hours_remaining>
224
+ <link href="http://scrumninja.com/projects/8991/stories/139455.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
225
+ <link href="http://scrumninja.com/stories/139455/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
226
+ </story>
227
+ <story>
228
+ <accepted-on type="date" nil="true"></accepted-on>
229
+ <complexity>3</complexity>
230
+ <content>As a user, I want to flag content that I deem inappropriate, so we can preserve a positive user experience</content>
231
+ <created-at type="datetime">2011-06-09T12:02:27-07:00</created-at>
232
+ <created-by-user-id type="integer">8218</created-by-user-id>
233
+ <delivered-on type="date" nil="true"></delivered-on>
234
+ <id type="integer">139456</id>
235
+ <name>Flagging</name>
236
+ <owner-user-id type="integer" nil="true"></owner-user-id>
237
+ <position type="float">13.0</position>
238
+ <rejection-reason nil="true"></rejection-reason>
239
+ <status>pending</status>
240
+ <story-collection-id type="integer">26247</story-collection-id>
241
+ <updated-at type="datetime">2011-06-09T12:02:27-07:00</updated-at>
242
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
243
+ <hours_remaining>7.0</hours_remaining>
244
+ <link href="http://scrumninja.com/projects/8991/stories/139456.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
245
+ <link href="http://scrumninja.com/stories/139456/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
246
+ </story>
247
+ </stories>
248
+ <date-start type="date">2011-09-15</date-start>
249
+ <number type="integer">7</number>
250
+ <date-finish type="date">2011-09-28</date-finish>
251
+ </sprint>
252
+ <sprint>
253
+ <stories type="array">
254
+ <story>
255
+ <accepted-on type="date" nil="true"></accepted-on>
256
+ <complexity>3</complexity>
257
+ <content>As an admin, I want to be able to see newly signed up users so that I can track system growth</content>
258
+ <created-at type="datetime">2011-06-09T12:02:28-07:00</created-at>
259
+ <created-by-user-id type="integer">8218</created-by-user-id>
260
+ <delivered-on type="date" nil="true"></delivered-on>
261
+ <id type="integer">139457</id>
262
+ <name>Track new signups</name>
263
+ <owner-user-id type="integer" nil="true"></owner-user-id>
264
+ <position type="float">14.0</position>
265
+ <rejection-reason nil="true"></rejection-reason>
266
+ <status>pending</status>
267
+ <story-collection-id type="integer">26247</story-collection-id>
268
+ <updated-at type="datetime">2011-06-09T12:02:28-07:00</updated-at>
269
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
270
+ <hours_remaining>0</hours_remaining>
271
+ <link href="http://scrumninja.com/projects/8991/stories/139457.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
272
+ <link href="http://scrumninja.com/stories/139457/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
273
+ </story>
274
+ <story>
275
+ <accepted-on type="date" nil="true"></accepted-on>
276
+ <complexity>5</complexity>
277
+ <content>As an admin, I want to view the flags on each piece of content so I can stay on top of spam </content>
278
+ <created-at type="datetime">2011-06-09T12:02:28-07:00</created-at>
279
+ <created-by-user-id type="integer">8218</created-by-user-id>
280
+ <delivered-on type="date" nil="true"></delivered-on>
281
+ <id type="integer">139458</id>
282
+ <name>Admin View Flagged Content</name>
283
+ <owner-user-id type="integer" nil="true"></owner-user-id>
284
+ <position type="float">15.0</position>
285
+ <rejection-reason nil="true"></rejection-reason>
286
+ <status>pending</status>
287
+ <story-collection-id type="integer">26247</story-collection-id>
288
+ <updated-at type="datetime">2011-06-09T12:02:28-07:00</updated-at>
289
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
290
+ <hours_remaining>0</hours_remaining>
291
+ <link href="http://scrumninja.com/projects/8991/stories/139458.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
292
+ <link href="http://scrumninja.com/stories/139458/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
293
+ </story>
294
+ </stories>
295
+ <date-start type="date">2011-09-29</date-start>
296
+ <number type="integer">8</number>
297
+ <date-finish type="date">2011-10-12</date-finish>
298
+ </sprint>
299
+ <sprint>
300
+ <stories type="array">
301
+ <story>
302
+ <accepted-on type="date" nil="true"></accepted-on>
303
+ <complexity>2</complexity>
304
+ <content>As an admin, I want to view the users by number of flags so I can see who is producing flagged content and ban them</content>
305
+ <created-at type="datetime">2011-06-09T12:02:28-07:00</created-at>
306
+ <created-by-user-id type="integer">8218</created-by-user-id>
307
+ <delivered-on type="date" nil="true"></delivered-on>
308
+ <id type="integer">139459</id>
309
+ <name>Admin View Flagged Users</name>
310
+ <owner-user-id type="integer" nil="true"></owner-user-id>
311
+ <position type="float">16.0</position>
312
+ <rejection-reason nil="true"></rejection-reason>
313
+ <status>pending</status>
314
+ <story-collection-id type="integer">26247</story-collection-id>
315
+ <updated-at type="datetime">2011-06-09T12:02:28-07:00</updated-at>
316
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
317
+ <hours_remaining>0</hours_remaining>
318
+ <link href="http://scrumninja.com/projects/8991/stories/139459.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
319
+ <link href="http://scrumninja.com/stories/139459/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
320
+ </story>
321
+ <story>
322
+ <accepted-on type="date" nil="true"></accepted-on>
323
+ <complexity>3</complexity>
324
+ <content>As an admin, I want to ban users with highly flagged content so I can preserve a positive user experience</content>
325
+ <created-at type="datetime">2011-06-09T12:02:28-07:00</created-at>
326
+ <created-by-user-id type="integer">8218</created-by-user-id>
327
+ <delivered-on type="date" nil="true"></delivered-on>
328
+ <id type="integer">139460</id>
329
+ <name>Admin Ban Users</name>
330
+ <owner-user-id type="integer" nil="true"></owner-user-id>
331
+ <position type="float">17.0</position>
332
+ <rejection-reason nil="true"></rejection-reason>
333
+ <status>pending</status>
334
+ <story-collection-id type="integer">26247</story-collection-id>
335
+ <updated-at type="datetime">2011-06-09T12:02:28-07:00</updated-at>
336
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
337
+ <hours_remaining>0</hours_remaining>
338
+ <link href="http://scrumninja.com/projects/8991/stories/139460.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
339
+ <link href="http://scrumninja.com/stories/139460/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
340
+ </story>
341
+ </stories>
342
+ <date-start type="date">2011-10-13</date-start>
343
+ <number type="integer">9</number>
344
+ <date-finish type="date">2011-10-26</date-finish>
345
+ </sprint>
346
+ </sprints>
@@ -0,0 +1,78 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <tasks type="array">
3
+ <task>
4
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
5
+ <blocked type="boolean">false</blocked>
6
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
7
+ <created-by-user-id type="integer">8218</created-by-user-id>
8
+ <done-at type="datetime" nil="true"></done-at>
9
+ <id type="integer">331729</id>
10
+ <name>configure database.yml</name>
11
+ <position type="float">1.0</position>
12
+ <started-at type="datetime" nil="true"></started-at>
13
+ <story-id type="integer">139444</story-id>
14
+ <task-status-id type="integer">23299</task-status-id>
15
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
16
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
17
+ <assigned-to-user-name></assigned-to-user-name>
18
+ <status>pending</status>
19
+ <estimates>
20
+ <estimate>
21
+ <date>2011-06-09</date>
22
+ <hours>0.5</hours>
23
+ </estimate>
24
+ </estimates>
25
+ <hours_remaining>0.5</hours_remaining>
26
+ <link href="http://scrumninja.com/stories/139444/tasks/331729.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
27
+ </task>
28
+ <task>
29
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
30
+ <blocked type="boolean">false</blocked>
31
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
32
+ <created-by-user-id type="integer">8218</created-by-user-id>
33
+ <done-at type="datetime" nil="true"></done-at>
34
+ <id type="integer">331730</id>
35
+ <name>create mysql database</name>
36
+ <position type="float">2.0</position>
37
+ <started-at type="datetime" nil="true"></started-at>
38
+ <story-id type="integer">139444</story-id>
39
+ <task-status-id type="integer">23299</task-status-id>
40
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
41
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
42
+ <assigned-to-user-name></assigned-to-user-name>
43
+ <status>pending</status>
44
+ <estimates>
45
+ <estimate>
46
+ <date>2011-06-09</date>
47
+ <hours>1.0</hours>
48
+ </estimate>
49
+ </estimates>
50
+ <hours_remaining>1.0</hours_remaining>
51
+ <link href="http://scrumninja.com/stories/139444/tasks/331730.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
52
+ </task>
53
+ <task>
54
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
55
+ <blocked type="boolean">false</blocked>
56
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
57
+ <created-by-user-id type="integer">8218</created-by-user-id>
58
+ <done-at type="datetime" nil="true"></done-at>
59
+ <id type="integer">331731</id>
60
+ <name>migration for user model</name>
61
+ <position type="float">3.0</position>
62
+ <started-at type="datetime" nil="true"></started-at>
63
+ <story-id type="integer">139444</story-id>
64
+ <task-status-id type="integer">23299</task-status-id>
65
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
66
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
67
+ <assigned-to-user-name></assigned-to-user-name>
68
+ <status>pending</status>
69
+ <estimates>
70
+ <estimate>
71
+ <date>2011-06-09</date>
72
+ <hours>1.0</hours>
73
+ </estimate>
74
+ </estimates>
75
+ <hours_remaining>1.0</hours_remaining>
76
+ <link href="http://scrumninja.com/stories/139444/tasks/331731.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
77
+ </task>
78
+ </tasks>
@@ -0,0 +1,17 @@
1
+ <projects type="array"><project><created-at type="datetime">2011-06-09T12:02:25-07:00</created-at><created-by-user-id type="integer">8218</created-by-user-id><future-by-average type="boolean">true</future-by-average><id type="integer">8991</id><name>Tutorial Project</name><numeric-complexities type="yaml">---
2
+ - "1"
3
+ - "2"
4
+ - "3"
5
+ - "5"
6
+ - "8"
7
+ - "13"
8
+ - "20"
9
+ - "40"
10
+ - "100"
11
+ </numeric-complexities><open-source-url nil="true"/><page-views type="integer">1</page-views><ssl type="boolean" nil="true"/><time-zone nil="true"/><total-page-views type="integer">0</total-page-views><track-only-story-points type="boolean">false</track-only-story-points><updated-at type="datetime">2011-06-09T12:02:40-07:00</updated-at><updated-by-user-id type="integer">8218</updated-by-user-id><work-days type="yaml">---
12
+ - 1
13
+ - 2
14
+ - 3
15
+ - 4
16
+ - 5
17
+ </work-days><link href="http://scrumninja.com/projects/8991.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/><link href="http://scrumninja.com/projects/8991/project_roles.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="project roles" rel="users"/><link href="http://scrumninja.com/projects/8991/stories.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="stories in current sprint" rel="stories"/><link type="text/plain" href="http://scrumninja.com/projects/8991/export?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="export" rel="self"/><link href="http://scrumninja.com/projects/8991/backlog/index.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="future stories" rel="stories"/><link href="http://scrumninja.com/projects/8991/sprints.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="sprint history" rel="sprints"/></project></projects>
@@ -0,0 +1,63 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <stories type="array">
3
+ <story>
4
+ <accepted-on type="date" nil="true"></accepted-on>
5
+ <complexity>CHORE</complexity>
6
+ <content nil="true"></content>
7
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
8
+ <created-by-user-id type="integer">8218</created-by-user-id>
9
+ <delivered-on type="date" nil="true"></delivered-on>
10
+ <id type="integer">139444</id>
11
+ <name>Infrastructure for project</name>
12
+ <owner-user-id type="integer" nil="true"></owner-user-id>
13
+ <position type="float">1.0</position>
14
+ <rejection-reason nil="true"></rejection-reason>
15
+ <status>pending</status>
16
+ <story-collection-id type="integer">26248</story-collection-id>
17
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
18
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
19
+ <hours_remaining>2.5</hours_remaining>
20
+ <link href="http://scrumninja.com/projects/8991/stories/139444.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
21
+ <link href="http://scrumninja.com/stories/139444/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
22
+ </story>
23
+ <story>
24
+ <accepted-on type="date" nil="true"></accepted-on>
25
+ <complexity>3</complexity>
26
+ <content>As a user, I want to register so that I can gain access to the system</content>
27
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
28
+ <created-by-user-id type="integer">8218</created-by-user-id>
29
+ <delivered-on type="date" nil="true"></delivered-on>
30
+ <id type="integer">139445</id>
31
+ <name>Signup</name>
32
+ <owner-user-id type="integer" nil="true"></owner-user-id>
33
+ <position type="float">3.0</position>
34
+ <rejection-reason nil="true"></rejection-reason>
35
+ <status>pending</status>
36
+ <story-collection-id type="integer">26248</story-collection-id>
37
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
38
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
39
+ <hours_remaining>12.0</hours_remaining>
40
+ <link href="http://scrumninja.com/projects/8991/stories/139445.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
41
+ <link href="http://scrumninja.com/stories/139445/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
42
+ </story>
43
+ <story>
44
+ <accepted-on type="date" nil="true"></accepted-on>
45
+ <complexity>3</complexity>
46
+ <content>As a user, I want to login so I can protect my info from the public eye </content>
47
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
48
+ <created-by-user-id type="integer">8218</created-by-user-id>
49
+ <delivered-on type="date" nil="true"></delivered-on>
50
+ <id type="integer">139446</id>
51
+ <name>Login Form</name>
52
+ <owner-user-id type="integer" nil="true"></owner-user-id>
53
+ <position type="float">4.0</position>
54
+ <rejection-reason nil="true"></rejection-reason>
55
+ <status>pending</status>
56
+ <story-collection-id type="integer">26248</story-collection-id>
57
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
58
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
59
+ <hours_remaining>5.0</hours_remaining>
60
+ <link href="http://scrumninja.com/projects/8991/stories/139446.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
61
+ <link href="http://scrumninja.com/stories/139446/tasks.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" rel="tasks"/>
62
+ </story>
63
+ </stories>
@@ -0,0 +1,78 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <tasks type="array">
3
+ <task>
4
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
5
+ <blocked type="boolean">false</blocked>
6
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
7
+ <created-by-user-id type="integer">8218</created-by-user-id>
8
+ <done-at type="datetime" nil="true"></done-at>
9
+ <id type="integer">331729</id>
10
+ <name>configure database.yml</name>
11
+ <position type="float">1.0</position>
12
+ <started-at type="datetime" nil="true"></started-at>
13
+ <story-id type="integer">139444</story-id>
14
+ <task-status-id type="integer">23299</task-status-id>
15
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
16
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
17
+ <assigned-to-user-name></assigned-to-user-name>
18
+ <status>pending</status>
19
+ <estimates>
20
+ <estimate>
21
+ <date>2011-06-09</date>
22
+ <hours>0.5</hours>
23
+ </estimate>
24
+ </estimates>
25
+ <hours_remaining>0.5</hours_remaining>
26
+ <link href="http://scrumninja.com/stories/139444/tasks/331729.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
27
+ </task>
28
+ <task>
29
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
30
+ <blocked type="boolean">false</blocked>
31
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
32
+ <created-by-user-id type="integer">8218</created-by-user-id>
33
+ <done-at type="datetime" nil="true"></done-at>
34
+ <id type="integer">331730</id>
35
+ <name>create mysql database</name>
36
+ <position type="float">2.0</position>
37
+ <started-at type="datetime" nil="true"></started-at>
38
+ <story-id type="integer">139444</story-id>
39
+ <task-status-id type="integer">23299</task-status-id>
40
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
41
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
42
+ <assigned-to-user-name></assigned-to-user-name>
43
+ <status>pending</status>
44
+ <estimates>
45
+ <estimate>
46
+ <date>2011-06-09</date>
47
+ <hours>1.0</hours>
48
+ </estimate>
49
+ </estimates>
50
+ <hours_remaining>1.0</hours_remaining>
51
+ <link href="http://scrumninja.com/stories/139444/tasks/331730.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
52
+ </task>
53
+ <task>
54
+ <assigned-to-user-id type="integer" nil="true"></assigned-to-user-id>
55
+ <blocked type="boolean">false</blocked>
56
+ <created-at type="datetime">2011-06-09T12:02:25-07:00</created-at>
57
+ <created-by-user-id type="integer">8218</created-by-user-id>
58
+ <done-at type="datetime" nil="true"></done-at>
59
+ <id type="integer">331731</id>
60
+ <name>migration for user model</name>
61
+ <position type="float">3.0</position>
62
+ <started-at type="datetime" nil="true"></started-at>
63
+ <story-id type="integer">139444</story-id>
64
+ <task-status-id type="integer">23299</task-status-id>
65
+ <updated-at type="datetime">2011-06-09T12:02:25-07:00</updated-at>
66
+ <updated-by-user-id type="integer">8218</updated-by-user-id>
67
+ <assigned-to-user-name></assigned-to-user-name>
68
+ <status>pending</status>
69
+ <estimates>
70
+ <estimate>
71
+ <date>2011-06-09</date>
72
+ <hours>1.0</hours>
73
+ </estimate>
74
+ </estimates>
75
+ <hours_remaining>1.0</hours_remaining>
76
+ <link href="http://scrumninja.com/stories/139444/tasks/331731.xml?api_key=a0d550405d37584fff59dd9e86cbe0cd88188e35" title="show" rel="self"/>
77
+ </task>
78
+ </tasks>
data/spec/helper.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'webmock'
4
+ require 'webmock/rspec'
5
+ require 'scrumninja'
6
+
7
+ RSpec.configure do |config|
8
+ config.include WebMock::API
9
+ end
10
+
11
+ def fixture_path
12
+ File.expand_path("../fixtures", __FILE__)
13
+ end
14
+
15
+ def fixture(file)
16
+ File.new(fixture_path + '/' + file)
17
+ end
@@ -0,0 +1,121 @@
1
+ require 'helper'
2
+
3
+ # Keep all the stuff that could change up here
4
+ API_KEY = "a0d550405d37584fff59dd9e86cbe0cd88188e35"
5
+ PROJECT_ID = 8991
6
+ STORY_ID = 139444
7
+
8
+ # The projects method
9
+ describe ScrumNinja, ".projects" do
10
+ before do
11
+ stub_request(:get, 'https://scrumninja.com/projects.xml').
12
+ with(:query => {:api_key => API_KEY}).
13
+ to_return(:body => fixture('projects.xml'), :headers => {'Content-Type' => 'application/xml; charset=utf-8'})
14
+ end
15
+
16
+ it "should request the correct resource" do
17
+ ScrumNinja.projects(API_KEY)
18
+ a_request(:get, 'https://scrumninja.com/projects.xml').
19
+ with(:query => {:api_key => API_KEY}).
20
+ should have_been_made
21
+ end
22
+
23
+ it "should return the correct results" do
24
+ projects = ScrumNinja.projects(API_KEY)
25
+ projects.should be_an Array
26
+ projects[0].name.should == "Tutorial Project"
27
+ puts projects[0].link
28
+ end
29
+ end
30
+
31
+ # The project_stories method
32
+ describe ScrumNinja, ".project_stories" do
33
+ before do
34
+ stub_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/stories.xml").
35
+ with(:query => {:api_key => API_KEY}).
36
+ to_return(:body => fixture('stories.xml'), :headers => {'Content-Type' => 'application/xml; charset=utf-8'})
37
+ end
38
+
39
+ it "should request the correct resource" do
40
+ ScrumNinja.project_stories(API_KEY,PROJECT_ID)
41
+ a_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/stories.xml").
42
+ with(:query => {:api_key => API_KEY}).
43
+ should have_been_made
44
+ end
45
+
46
+ it "should return the correct results" do
47
+ stories = ScrumNinja.project_stories(API_KEY,PROJECT_ID)
48
+ stories.should be_an Array
49
+ stories[0].name.should == "Infrastructure for project"
50
+ puts stories[0].link
51
+ end
52
+ end
53
+
54
+ # The project_backlog method
55
+ describe ScrumNinja, ".project_backlog" do
56
+ before do
57
+ stub_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/backlog/index.xml").
58
+ with(:query => {:api_key => API_KEY}).
59
+ to_return(:body => fixture('backlog.xml'), :headers => {'Content-Type' => 'application/xml; charset=utf-8'})
60
+ end
61
+
62
+ it "should request the correct resource" do
63
+ ScrumNinja.project_backlog(API_KEY,PROJECT_ID)
64
+ a_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/backlog/index.xml").
65
+ with(:query => {:api_key => API_KEY}).
66
+ should have_been_made
67
+ end
68
+
69
+ it "should return the correct results" do
70
+ sprints = ScrumNinja.project_backlog(API_KEY,PROJECT_ID)
71
+ sprints.should be_an Array
72
+ sprints[0].stories[0].name.should == "Reset Password"
73
+ puts sprints[0].stories[0].link
74
+ end
75
+ end
76
+
77
+ # The project_card_wall method
78
+ describe ScrumNinja, ".project_card_wall" do
79
+ before do
80
+ stub_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/card_wall.xml").
81
+ with(:query => {:api_key => API_KEY}).
82
+ to_return(:body => fixture('card_wall.xml'), :headers => {'Content-Type' => 'application/xml; charset=utf-8'})
83
+ end
84
+
85
+ it "should request the correct resource" do
86
+ ScrumNinja.project_card_wall(API_KEY,PROJECT_ID)
87
+ a_request(:get, "http://scrumninja.com/projects/#{PROJECT_ID}/card_wall.xml").
88
+ with(:query => {:api_key => API_KEY}).
89
+ should have_been_made
90
+ end
91
+
92
+ it "should return the correct results" do
93
+ tasks = ScrumNinja.project_card_wall(API_KEY,PROJECT_ID)
94
+ tasks.should be_an Array
95
+ tasks[0].name.should == "configure database.yml"
96
+ puts tasks[0].link
97
+ end
98
+ end
99
+
100
+ # The story_tasks method
101
+ describe ScrumNinja, ".story_tasks" do
102
+ before do
103
+ stub_request(:get, "http://scrumninja.com/stories/#{STORY_ID}/tasks.xml").
104
+ with(:query => {:api_key => API_KEY}).
105
+ to_return(:body => fixture('tasks.xml'), :headers => {'Content-Type' => 'application/xml; charset=utf-8'})
106
+ end
107
+
108
+ it "should request the correct resource" do
109
+ ScrumNinja.story_tasks(API_KEY,STORY_ID)
110
+ a_request(:get, "http://scrumninja.com/stories/#{STORY_ID}/tasks.xml").
111
+ with(:query => {:api_key => API_KEY}).
112
+ should have_been_made
113
+ end
114
+
115
+ it "should return the correct results" do
116
+ tasks = ScrumNinja.story_tasks(API_KEY,STORY_ID)
117
+ tasks.should be_an Array
118
+ tasks[0].name.should == "configure database.yml"
119
+ puts tasks[0].link
120
+ end
121
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scrumninja
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Javier Muniz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-06-09 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &2165695280 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.6'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2165695280
25
+ - !ruby/object:Gem::Dependency
26
+ name: webmock
27
+ requirement: &2165694780 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.5'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2165694780
36
+ - !ruby/object:Gem::Dependency
37
+ name: hashie
38
+ requirement: &2165694320 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2165694320
47
+ - !ruby/object:Gem::Dependency
48
+ name: multi_xml
49
+ requirement: &2152535440 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2152535440
58
+ - !ruby/object:Gem::Dependency
59
+ name: faraday_middleware
60
+ requirement: &2152534980 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.6.0
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2152534980
69
+ description: Wrapper for the Scrumninja backlog/sprint management tool.
70
+ email: javier@granicus.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .rspec
77
+ - Changelog
78
+ - Gemfile
79
+ - Gemfile.lock
80
+ - LICENSE
81
+ - README
82
+ - lib/scrumninja.rb
83
+ - lib/scrumninja/client.rb
84
+ - lib/scrumninja/version.rb
85
+ - scrumninja.gemspec
86
+ - spec/fixtures/backlog.xml
87
+ - spec/fixtures/card_wall.xml
88
+ - spec/fixtures/projects.xml
89
+ - spec/fixtures/stories.xml
90
+ - spec/fixtures/tasks.xml
91
+ - spec/helper.rb
92
+ - spec/scrumninja_spec.rb
93
+ homepage: http://github.com/gov20cto/scrumninja
94
+ licenses: []
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project: scrumninja
113
+ rubygems_version: 1.8.5
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: Scrumninja API Wrapper
117
+ test_files:
118
+ - spec/fixtures/backlog.xml
119
+ - spec/fixtures/card_wall.xml
120
+ - spec/fixtures/projects.xml
121
+ - spec/fixtures/stories.xml
122
+ - spec/fixtures/tasks.xml
123
+ - spec/helper.rb
124
+ - spec/scrumninja_spec.rb