taskmapper-basecamp 0.5.0
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.
- data/.document +5 -0
- data/.travis.yml +4 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +52 -0
- data/LICENSE +20 -0
- data/README.md +63 -0
- data/Rakefile +41 -0
- data/VERSION +1 -0
- data/lib/basecamp/basecamp.rb +655 -0
- data/lib/provider/basecamp.rb +39 -0
- data/lib/provider/comment.rb +63 -0
- data/lib/provider/project.rb +94 -0
- data/lib/provider/ticket.rb +162 -0
- data/lib/taskmapper-basecamp.rb +5 -0
- data/spec/comments_spec.rb +103 -0
- data/spec/fixtures/comments/74197051.json +1 -0
- data/spec/fixtures/comments/74197051.xml +14 -0
- data/spec/fixtures/comments/74197096.json +1 -0
- data/spec/fixtures/comments/74197096.xml +14 -0
- data/spec/fixtures/comments.json +1 -0
- data/spec/fixtures/comments.xml +47 -0
- data/spec/fixtures/project_count.json +1 -0
- data/spec/fixtures/project_count.xml +5 -0
- data/spec/fixtures/projects/5220065.json +1 -0
- data/spec/fixtures/projects/5220065.xml +16 -0
- data/spec/fixtures/projects/create.json +1 -0
- data/spec/fixtures/projects/create.xml +2 -0
- data/spec/fixtures/projects.json +1 -0
- data/spec/fixtures/projects.xml +19 -0
- data/spec/fixtures/todo_items/62509330_todo_item.xml +15 -0
- data/spec/fixtures/todo_list_9972756.xml +14 -0
- data/spec/fixtures/todo_list_with_items.json +1 -0
- data/spec/fixtures/todo_list_with_items.xml +3477 -0
- data/spec/fixtures/todo_lists/9972756_items.json +1 -0
- data/spec/fixtures/todo_lists/9972756_items.xml +93 -0
- data/spec/fixtures/todo_lists/9973518_items.json +1 -0
- data/spec/fixtures/todo_lists/9973518_items.xml +98 -0
- data/spec/fixtures/todo_lists/create.json +1 -0
- data/spec/fixtures/todo_lists/create.xml +14 -0
- data/spec/fixtures/todo_lists.json +1 -0
- data/spec/fixtures/todo_lists.xml +29 -0
- data/spec/projects_spec.rb +83 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/taskmapper-basecamp_spec.rb +20 -0
- data/spec/tickets_spec.rb +87 -0
- data/taskmapper-basecamp.gemspec +100 -0
- metadata +201 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"todo_items":[{"comments_count":0,"completed":false,"content":"oeoeuoeuoeuou","created_at":"2010-07-20 23:36:49 UTC","creator_id":5654019,"due_at":null,"id":62504112,"position":1,"todo_list_id":9972756,"created_on":"2010-07-20 23:36:49 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"uoeuoeuoeu","created_at":"2010-07-20 23:36:55 UTC","creator_id":5654019,"due_at":null,"id":62504115,"position":2,"responsible_party_id":1971191,"responsible_party_type":"Company","todo_list_id":9972756,"responsible_party_name":"Kia Kroas","created_on":"2010-07-20 23:36:55 UTC","creator_name":"Kia Kroas"},{"comments_count":3,"completed":false,"content":"eouoeuoeuoe","created_at":"2010-07-20 23:37:02 UTC","creator_id":5654019,"due_at":"2010-07-22 07:00:00 UTC","id":62504122,"position":3,"responsible_party_id":1971191,"responsible_party_type":"Company","todo_list_id":9972756,"responsible_party_name":"Kia Kroas","created_on":"2010-07-20 23:37:02 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"TEHUNTHeuntah tnstn uhant uhaenothusaeuhts","created_at":"2010-07-21 00:10:42 UTC","creator_id":5654019,"due_at":null,"id":62505807,"position":4,"todo_list_id":9972756,"created_on":"2010-07-21 00:10:42 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"ent","created_at":"2010-07-21 00:10:42 UTC","creator_id":5654019,"due_at":null,"id":62505809,"position":5,"todo_list_id":9972756,"created_on":"2010-07-21 00:10:42 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"uoeuoeuoeu","created_at":"2010-07-20 23:36:51 UTC","creator_id":5654019,"due_at":null,"id":62504114,"position":6,"todo_list_id":9972756,"created_on":"2010-07-20 23:36:51 UTC","creator_name":"Kia Kroas"}]}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<todo-items type="array">
|
3
|
+
<todo-item>
|
4
|
+
<comments-count type="integer">0</comments-count>
|
5
|
+
<completed type="boolean">false</completed>
|
6
|
+
<content>oeoeuoeuoeuou</content>
|
7
|
+
<created-at type="datetime">2010-07-20T23:36:49Z</created-at>
|
8
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
9
|
+
<creator-id type="integer">5654019</creator-id>
|
10
|
+
<due-at type="datetime" nil="true"></due-at>
|
11
|
+
<id type="integer">62504112</id>
|
12
|
+
<position type="integer">1</position>
|
13
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
14
|
+
<created-on type="datetime" deprecated="true">2010-07-20T23:36:49Z</created-on>
|
15
|
+
<creator-name>Kia Kroas</creator-name>
|
16
|
+
</todo-item>
|
17
|
+
<todo-item>
|
18
|
+
<comments-count type="integer">0</comments-count>
|
19
|
+
<completed type="boolean">false</completed>
|
20
|
+
<content>uoeuoeuoeu</content>
|
21
|
+
<created-at type="datetime">2010-07-20T23:36:55Z</created-at>
|
22
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
23
|
+
<creator-id type="integer">5654019</creator-id>
|
24
|
+
<due-at type="datetime" nil="true"></due-at>
|
25
|
+
<id type="integer">62504115</id>
|
26
|
+
<position type="integer">2</position>
|
27
|
+
<responsible-party-id type="integer">1971191</responsible-party-id>
|
28
|
+
<responsible-party-type>Company</responsible-party-type>
|
29
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
30
|
+
<responsible-party-name>Kia Kroas</responsible-party-name>
|
31
|
+
<created-on type="datetime" deprecated="true">2010-07-20T23:36:55Z</created-on>
|
32
|
+
<creator-name>Kia Kroas</creator-name>
|
33
|
+
</todo-item>
|
34
|
+
<todo-item>
|
35
|
+
<comments-count type="integer">3</comments-count>
|
36
|
+
<completed type="boolean">false</completed>
|
37
|
+
<content>eouoeuoeuoe</content>
|
38
|
+
<created-at type="datetime">2010-07-20T23:37:02Z</created-at>
|
39
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
40
|
+
<creator-id type="integer">5654019</creator-id>
|
41
|
+
<due-at type="datetime">2010-07-22T07:00:00Z</due-at>
|
42
|
+
<id type="integer">62504122</id>
|
43
|
+
<position type="integer">3</position>
|
44
|
+
<responsible-party-id type="integer">1971191</responsible-party-id>
|
45
|
+
<responsible-party-type>Company</responsible-party-type>
|
46
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
47
|
+
<responsible-party-name>Kia Kroas</responsible-party-name>
|
48
|
+
<created-on type="datetime" deprecated="true">2010-07-20T23:37:02Z</created-on>
|
49
|
+
<creator-name>Kia Kroas</creator-name>
|
50
|
+
</todo-item>
|
51
|
+
<todo-item>
|
52
|
+
<comments-count type="integer">0</comments-count>
|
53
|
+
<completed type="boolean">false</completed>
|
54
|
+
<content>TEHUNTHeuntah tnstn uhant uhaenothusaeuhts</content>
|
55
|
+
<created-at type="datetime">2010-07-21T00:10:42Z</created-at>
|
56
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
57
|
+
<creator-id type="integer">5654019</creator-id>
|
58
|
+
<due-at type="datetime" nil="true"></due-at>
|
59
|
+
<id type="integer">62505807</id>
|
60
|
+
<position type="integer">4</position>
|
61
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
62
|
+
<created-on type="datetime" deprecated="true">2010-07-21T00:10:42Z</created-on>
|
63
|
+
<creator-name>Kia Kroas</creator-name>
|
64
|
+
</todo-item>
|
65
|
+
<todo-item>
|
66
|
+
<comments-count type="integer">0</comments-count>
|
67
|
+
<completed type="boolean">false</completed>
|
68
|
+
<content>ent</content>
|
69
|
+
<created-at type="datetime">2010-07-21T00:10:42Z</created-at>
|
70
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
71
|
+
<creator-id type="integer">5654019</creator-id>
|
72
|
+
<due-at type="datetime" nil="true"></due-at>
|
73
|
+
<id type="integer">62505809</id>
|
74
|
+
<position type="integer">5</position>
|
75
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
76
|
+
<created-on type="datetime" deprecated="true">2010-07-21T00:10:42Z</created-on>
|
77
|
+
<creator-name>Kia Kroas</creator-name>
|
78
|
+
</todo-item>
|
79
|
+
<todo-item>
|
80
|
+
<comments-count type="integer">0</comments-count>
|
81
|
+
<completed type="boolean">false</completed>
|
82
|
+
<content>uoeuoeuoeu</content>
|
83
|
+
<created-at type="datetime">2010-07-20T23:36:51Z</created-at>
|
84
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
85
|
+
<creator-id type="integer">5654019</creator-id>
|
86
|
+
<due-at type="datetime" nil="true"></due-at>
|
87
|
+
<id type="integer">62504114</id>
|
88
|
+
<position type="integer">6</position>
|
89
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
90
|
+
<created-on type="datetime" deprecated="true">2010-07-20T23:36:51Z</created-on>
|
91
|
+
<creator-name>Kia Kroas</creator-name>
|
92
|
+
</todo-item>
|
93
|
+
</todo-items>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"todo_items":[{"comments_count":0,"completed":false,"content":"hudnthdau","created_at":"2010-07-21 01:14:34 UTC","creator_id":5654019,"due_at":null,"id":62509330,"position":1,"todo_list_id":9973518,"created_on":"2010-07-21 01:14:34 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"euaoua","created_at":"2010-07-21 01:14:37 UTC","creator_id":5654019,"due_at":null,"id":62509332,"position":2,"responsible_party_id":5654019,"responsible_party_type":"Person","todo_list_id":9973518,"responsible_party_name":"Kia Kroas","created_on":"2010-07-21 01:14:37 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"theunoaheu","created_at":"2010-07-21 22:24:39 UTC","creator_id":5654019,"due_at":null,"id":62606582,"position":3,"todo_list_id":9973518,"created_on":"2010-07-21 22:24:39 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ","created_at":"2010-07-21 22:47:07 UTC","creator_id":5654019,"due_at":null,"id":62608438,"position":4,"todo_list_id":9973518,"created_on":"2010-07-21 22:47:07 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ","created_at":"2010-07-21 22:47:07 UTC","creator_id":5654019,"due_at":null,"id":62608439,"position":4,"todo_list_id":9973518,"created_on":"2010-07-21 22:47:07 UTC","creator_name":"Kia Kroas"},{"comments_count":0,"completed":false,"content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In magna felis, lobortis at semper nec, fringilla vitae ipsum. Proin viverra turpis sem, in egestas odio. Maecenas convallis blandit lobortis. Suspendisse nisi lacus, imperdiet a tristique at, iaculis at enim. Pellentesque dui quam, vulputate et hendrerit ac, eleifend et neque. Maecenas interdum mattis ipsum ac posuere. Maecenas pretium semper diam nec ornare. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque non nunc dui. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec eget tellus nec mauris sodales dapibus nec at elit. Ut lorem tortor, porta vel ullamcorper eu, commodo vel enim. Ut ac gravida lectus.\n\nDuis non erat at nunc fringilla ullamcorper vitae vitae diam. Ut nec sem sit amet lacus congue malesuada. Aenean posuere congue tellus ac lobortis. Nullam ut nulla felis. Nam at sem ipsum, sit amet pretium risus. Phasellus sed nulla id lectus aliquet mattis. Morbi sit amet felis et turpis varius pulvinar ut ac diam. Morbi vel est ante. Suspendisse quis turpis est. In magna est, pharetra vitae aliquet vulputate, mattis et arcu. Nullam eu urna tellus, a venenatis eros. Sed quis egestas arcu. Praesent id massa tortor, id cursus sapien. Quisque placerat adipiscing mollis. Morbi enim lectus, pulvinar et pretium sit amet, tincidunt vitae dolor. Phasellus at quam sem, sed rutrum leo.\n\nDuis ac lorem a augue condimentum lobortis. Vestibulum dui dui, tincidunt quis interdum non, pellentesque eget purus. Donec eget ipsum ut erat eleifend malesuada. Pellentesque fringilla diam sed magna mattis sollicitudin. Aliquam erat volutpat. Nulla vitae leo a tellus vehicula vestibulum. Quisque id elit sed sem ullamcorper gravida at eu urna. Sed molestie ipsum in metus auctor imperdiet. Cras pellentesque, tortor condimentum sodales aliquet, massa lorem bibendum est, eget varius odio purus nec lorem. Donec eu enim metus, vel semper velit. Curabitur quis elit justo. Proin eu magna sit amet nibh sollicitudin euismod quis quis ante. Donec pellentesque pharetra tincidunt. Mauris blandit egestas metus in tincidunt. Nam sit amet risus lorem. Duis justo lacus, dapibus eu aliquam dignissim, molestie sed nulla. Nam ut tristique diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam augue felis, condimentum vitae cursus eget, euismod eu nisl. In molestie felis tortor, ut lobortis nisl.\n\nSuspendisse sed orci id ligula ultricies posuere. Aliquam cursus venenatis libero id vehicula. Donec tincidunt risus sit amet tortor scelerisque fermentum. Vivamus eu nulla mi, eu ornare nisi. Aliquam id diam congue risus bibendum interdum quis in lorem. Nam id ante ut nisl fermentum hendrerit ac sit amet felis. Curabitur tincidunt, elit volutpat aliquet cursus, est sem commodo sapien, sed aliquam enim metus vel metus. Morbi hendrerit, enim vitae lacinia molestie, ligula dolor ultricies enim, eu luctus leo lorem ac enim. Etiam congue, lorem sit amet fringilla euismod, sem diam dapibus nulla, ut fermentum massa lacus eget sem. Sed tempus condimentum pretium. Sed ut quam turpis. Donec ut lacus at felis luctus lobortis sit amet ut velit. Integer pretium nulla sit amet lorem dignissim ut elementum magna auctor. Ut consequat ornare auctor. Pellentesque eu orci eget erat dictum vulputate non a massa. Cras a nulla tellus. Praesent sagittis libero et mauris porta eget suscipit diam scelerisque. Morbi libero velit, mollis in adipiscing sed, lobortis at sem. Vivamus eget nibh ac neque consectetur fermentum vel eu turpis.\n\nCras eget volutpat risus. Praesent nisl lacus, cursus ac ultrices in, interdum eu orci. Aenean tincidunt adipiscing libero, in tincidunt nulla consectetur vitae. Duis non orci in lacus lacinia aliquet. Fusce sed libero vitae turpis placerat fermentum et a mauris. Etiam sit amet mi erat. Pellentesque volutpat, felis quis hendrerit ornare, dui nibh porttitor augue, vel pulvinar nisl enim sit amet eros. Donec eget leo quis felis lobortis interdum. Fusce eu mi ac urna pellentesque bibendum. Nulla pharetra congue ante, vel porttitor ligula rhoncus vel. Cras lacinia euismod porta. Praesent tempor sem vitae ipsum tristique eleifend. Nullam scelerisque nisi ut mauris sollicitudin auctor. Nunc tellus velit, congue vitae commodo nec, vestibulum sed mi. Proin convallis viverra quam, eu placerat est commodo quis. Duis in mauris nibh. Nulla est risus, rutrum tempor consequat id, consectetur sed tortor. Maecenas consequat elit tortor, eu tempus turpis. Sed sit amet consectetur est. ","created_at":"2010-07-21 22:47:22 UTC","creator_id":5654019,"due_at":null,"id":62608455,"position":6,"todo_list_id":9973518,"created_on":"2010-07-21 22:47:22 UTC","creator_name":"Kia Kroas"}]}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<todo-items type="array">
|
3
|
+
<todo-item>
|
4
|
+
<comments-count type="integer">0</comments-count>
|
5
|
+
<completed type="boolean">false</completed>
|
6
|
+
<content>hudnthdau</content>
|
7
|
+
<created-at type="datetime">2010-07-21T01:14:34Z</created-at>
|
8
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
9
|
+
<creator-id type="integer">5654019</creator-id>
|
10
|
+
<due-at type="datetime" nil="true"></due-at>
|
11
|
+
<id type="integer">62509330</id>
|
12
|
+
<position type="integer">1</position>
|
13
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
14
|
+
<created-on type="datetime" deprecated="true">2010-07-21T01:14:34Z</created-on>
|
15
|
+
<creator-name>Kia Kroas</creator-name>
|
16
|
+
</todo-item>
|
17
|
+
<todo-item>
|
18
|
+
<comments-count type="integer">0</comments-count>
|
19
|
+
<completed type="boolean">false</completed>
|
20
|
+
<content>euaoua</content>
|
21
|
+
<created-at type="datetime">2010-07-21T01:14:37Z</created-at>
|
22
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
23
|
+
<creator-id type="integer">5654019</creator-id>
|
24
|
+
<due-at type="datetime" nil="true"></due-at>
|
25
|
+
<id type="integer">62509332</id>
|
26
|
+
<position type="integer">2</position>
|
27
|
+
<responsible-party-id type="integer">5654019</responsible-party-id>
|
28
|
+
<responsible-party-type>Person</responsible-party-type>
|
29
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
30
|
+
<responsible-party-name>Kia Kroas</responsible-party-name>
|
31
|
+
<created-on type="datetime" deprecated="true">2010-07-21T01:14:37Z</created-on>
|
32
|
+
<creator-name>Kia Kroas</creator-name>
|
33
|
+
</todo-item>
|
34
|
+
<todo-item>
|
35
|
+
<comments-count type="integer">0</comments-count>
|
36
|
+
<completed type="boolean">false</completed>
|
37
|
+
<content>theunoaheu</content>
|
38
|
+
<created-at type="datetime">2010-07-21T22:24:39Z</created-at>
|
39
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
40
|
+
<creator-id type="integer">5654019</creator-id>
|
41
|
+
<due-at type="datetime" nil="true"></due-at>
|
42
|
+
<id type="integer">62606582</id>
|
43
|
+
<position type="integer">3</position>
|
44
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
45
|
+
<created-on type="datetime" deprecated="true">2010-07-21T22:24:39Z</created-on>
|
46
|
+
<creator-name>Kia Kroas</creator-name>
|
47
|
+
</todo-item>
|
48
|
+
<todo-item>
|
49
|
+
<comments-count type="integer">0</comments-count>
|
50
|
+
<completed type="boolean">false</completed>
|
51
|
+
<content>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd </content>
|
52
|
+
<created-at type="datetime">2010-07-21T22:47:07Z</created-at>
|
53
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
54
|
+
<creator-id type="integer">5654019</creator-id>
|
55
|
+
<due-at type="datetime" nil="true"></due-at>
|
56
|
+
<id type="integer">62608438</id>
|
57
|
+
<position type="integer">4</position>
|
58
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
59
|
+
<created-on type="datetime" deprecated="true">2010-07-21T22:47:07Z</created-on>
|
60
|
+
<creator-name>Kia Kroas</creator-name>
|
61
|
+
</todo-item>
|
62
|
+
<todo-item>
|
63
|
+
<comments-count type="integer">0</comments-count>
|
64
|
+
<completed type="boolean">false</completed>
|
65
|
+
<content>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd </content>
|
66
|
+
<created-at type="datetime">2010-07-21T22:47:07Z</created-at>
|
67
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
68
|
+
<creator-id type="integer">5654019</creator-id>
|
69
|
+
<due-at type="datetime" nil="true"></due-at>
|
70
|
+
<id type="integer">62608439</id>
|
71
|
+
<position type="integer">4</position>
|
72
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
73
|
+
<created-on type="datetime" deprecated="true">2010-07-21T22:47:07Z</created-on>
|
74
|
+
<creator-name>Kia Kroas</creator-name>
|
75
|
+
</todo-item>
|
76
|
+
<todo-item>
|
77
|
+
<comments-count type="integer">0</comments-count>
|
78
|
+
<completed type="boolean">false</completed>
|
79
|
+
<content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In magna felis, lobortis at semper nec, fringilla vitae ipsum. Proin viverra turpis sem, in egestas odio. Maecenas convallis blandit lobortis. Suspendisse nisi lacus, imperdiet a tristique at, iaculis at enim. Pellentesque dui quam, vulputate et hendrerit ac, eleifend et neque. Maecenas interdum mattis ipsum ac posuere. Maecenas pretium semper diam nec ornare. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque non nunc dui. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec eget tellus nec mauris sodales dapibus nec at elit. Ut lorem tortor, porta vel ullamcorper eu, commodo vel enim. Ut ac gravida lectus.
|
80
|
+
|
81
|
+
Duis non erat at nunc fringilla ullamcorper vitae vitae diam. Ut nec sem sit amet lacus congue malesuada. Aenean posuere congue tellus ac lobortis. Nullam ut nulla felis. Nam at sem ipsum, sit amet pretium risus. Phasellus sed nulla id lectus aliquet mattis. Morbi sit amet felis et turpis varius pulvinar ut ac diam. Morbi vel est ante. Suspendisse quis turpis est. In magna est, pharetra vitae aliquet vulputate, mattis et arcu. Nullam eu urna tellus, a venenatis eros. Sed quis egestas arcu. Praesent id massa tortor, id cursus sapien. Quisque placerat adipiscing mollis. Morbi enim lectus, pulvinar et pretium sit amet, tincidunt vitae dolor. Phasellus at quam sem, sed rutrum leo.
|
82
|
+
|
83
|
+
Duis ac lorem a augue condimentum lobortis. Vestibulum dui dui, tincidunt quis interdum non, pellentesque eget purus. Donec eget ipsum ut erat eleifend malesuada. Pellentesque fringilla diam sed magna mattis sollicitudin. Aliquam erat volutpat. Nulla vitae leo a tellus vehicula vestibulum. Quisque id elit sed sem ullamcorper gravida at eu urna. Sed molestie ipsum in metus auctor imperdiet. Cras pellentesque, tortor condimentum sodales aliquet, massa lorem bibendum est, eget varius odio purus nec lorem. Donec eu enim metus, vel semper velit. Curabitur quis elit justo. Proin eu magna sit amet nibh sollicitudin euismod quis quis ante. Donec pellentesque pharetra tincidunt. Mauris blandit egestas metus in tincidunt. Nam sit amet risus lorem. Duis justo lacus, dapibus eu aliquam dignissim, molestie sed nulla. Nam ut tristique diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam augue felis, condimentum vitae cursus eget, euismod eu nisl. In molestie felis tortor, ut lobortis nisl.
|
84
|
+
|
85
|
+
Suspendisse sed orci id ligula ultricies posuere. Aliquam cursus venenatis libero id vehicula. Donec tincidunt risus sit amet tortor scelerisque fermentum. Vivamus eu nulla mi, eu ornare nisi. Aliquam id diam congue risus bibendum interdum quis in lorem. Nam id ante ut nisl fermentum hendrerit ac sit amet felis. Curabitur tincidunt, elit volutpat aliquet cursus, est sem commodo sapien, sed aliquam enim metus vel metus. Morbi hendrerit, enim vitae lacinia molestie, ligula dolor ultricies enim, eu luctus leo lorem ac enim. Etiam congue, lorem sit amet fringilla euismod, sem diam dapibus nulla, ut fermentum massa lacus eget sem. Sed tempus condimentum pretium. Sed ut quam turpis. Donec ut lacus at felis luctus lobortis sit amet ut velit. Integer pretium nulla sit amet lorem dignissim ut elementum magna auctor. Ut consequat ornare auctor. Pellentesque eu orci eget erat dictum vulputate non a massa. Cras a nulla tellus. Praesent sagittis libero et mauris porta eget suscipit diam scelerisque. Morbi libero velit, mollis in adipiscing sed, lobortis at sem. Vivamus eget nibh ac neque consectetur fermentum vel eu turpis.
|
86
|
+
|
87
|
+
Cras eget volutpat risus. Praesent nisl lacus, cursus ac ultrices in, interdum eu orci. Aenean tincidunt adipiscing libero, in tincidunt nulla consectetur vitae. Duis non orci in lacus lacinia aliquet. Fusce sed libero vitae turpis placerat fermentum et a mauris. Etiam sit amet mi erat. Pellentesque volutpat, felis quis hendrerit ornare, dui nibh porttitor augue, vel pulvinar nisl enim sit amet eros. Donec eget leo quis felis lobortis interdum. Fusce eu mi ac urna pellentesque bibendum. Nulla pharetra congue ante, vel porttitor ligula rhoncus vel. Cras lacinia euismod porta. Praesent tempor sem vitae ipsum tristique eleifend. Nullam scelerisque nisi ut mauris sollicitudin auctor. Nunc tellus velit, congue vitae commodo nec, vestibulum sed mi. Proin convallis viverra quam, eu placerat est commodo quis. Duis in mauris nibh. Nulla est risus, rutrum tempor consequat id, consectetur sed tortor. Maecenas consequat elit tortor, eu tempus turpis. Sed sit amet consectetur est. </content>
|
88
|
+
<created-at type="datetime">2010-07-21T22:47:22Z</created-at>
|
89
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
90
|
+
<creator-id type="integer">5654019</creator-id>
|
91
|
+
<due-at type="datetime" nil="true"></due-at>
|
92
|
+
<id type="integer">62608455</id>
|
93
|
+
<position type="integer">6</position>
|
94
|
+
<todo-list-id type="integer">9973518</todo-list-id>
|
95
|
+
<created-on type="datetime" deprecated="true">2010-07-21T22:47:22Z</created-on>
|
96
|
+
<creator-name>Kia Kroas</creator-name>
|
97
|
+
</todo-item>
|
98
|
+
</todo-items>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response":{"id":62509330}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<todo-item>
|
2
|
+
<comments-count type="integer">0</comments-count>
|
3
|
+
<completed type="boolean">false</completed>
|
4
|
+
<content>oeoeuoeuoeuou</content>
|
5
|
+
<created-at type="datetime">2010-07-20T23:36:49Z</created-at>
|
6
|
+
<updated-at type="datetime">2010-07-20T23:36:49Z</updated-at>
|
7
|
+
<creator-id type="integer">5654019</creator-id>
|
8
|
+
<due-at type="datetime" nil="true"></due-at>
|
9
|
+
<id type="integer">62504112</id>
|
10
|
+
<position type="integer">1</position>
|
11
|
+
<todo-list-id type="integer">9972756</todo-list-id>
|
12
|
+
<created-on type="datetime" deprecated="true">2010-07-20T23:36:49Z</created-on>
|
13
|
+
<creator-name>Kia Kroas</creator-name>
|
14
|
+
</todo-item>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"todo_lists":[{"completed_count":0,"description":null,"id":9973518,"milestone_id":null,"name":"Stuff and stuff","position":1,"private":false,"project_id":5220065,"tracked":false,"uncompleted_count":6,"complete":"false"},{"completed_count":0,"description":"etauhnotehunoteh tnheontu honetuh osneh noe hosneuh toneuh","id":9972756,"milestone_id":null,"name":"Cheese","position":2,"private":false,"project_id":5220065,"tracked":false,"uncompleted_count":6,"complete":"false"}]}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<todo-lists type="array">
|
3
|
+
<todo-list>
|
4
|
+
<completed-count type="integer">0</completed-count>
|
5
|
+
<description></description>
|
6
|
+
<id type="integer">9973518</id>
|
7
|
+
<milestone-id type="integer" nil="true"></milestone-id>
|
8
|
+
<name>Stuff and stuff</name>
|
9
|
+
<position type="integer">1</position>
|
10
|
+
<private type="boolean">false</private>
|
11
|
+
<project-id type="integer">5220065</project-id>
|
12
|
+
<tracked type="boolean">false</tracked>
|
13
|
+
<uncompleted-count type="integer">6</uncompleted-count>
|
14
|
+
<complete>false</complete>
|
15
|
+
</todo-list>
|
16
|
+
<todo-list>
|
17
|
+
<completed-count type="integer">0</completed-count>
|
18
|
+
<description>etauhnotehunoteh tnheontu honetuh osneh noe hosneuh toneuh</description>
|
19
|
+
<id type="integer">9972756</id>
|
20
|
+
<milestone-id type="integer" nil="true"></milestone-id>
|
21
|
+
<name>Cheese</name>
|
22
|
+
<position type="integer">2</position>
|
23
|
+
<private type="boolean">false</private>
|
24
|
+
<project-id type="integer">5220065</project-id>
|
25
|
+
<tracked type="boolean">false</tracked>
|
26
|
+
<uncompleted-count type="integer">6</uncompleted-count>
|
27
|
+
<complete>false</complete>
|
28
|
+
</todo-list>
|
29
|
+
</todo-lists>
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Basecamp::Project do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
7
|
+
@wheaders = @headers.merge('Content-Type' => 'application/xml')
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:tm) { TaskMapper.new(:basecamp, :token => '000000', :domain => 'ticketmaster.basecamphq.com') }
|
11
|
+
let(:project_class) { TaskMapper::Provider::Basecamp::Project }
|
12
|
+
let(:project_id) { 5220065 }
|
13
|
+
|
14
|
+
describe "Retrieving projects" do
|
15
|
+
before(:each) do
|
16
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
17
|
+
mock.get '/projects.xml', @headers, fixture_for('projects'), 200
|
18
|
+
mock.get '/projects/5220065.xml', @headers, fixture_for('projects/5220065'), 200
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "when calling #projects" do
|
23
|
+
subject { tm.projects }
|
24
|
+
it { subject.should be_an_instance_of(Array) }
|
25
|
+
it { subject.first.should be_an_instance_of(project_class) }
|
26
|
+
end
|
27
|
+
|
28
|
+
context "when calling #projects using an array of id's" do
|
29
|
+
subject { tm.projects([project_id]) }
|
30
|
+
it { subject.should be_an_instance_of(Array) }
|
31
|
+
it { subject.first.should be_an_instance_of(project_class) }
|
32
|
+
it { subject.first.id.should be_eql(project_id) }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "when calling #projects with a hash of project attributes" do
|
36
|
+
subject { tm.projects(:id => project_id) }
|
37
|
+
it { subject.should be_an_instance_of(Array) }
|
38
|
+
it { subject.first.should be_an_instance_of(project_class) }
|
39
|
+
it { subject.first.id.should be_eql(project_id) }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "Retrieve a single project" do
|
44
|
+
before(:each) do
|
45
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
46
|
+
mock.get '/projects.xml', @headers, fixture_for('projects'), 200
|
47
|
+
mock.get '/projects/5220065.xml', @headers, fixture_for('projects/5220065'), 200
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when calling #project with an id" do
|
52
|
+
subject { tm.project(project_id) }
|
53
|
+
it { should be_an_instance_of(project_class) }
|
54
|
+
it { subject.id.should be_eql(project_id) }
|
55
|
+
end
|
56
|
+
|
57
|
+
context "when calling #project with project attributes" do
|
58
|
+
subject { tm.project(:id => project_id) }
|
59
|
+
it { should be_an_instance_of(project_class) }
|
60
|
+
it { subject.id.should be_eql(project_id) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "Creation and update" do
|
65
|
+
before(:each) do
|
66
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
67
|
+
mock.post '/projects.xml', @wheadesr, '', 200
|
68
|
+
mock.get '/projects/5220065.xml', @headers, fixture_for('projects/5220065'), 200
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when calling #project!" do
|
73
|
+
subject { tm.project!(:name => 'Project #1') }
|
74
|
+
pending { should be_an_instance_of(project_class) }
|
75
|
+
end
|
76
|
+
|
77
|
+
context "when changing a project instance and calling #save" do
|
78
|
+
subject { tm.project(project_id) }
|
79
|
+
pending { subject.save.should be_false }
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'rubygems'
|
4
|
+
require 'taskmapper'
|
5
|
+
require 'active_resource/http_mock'
|
6
|
+
require 'taskmapper-basecamp'
|
7
|
+
require 'rspec'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.color_enabled = true
|
11
|
+
end
|
12
|
+
|
13
|
+
def fixture_for(name)
|
14
|
+
File.read(File.dirname(__FILE__) + '/fixtures/' + name + '.xml')
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "TaskMapper::Basecamp" do
|
4
|
+
let(:tm) { TaskMapper.new(:basecamp, {:domain => 'ticketmaster.basecamphq.com', :token => '000000'}) }
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
8
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
9
|
+
mock.get '/me.json', headers, fixture_for('project_count'), 200
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it { tm.should be_an_instance_of(TaskMapper) }
|
14
|
+
it { tm.should be_a_kind_of(TaskMapper::Provider::Basecamp) }
|
15
|
+
|
16
|
+
it "should be able to validate it's authentication" do
|
17
|
+
pending
|
18
|
+
@ticketmaster.valid?.should be_true
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Basecamp::Ticket do
|
4
|
+
let(:project_id) { 5220065 }
|
5
|
+
before(:all) do
|
6
|
+
@headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
7
|
+
@wheaders = @headers.merge('Content-Type' => 'application/xml')
|
8
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
9
|
+
mock.get '/projects/5220065.xml', @headers, fixture_for('projects/5220065'), 200
|
10
|
+
end
|
11
|
+
@project = tm.project(project_id)
|
12
|
+
end
|
13
|
+
let(:ticket_id) { 133184178 }
|
14
|
+
let(:tm) { TaskMapper.new(:basecamp, :domain => 'ticketmaster.basecamphq.com', :token => '000000') }
|
15
|
+
let(:ticket_class) { TaskMapper::Provider::Basecamp::Ticket }
|
16
|
+
|
17
|
+
describe "Retrieve tickets" do
|
18
|
+
before(:each) do
|
19
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
20
|
+
mock.get '/todo_lists.xml?responsible_party=', @headers, fixture_for('todo_list_with_items'), 200
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when #tickets is call for a project instance" do
|
25
|
+
subject { @project.tickets }
|
26
|
+
it { should be_an_instance_of(Array) }
|
27
|
+
it { subject.first.should be_an_instance_of(ticket_class) }
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when #tickets is call to a project instance with an array of id's" do
|
31
|
+
subject { @project.tickets([ticket_id]) }
|
32
|
+
it { should be_an_instance_of(Array) }
|
33
|
+
it { subject.first.should be_an_instance_of(ticket_class) }
|
34
|
+
it { subject.first.id.should be_eql(ticket_id) }
|
35
|
+
end
|
36
|
+
|
37
|
+
context "when #tickets is call to a project instance with attributes" do
|
38
|
+
subject { @project.tickets(:id => ticket_id) }
|
39
|
+
it { should be_an_instance_of(Array) }
|
40
|
+
it { subject.first.should be_an_instance_of(ticket_class) }
|
41
|
+
it { subject.first.id.should be_eql(ticket_id) }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "Retrieve a single ticket" do
|
46
|
+
context "when #ticket is call to a project instance with an ticket id" do
|
47
|
+
subject { @project.ticket(ticket_id) }
|
48
|
+
it { should be_an_instance_of(ticket_class) }
|
49
|
+
it { subject.id.should be_eql(ticket_id) }
|
50
|
+
end
|
51
|
+
|
52
|
+
context "when #ticket is call to a project instance with ticket attributes" do
|
53
|
+
subject { @project.ticket(:id => ticket_id) }
|
54
|
+
it { should be_an_instance_of(ticket_class) }
|
55
|
+
it { subject.id.should be_eql(ticket_id) }
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "Update and creation" do
|
60
|
+
before(:all) do
|
61
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
62
|
+
mock.post '/todo_lists/9972756/todo_items.xml', @wheaders, '', 200
|
63
|
+
mock.post '/projects/5220065/todo_lists.xml', @wheaders, '', 200
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when an instance of ticket is changed and then called the save method" do
|
68
|
+
subject { @project.ticket(ticket_id) }
|
69
|
+
pending { subject.save.should be_false }
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when #ticket! method is call to a project instance" do
|
73
|
+
subject { @project.ticket!(:todo_list_id => 9972756, :title => 'Ticket #12', :description => 'Body') }
|
74
|
+
it { should be_an_instance_of(ticket_class) }
|
75
|
+
it { subject.project_id.should_not be_nil }
|
76
|
+
it { subject.todo_list_id.should_not be_nil }
|
77
|
+
end
|
78
|
+
|
79
|
+
context "when #ticket! method is call without a todo_list_id" do
|
80
|
+
subject { @project.ticket!(:title => 'Ticket #13', :description => 'Body') }
|
81
|
+
pending { should be_an_instance_of(ticket_class) }
|
82
|
+
pending { subject.project_id.should_not be_nil }
|
83
|
+
pending { subject.todo_list_id.should_not be_nil }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "taskmapper-basecamp"
|
8
|
+
s.version = "0.5.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["HybridGroup"]
|
12
|
+
s.date = "2012-05-10"
|
13
|
+
s.description = "This gem provides an interface to basecamp through the taskmapper gem"
|
14
|
+
s.email = "hong.quach@abigfisch.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".travis.yml",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/basecamp/basecamp.rb",
|
29
|
+
"lib/provider/basecamp.rb",
|
30
|
+
"lib/provider/comment.rb",
|
31
|
+
"lib/provider/project.rb",
|
32
|
+
"lib/provider/ticket.rb",
|
33
|
+
"lib/taskmapper-basecamp.rb",
|
34
|
+
"spec/comments_spec.rb",
|
35
|
+
"spec/fixtures/comments.json",
|
36
|
+
"spec/fixtures/comments.xml",
|
37
|
+
"spec/fixtures/comments/74197051.json",
|
38
|
+
"spec/fixtures/comments/74197051.xml",
|
39
|
+
"spec/fixtures/comments/74197096.json",
|
40
|
+
"spec/fixtures/comments/74197096.xml",
|
41
|
+
"spec/fixtures/project_count.json",
|
42
|
+
"spec/fixtures/project_count.xml",
|
43
|
+
"spec/fixtures/projects.json",
|
44
|
+
"spec/fixtures/projects.xml",
|
45
|
+
"spec/fixtures/projects/5220065.json",
|
46
|
+
"spec/fixtures/projects/5220065.xml",
|
47
|
+
"spec/fixtures/projects/create.json",
|
48
|
+
"spec/fixtures/projects/create.xml",
|
49
|
+
"spec/fixtures/todo_items/62509330_todo_item.xml",
|
50
|
+
"spec/fixtures/todo_list_9972756.xml",
|
51
|
+
"spec/fixtures/todo_list_with_items.json",
|
52
|
+
"spec/fixtures/todo_list_with_items.xml",
|
53
|
+
"spec/fixtures/todo_lists.json",
|
54
|
+
"spec/fixtures/todo_lists.xml",
|
55
|
+
"spec/fixtures/todo_lists/9972756_items.json",
|
56
|
+
"spec/fixtures/todo_lists/9972756_items.xml",
|
57
|
+
"spec/fixtures/todo_lists/9973518_items.json",
|
58
|
+
"spec/fixtures/todo_lists/9973518_items.xml",
|
59
|
+
"spec/fixtures/todo_lists/create.json",
|
60
|
+
"spec/fixtures/todo_lists/create.xml",
|
61
|
+
"spec/projects_spec.rb",
|
62
|
+
"spec/spec.opts",
|
63
|
+
"spec/spec_helper.rb",
|
64
|
+
"spec/taskmapper-basecamp_spec.rb",
|
65
|
+
"spec/tickets_spec.rb",
|
66
|
+
"taskmapper-basecamp.gemspec"
|
67
|
+
]
|
68
|
+
s.homepage = "http://github.com/kiafaldorius/taskmapper-basecamp"
|
69
|
+
s.require_paths = ["lib"]
|
70
|
+
s.rubygems_version = "1.8.17"
|
71
|
+
s.summary = "The basecamp provider for taskmapper"
|
72
|
+
|
73
|
+
if s.respond_to? :specification_version then
|
74
|
+
s.specification_version = 3
|
75
|
+
|
76
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
77
|
+
s.add_runtime_dependency(%q<taskmapper>, ["~> 0.8"])
|
78
|
+
s.add_runtime_dependency(%q<xml-simple>, ["~> 1.1"])
|
79
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3"])
|
80
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6"])
|
81
|
+
s.add_development_dependency(%q<simplecov>, ["~> 0.5"])
|
82
|
+
s.add_development_dependency(%q<rcov>, ["~> 1.0"])
|
83
|
+
else
|
84
|
+
s.add_dependency(%q<taskmapper>, ["~> 0.8"])
|
85
|
+
s.add_dependency(%q<xml-simple>, ["~> 1.1"])
|
86
|
+
s.add_dependency(%q<rspec>, ["~> 2.3"])
|
87
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6"])
|
88
|
+
s.add_dependency(%q<simplecov>, ["~> 0.5"])
|
89
|
+
s.add_dependency(%q<rcov>, ["~> 1.0"])
|
90
|
+
end
|
91
|
+
else
|
92
|
+
s.add_dependency(%q<taskmapper>, ["~> 0.8"])
|
93
|
+
s.add_dependency(%q<xml-simple>, ["~> 1.1"])
|
94
|
+
s.add_dependency(%q<rspec>, ["~> 2.3"])
|
95
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6"])
|
96
|
+
s.add_dependency(%q<simplecov>, ["~> 0.5"])
|
97
|
+
s.add_dependency(%q<rcov>, ["~> 1.0"])
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|