taskmapper 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -2
- data/Gemfile.lock +3 -3
- data/README.md +39 -52
- data/VERSION +1 -1
- data/taskmapper.gemspec +6 -6
- metadata +56 -18
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
GEM
|
2
|
-
remote:
|
2
|
+
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
4
|
activemodel (3.2.2)
|
5
5
|
activesupport (= 3.2.2)
|
@@ -13,7 +13,7 @@ GEM
|
|
13
13
|
builder (3.0.0)
|
14
14
|
diff-lcs (1.1.3)
|
15
15
|
git (1.2.5)
|
16
|
-
hashie (
|
16
|
+
hashie (2.0.3)
|
17
17
|
i18n (0.6.0)
|
18
18
|
jeweler (1.8.3)
|
19
19
|
bundler (~> 1.0)
|
@@ -45,7 +45,7 @@ PLATFORMS
|
|
45
45
|
DEPENDENCIES
|
46
46
|
activeresource (~> 3.0)
|
47
47
|
activesupport (~> 3.0)
|
48
|
-
hashie (~>
|
48
|
+
hashie (~> 2.0)
|
49
49
|
jeweler (~> 1.8)
|
50
50
|
rcov (~> 1.0)
|
51
51
|
rspec (~> 2.0)
|
data/README.md
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
#
|
1
|
+
# Taskmapper
|
2
2
|
|
3
|
-
|
3
|
+
Taskmapper is a Gem which eases communication with various project and ticket management systems by providing a consistent Ruby API.
|
4
4
|
|
5
|
-
|
5
|
+
Taskmapper let's you "remap" a system into the consistent Taskmapper API, easily. For instance the description of an issue/ticket, might be named **description** in one system, and **problem-description** somewhere else. Via Taskmapper, this would always be called **description**. The Taskmapper remaps makes it easy for you to integrate different kinds of ticket systems, into your own system. You don't have to take care of all the different kinds of systems, and their different APIs. Taskmapper handles all this *for* you, so you can focus on making your application awesome.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
-
|
9
|
+
Taskmapper is a Gem, so we can easily install it by using RubyGems:
|
10
10
|
|
11
11
|
gem install taskmapper
|
12
12
|
|
13
|
-
|
13
|
+
Taskmapper depends on [Hashie](http://github.com/intridea/hashie), which is an amazing library which makes converting objects to hashes, and the other way around, a joy. It should be installed automatically whenever installing taskmapper.
|
14
14
|
|
15
15
|
### Finding and installing a provider
|
16
16
|
|
17
|
-
|
17
|
+
Taskmapper by itself won't do too much. You may want to install a provider, to retrieve a list of available providers issue the following command:
|
18
18
|
|
19
19
|
gem search taskmapper
|
20
20
|
|
@@ -32,30 +32,30 @@ First, we instance a new class with the right set of options. In this example, w
|
|
32
32
|
|
33
33
|
### Grabbing a project
|
34
34
|
|
35
|
-
Now that we've got out
|
35
|
+
Now that we've got out Taskmapper instance, let's go ahead and grab "testproject":
|
36
36
|
|
37
37
|
project = pivotal.project["testproject"]
|
38
|
-
#=>
|
38
|
+
#=> TaskMapper::Project<#name="testproject"..>
|
39
39
|
|
40
40
|
*Project#[]* is an alias to *Project#find*:
|
41
41
|
|
42
42
|
project = pivotal.project.find "testproject"
|
43
|
-
#=>
|
43
|
+
#=> TaskMapper::Project<#name="testproject"..>
|
44
44
|
|
45
45
|
Which translates into:
|
46
46
|
|
47
47
|
project = pivotal.project.find :name => "testproject"
|
48
|
-
#=>
|
48
|
+
#=> TaskMapper::Project<#name="testproject"..>
|
49
49
|
|
50
50
|
That means you can actually look up a project by something else than the title, like the owner:
|
51
51
|
|
52
52
|
project = pivotal.project.find :owner => "Sirupsen"
|
53
|
-
#=>
|
53
|
+
#=> TaskMapper::Project<#owner="sirupsen"..>
|
54
54
|
|
55
55
|
To retrieve all projects, simply pass no argument to find:
|
56
56
|
|
57
57
|
project = pivotal.project.find
|
58
|
-
#=> [
|
58
|
+
#=> [TaskMapper::Project<#..>,TaskMapper::Project<#..>,..]
|
59
59
|
|
60
60
|
### Creating a ticket
|
61
61
|
|
@@ -70,12 +70,12 @@ We create our ticket with three properties.
|
|
70
70
|
Alright, let's play with the projects tickets! Here we grab the ticket with the id of 22:
|
71
71
|
|
72
72
|
ticket = project.tickets(:id => 22)
|
73
|
-
#=>
|
73
|
+
#=> TaskMapper::Ticket<#id=22..>
|
74
74
|
|
75
75
|
Like with projects, we can also find tickets by other attributes, like title, priority and so on, with tickets we do not use a find method though. Also as with projects, if no argument is passed, all tickets are retrieved:
|
76
76
|
|
77
77
|
tickets = project.tickets
|
78
|
-
#=> [
|
78
|
+
#=> [TaskMapper::Ticket<#..>,TaskMapper::Ticket<#..>,..]
|
79
79
|
|
80
80
|
### Changing ticket attributes
|
81
81
|
|
@@ -109,14 +109,14 @@ However, as closing a ticket with a resolution is such a common task, the other
|
|
109
109
|
|
110
110
|
## Support
|
111
111
|
|
112
|
-
Currently
|
112
|
+
Currently Taskmapper supports the following systems:
|
113
113
|
|
114
114
|
### Pivotal Tracker
|
115
115
|
|
116
|
-
To use Pivotal Tracker with
|
116
|
+
To use Pivotal Tracker with Taskmapper, install it:
|
117
117
|
gem install taskmapper-pivotal
|
118
118
|
|
119
|
-
Then simply require it, and you are good to use Pivotal Tracker with
|
119
|
+
Then simply require it, and you are good to use Pivotal Tracker with Taskmapper!
|
120
120
|
|
121
121
|
require 'taskmapper'
|
122
122
|
require 'taskmapper-pivotal'
|
@@ -126,10 +126,10 @@ The source code is located at [taskmapper-pivotal](http://github.com/hybridgroup
|
|
126
126
|
|
127
127
|
### Lighthouse
|
128
128
|
|
129
|
-
To use Lighthouse with
|
129
|
+
To use Lighthouse with Taskmapper, install it:
|
130
130
|
gem install taskmapper-lighthouse
|
131
131
|
|
132
|
-
Then simply require it, and you are all set to use Lighthouse with
|
132
|
+
Then simply require it, and you are all set to use Lighthouse with Taskmapper!
|
133
133
|
|
134
134
|
require 'taskmapper'
|
135
135
|
require 'taskmapper-lighthouse'
|
@@ -139,10 +139,10 @@ The source code is located at [taskmapper-lighthouse](http://github.com/hybridgr
|
|
139
139
|
|
140
140
|
### Basecamp
|
141
141
|
|
142
|
-
To use Basecamp with
|
142
|
+
To use Basecamp with Taskmapper, install it:
|
143
143
|
gem install taskmapper-basecamp
|
144
144
|
|
145
|
-
Once you require it, then you are ready to use Basecamp with
|
145
|
+
Once you require it, then you are ready to use Basecamp with Taskmapper
|
146
146
|
|
147
147
|
require 'taskmapper'
|
148
148
|
require 'taskmapper-basecamp'
|
@@ -152,10 +152,10 @@ The source code is located at [taskmapper-basecamp](http://github.com/hybridgrou
|
|
152
152
|
|
153
153
|
### Github
|
154
154
|
|
155
|
-
To use Github
|
155
|
+
To use Github Issue tracking with Taskmapper, install it:
|
156
156
|
gem install taskmapper-github
|
157
157
|
|
158
|
-
Once you require it, then you are ready to use Github and
|
158
|
+
Once you require it, then you are ready to use Github and Taskmapper
|
159
159
|
|
160
160
|
require 'taskmapper'
|
161
161
|
require 'taskmapper-github'
|
@@ -165,10 +165,10 @@ The source code is located at [taskmapper-github](http://github.com/hybridgroup/
|
|
165
165
|
|
166
166
|
### Unfuddle
|
167
167
|
|
168
|
-
To use Unfuddle with
|
168
|
+
To use Unfuddle with Taskmapper, install it:
|
169
169
|
gem install taskmapper-unfuddle
|
170
170
|
|
171
|
-
Then simply require it, and you are good to use Unfuddle with
|
171
|
+
Then simply require it, and you are good to use Unfuddle with Taskmapper!
|
172
172
|
|
173
173
|
require 'taskmapper'
|
174
174
|
require 'taskmapper-unfuddle'
|
@@ -176,12 +176,12 @@ Then simply require it, and you are good to use Unfuddle with taskmapper!
|
|
176
176
|
|
177
177
|
The source code is located at [taskmapper-unfuddle](http://github.com/hybridgroup/taskmapper-unfuddle)
|
178
178
|
|
179
|
-
###
|
179
|
+
### Kanbanpad
|
180
180
|
|
181
|
-
To use
|
181
|
+
To use Kanbanpad with taskmapper, install it:
|
182
182
|
gem install taskmapper-kanbanpad
|
183
183
|
|
184
|
-
Once you require it, you can connect to
|
184
|
+
Once you require it, you can connect to Kanbanpad using Taskmapper!
|
185
185
|
|
186
186
|
require 'taskmapper'
|
187
187
|
require 'taskmapper-kanbanpad'
|
@@ -191,10 +191,10 @@ The source code is located at [taskmapper-kanbanpad](https://github.com/hybridgr
|
|
191
191
|
|
192
192
|
### Redmine
|
193
193
|
|
194
|
-
To use Redmine with
|
194
|
+
To use Redmine with Taskmapper, install it:
|
195
195
|
gem install taskmapper-redmine
|
196
196
|
|
197
|
-
Just require it, and you are ready to use Redmine with
|
197
|
+
Just require it, and you are ready to use Redmine with Taskmapper!
|
198
198
|
|
199
199
|
require 'taskmapper'
|
200
200
|
require 'taskmapper-redmine'
|
@@ -204,10 +204,10 @@ The source code is located at [taskmapper-redmine](http://github.com/hybridgroup
|
|
204
204
|
|
205
205
|
### Trac
|
206
206
|
|
207
|
-
To use Trac with
|
207
|
+
To use Trac with Taskmapper, install it:
|
208
208
|
gem install taskmapper-trac
|
209
209
|
|
210
|
-
Require it, and you are happening to call Trac with
|
210
|
+
Require it, and you are happening to call Trac with Taskmapper!
|
211
211
|
|
212
212
|
require 'taskmapper'
|
213
213
|
require 'taskmapper-trac'
|
@@ -215,25 +215,12 @@ Require it, and you are happening to call Trac with taskmapper!
|
|
215
215
|
|
216
216
|
The source code is located at [taskmapper-trac](http://github.com/hybridgroup/taskmapper-trac)
|
217
217
|
|
218
|
-
### Codaset
|
219
|
-
|
220
|
-
To use Codaset with taskmapper, install it:
|
221
|
-
gem install taskmapper-codaset
|
222
|
-
|
223
|
-
Require and you have connected to Codaset with taskmapper!
|
224
|
-
|
225
|
-
require 'taskmapper'
|
226
|
-
require 'taskmapper-codaset'
|
227
|
-
codaset = taskmapper.new(:codaset, {:username => "foo", :password => "bar", :client_id => "your_client_id", :client_secret => "your_client_secret"})
|
228
|
-
|
229
|
-
The source code is located at [taskmapper-codaset](http://github.com/hybridgroup/taskmapper-codaset)
|
230
|
-
|
231
218
|
### Bugzilla
|
232
219
|
|
233
|
-
To use Bugzilla with
|
220
|
+
To use Bugzilla with Taskmapper, install it:
|
234
221
|
gem install taskmapper-bugzilla
|
235
222
|
|
236
|
-
Require and you can talk to Bugzilla with
|
223
|
+
Require and you can talk to Bugzilla with Taskmapper!
|
237
224
|
|
238
225
|
require 'taskmapper'
|
239
226
|
require 'taskmapper-bugzilla'
|
@@ -249,18 +236,18 @@ Creating a provider consists of three steps:
|
|
249
236
|
* Implement whatever is needed to connect to your desired backend
|
250
237
|
* Release it to RubyGems
|
251
238
|
|
252
|
-
### Create the
|
239
|
+
### Create the Taskmapper provider
|
253
240
|
Thanks to a simple generator, it is easy to get started with a new provider. Run this from the command line:
|
254
241
|
tm generate myprovider
|
255
242
|
|
256
243
|
This will generate a new skeleton provider called taskmapper-myprovider in the current directory. Create a repo from that directory, and you can start implementing your provider.
|
257
244
|
|
258
|
-
Almost all APIs are different. And so are their Ruby providers.
|
245
|
+
Almost all APIs are different. And so are their Ruby providers. Taskmapper attempts to create an universal API for ticket and project management systems, and thus, we need to map the functionality to the Taskmapper API. This is the providers job. The provider is the glue between Taskmapper, and the task management system's API.
|
259
246
|
Usually, your provider would rely on another library for the raw HTTP interaction. For instance, [taskmapper-lighthouse](http://github.com/hybridgroup/taskmapper-lighthouse) relies on ActiveResource in order to interact with the Lighthouse API. Look at it like this:
|
260
247
|
|
261
|
-
**
|
248
|
+
**Taskmapper** -> **Provider** -> *(Ruby library)* -> **Site's API**
|
262
249
|
|
263
|
-
Provider being the *glue* between the site's API and
|
250
|
+
Provider being the *glue* between the site's API and Taskmapper. The Ruby library is "optional" (though highly recommended as mentioned), therefore it is in parantheses.
|
264
251
|
|
265
252
|
An example of a provider could be [taskmapper-lighthouse](http://github.com/hybridgroup/taskmapper-lighthouse), an example of a Ruby library could be ActiveResource.
|
266
253
|
|
@@ -293,4 +280,4 @@ They should be presented with a nice list of all available providers.
|
|
293
280
|
|
294
281
|
## Copyright
|
295
282
|
|
296
|
-
Copyright (c) 2010 [The Hybrid Group](http://hybridgroup.com). See LICENSE for details.
|
283
|
+
Copyright (c) 2010-2012 [The Hybrid Group](http://hybridgroup.com). See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.1
|
data/taskmapper.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "taskmapper"
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["kiafaldorius", "Sirupsen", "deadprogrammer"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-04-01"
|
13
13
|
s.description = "TaskMapper provides a universal API to ticket tracking and project management systems."
|
14
14
|
s.email = "info@hybridgroup.com"
|
15
15
|
s.executables = ["tm"]
|
@@ -82,7 +82,7 @@ Gem::Specification.new do |s|
|
|
82
82
|
]
|
83
83
|
s.homepage = "http://ticketrb.com"
|
84
84
|
s.require_paths = ["lib"]
|
85
|
-
s.rubygems_version = "1.8.
|
85
|
+
s.rubygems_version = "1.8.25"
|
86
86
|
s.summary = "TaskMapper provides a universal API to ticket tracking and project management systems."
|
87
87
|
|
88
88
|
if s.respond_to? :specification_version then
|
@@ -91,7 +91,7 @@ Gem::Specification.new do |s|
|
|
91
91
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
92
92
|
s.add_runtime_dependency(%q<activeresource>, ["~> 3.0"])
|
93
93
|
s.add_runtime_dependency(%q<activesupport>, ["~> 3.0"])
|
94
|
-
s.add_runtime_dependency(%q<hashie>, ["~>
|
94
|
+
s.add_runtime_dependency(%q<hashie>, ["~> 2.0"])
|
95
95
|
s.add_development_dependency(%q<rspec>, ["~> 2.0"])
|
96
96
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8"])
|
97
97
|
s.add_development_dependency(%q<simplecov>, ["~> 0.5"])
|
@@ -99,7 +99,7 @@ Gem::Specification.new do |s|
|
|
99
99
|
else
|
100
100
|
s.add_dependency(%q<activeresource>, ["~> 3.0"])
|
101
101
|
s.add_dependency(%q<activesupport>, ["~> 3.0"])
|
102
|
-
s.add_dependency(%q<hashie>, ["~>
|
102
|
+
s.add_dependency(%q<hashie>, ["~> 2.0"])
|
103
103
|
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
104
104
|
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
105
105
|
s.add_dependency(%q<simplecov>, ["~> 0.5"])
|
@@ -108,7 +108,7 @@ Gem::Specification.new do |s|
|
|
108
108
|
else
|
109
109
|
s.add_dependency(%q<activeresource>, ["~> 3.0"])
|
110
110
|
s.add_dependency(%q<activesupport>, ["~> 3.0"])
|
111
|
-
s.add_dependency(%q<hashie>, ["~>
|
111
|
+
s.add_dependency(%q<hashie>, ["~> 2.0"])
|
112
112
|
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
113
113
|
s.add_dependency(%q<jeweler>, ["~> 1.8"])
|
114
114
|
s.add_dependency(%q<simplecov>, ["~> 0.5"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskmapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2013-04-01 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activeresource
|
18
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,15 @@ dependencies:
|
|
23
23
|
version: '3.0'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '3.0'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: activesupport
|
29
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
30
35
|
none: false
|
31
36
|
requirements:
|
32
37
|
- - ~>
|
@@ -34,21 +39,31 @@ dependencies:
|
|
34
39
|
version: '3.0'
|
35
40
|
type: :runtime
|
36
41
|
prerelease: false
|
37
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
38
48
|
- !ruby/object:Gem::Dependency
|
39
49
|
name: hashie
|
40
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
41
51
|
none: false
|
42
52
|
requirements:
|
43
53
|
- - ~>
|
44
54
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
55
|
+
version: '2.0'
|
46
56
|
type: :runtime
|
47
57
|
prerelease: false
|
48
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ~>
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '2.0'
|
49
64
|
- !ruby/object:Gem::Dependency
|
50
65
|
name: rspec
|
51
|
-
requirement:
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
52
67
|
none: false
|
53
68
|
requirements:
|
54
69
|
- - ~>
|
@@ -56,10 +71,15 @@ dependencies:
|
|
56
71
|
version: '2.0'
|
57
72
|
type: :development
|
58
73
|
prerelease: false
|
59
|
-
version_requirements:
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '2.0'
|
60
80
|
- !ruby/object:Gem::Dependency
|
61
81
|
name: jeweler
|
62
|
-
requirement:
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
63
83
|
none: false
|
64
84
|
requirements:
|
65
85
|
- - ~>
|
@@ -67,10 +87,15 @@ dependencies:
|
|
67
87
|
version: '1.8'
|
68
88
|
type: :development
|
69
89
|
prerelease: false
|
70
|
-
version_requirements:
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ~>
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '1.8'
|
71
96
|
- !ruby/object:Gem::Dependency
|
72
97
|
name: simplecov
|
73
|
-
requirement:
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
74
99
|
none: false
|
75
100
|
requirements:
|
76
101
|
- - ~>
|
@@ -78,10 +103,15 @@ dependencies:
|
|
78
103
|
version: '0.5'
|
79
104
|
type: :development
|
80
105
|
prerelease: false
|
81
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.5'
|
82
112
|
- !ruby/object:Gem::Dependency
|
83
113
|
name: rcov
|
84
|
-
requirement:
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
85
115
|
none: false
|
86
116
|
requirements:
|
87
117
|
- - ~>
|
@@ -89,7 +119,12 @@ dependencies:
|
|
89
119
|
version: '1.0'
|
90
120
|
type: :development
|
91
121
|
prerelease: false
|
92
|
-
version_requirements:
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ~>
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '1.0'
|
93
128
|
description: TaskMapper provides a universal API to ticket tracking and project management
|
94
129
|
systems.
|
95
130
|
email: info@hybridgroup.com
|
@@ -173,6 +208,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
208
|
- - ! '>='
|
174
209
|
- !ruby/object:Gem::Version
|
175
210
|
version: '0'
|
211
|
+
segments:
|
212
|
+
- 0
|
213
|
+
hash: 2657740509767190220
|
176
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
215
|
none: false
|
178
216
|
requirements:
|
@@ -181,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
219
|
version: '0'
|
182
220
|
requirements: []
|
183
221
|
rubyforge_project:
|
184
|
-
rubygems_version: 1.8.
|
222
|
+
rubygems_version: 1.8.25
|
185
223
|
signing_key:
|
186
224
|
specification_version: 3
|
187
225
|
summary: TaskMapper provides a universal API to ticket tracking and project management
|