taskmapper-zendesk 0.5.0 → 0.5.1
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/VERSION +1 -1
- data/lib/provider/comment.rb +31 -42
- data/lib/provider/project.rb +0 -4
- data/lib/provider/ticket.rb +39 -65
- data/lib/provider/zendesk.rb +7 -4
- data/lib/zendesk/zendesk-api.rb +1 -1
- data/spec/comments_spec.rb +41 -45
- data/spec/fixtures/tickets/1.json +1 -0
- data/spec/fixtures/tickets/2.json +1 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/taskmapper-zendesk_spec.rb +20 -12
- data/spec/tickets_spec.rb +43 -49
- data/taskmapper-zendesk.gemspec +5 -3
- metadata +91 -63
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.1
|
data/lib/provider/comment.rb
CHANGED
@@ -7,33 +7,30 @@ module TaskMapper::Provider
|
|
7
7
|
#
|
8
8
|
class Comment < TaskMapper::Provider::Base::Comment
|
9
9
|
# declare needed overloaded methods here
|
10
|
-
|
10
|
+
|
11
11
|
USER_API = ZendeskAPI::User
|
12
12
|
|
13
13
|
def initialize(*object)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
@system_data
|
22
|
-
|
23
|
-
hash = {:author => object.author_id,
|
24
|
-
:body => object.value,
|
25
|
-
:id => comment_id,
|
26
|
-
:created_at => object.created_at,
|
27
|
-
:updated_at => object.created_at,
|
28
|
-
:ticket_id => ticket_id,
|
29
|
-
:project_id => project_id}
|
30
|
-
else
|
31
|
-
hash = object
|
32
|
-
end
|
33
|
-
super hash
|
14
|
+
@system_data = {}
|
15
|
+
@cache = {}
|
16
|
+
first = object.shift
|
17
|
+
case first
|
18
|
+
when Hash
|
19
|
+
super first.to_hash
|
20
|
+
else
|
21
|
+
@system_data[:client] = first
|
22
|
+
super first.attributes
|
34
23
|
end
|
35
24
|
end
|
36
25
|
|
26
|
+
def author
|
27
|
+
USER_API.find(comment.author_id).email
|
28
|
+
end
|
29
|
+
|
30
|
+
def id
|
31
|
+
self.comment_id
|
32
|
+
end
|
33
|
+
|
37
34
|
def created_at
|
38
35
|
Time.parse(self[:created_at])
|
39
36
|
end
|
@@ -42,33 +39,25 @@ module TaskMapper::Provider
|
|
42
39
|
Time.parse(self[:updated_at])
|
43
40
|
end
|
44
41
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
42
|
+
class << self
|
43
|
+
def search(project_id, ticket_id, options = {}, limit = 1000)
|
44
|
+
comment_id = 0
|
45
|
+
ZendeskAPI::Ticket.find(ticket_id).comments.collect do |comment|
|
46
|
+
comment_id += 1
|
47
|
+
self.new comment.attributes.merge!(:project_id => project_id,
|
48
|
+
:ticket_id => ticket_id,
|
49
|
+
:comment_id => comment_id)
|
50
50
|
end
|
51
|
-
elsif options[0].first.is_a? Hash
|
52
|
-
self.find_by_attributes(project_id, ticket_id, options[0].first)
|
53
|
-
else
|
54
|
-
ticket_comments
|
55
51
|
end
|
56
|
-
end
|
57
52
|
|
58
|
-
|
59
|
-
|
60
|
-
ZendeskAPI::Ticket.find(ticket_id).comments.collect do |comment|
|
61
|
-
comment_id += 1
|
62
|
-
comment.author_id = USER_API.find(comment.author_id).email
|
63
|
-
Comment.new [ticket_id, project_id, comment_id, comment]
|
53
|
+
def find_by_id(project_id, ticket_id, id)
|
54
|
+
search(project_id, ticket_id).find { |ticket| ticket.id == id }
|
64
55
|
end
|
65
|
-
end
|
66
56
|
|
67
|
-
|
68
|
-
|
57
|
+
def find_by_attributes(project_id, ticket_id, attributes = {})
|
58
|
+
search_by_attribute(self.search(project_id, ticket_id), attributes)
|
59
|
+
end
|
69
60
|
end
|
70
|
-
|
71
61
|
end
|
72
|
-
|
73
62
|
end
|
74
63
|
end
|
data/lib/provider/project.rb
CHANGED
data/lib/provider/ticket.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
|
2
1
|
module TaskMapper::Provider
|
3
2
|
module Zendesk
|
4
|
-
|
5
3
|
class Ticket < TaskMapper::Provider::Base::Ticket
|
6
4
|
# declare needed overloaded methods here
|
7
5
|
|
@@ -9,31 +7,27 @@ module TaskMapper::Provider
|
|
9
7
|
API = ZendeskAPI::Ticket
|
10
8
|
USER_API = ZendeskAPI::User
|
11
9
|
|
12
|
-
def initialize(*object)
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
:title => object.subject,
|
23
|
-
:created_at => object.created_at,
|
24
|
-
:updated_at => object.updated_at,
|
25
|
-
:description => object.description,
|
26
|
-
:assignee => object.assignee_id,
|
27
|
-
:requestor => object.requester_id,
|
28
|
-
:priority => object.priority_id,
|
29
|
-
:project_id => project_id}
|
30
|
-
else
|
31
|
-
hash = object
|
32
|
-
end
|
33
|
-
super hash
|
10
|
+
def initialize(*object)
|
11
|
+
@system_data = {}
|
12
|
+
@cache = {}
|
13
|
+
first = object.shift
|
14
|
+
case first
|
15
|
+
when Hash
|
16
|
+
super first.to_hash
|
17
|
+
else
|
18
|
+
@system_data[:client] = first
|
19
|
+
super first.attributes
|
34
20
|
end
|
35
21
|
end
|
36
22
|
|
23
|
+
def id
|
24
|
+
self.nice_id
|
25
|
+
end
|
26
|
+
|
27
|
+
def title
|
28
|
+
self.subject
|
29
|
+
end
|
30
|
+
|
37
31
|
def created_at
|
38
32
|
Time.parse(self[:created_at])
|
39
33
|
end
|
@@ -42,56 +36,36 @@ module TaskMapper::Provider
|
|
42
36
|
Time.parse(self[:updated_at])
|
43
37
|
end
|
44
38
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
tickets
|
39
|
+
class << self
|
40
|
+
def search(project_id)
|
41
|
+
SEARCH_API.find(:all, :params => {:query => "status:open"}).collect do |ticket|
|
42
|
+
ticket.requester_id = requestor(ticket)
|
43
|
+
ticket.assignee_id = assignee(ticket)
|
44
|
+
self.new ticket.attributes.merge! :project_id => project_id
|
45
|
+
end
|
53
46
|
end
|
54
|
-
end
|
55
47
|
|
56
|
-
|
57
|
-
|
58
|
-
SEARCH_API.find(:all, :params => {:query => "status:open"}).collect do |ticket|
|
59
|
-
ticket.requester_id = requestor(ticket)
|
60
|
-
ticket.assignee_id = assignee(ticket)
|
61
|
-
self.new([ticket, project_id])
|
48
|
+
def find_by_id(project_id, ticket_id)
|
49
|
+
self.new zendesk_ticket(ticket_id).attributes.merge! :project_id => project_id
|
62
50
|
end
|
63
|
-
end
|
64
51
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
def self.find_by_attributes(project_id, attributes = {})
|
70
|
-
search_by_attribute(self.find_all(project_id), attributes)
|
71
|
-
end
|
72
|
-
|
73
|
-
def comments(*options)
|
74
|
-
Comment.find(project_id, id, options)
|
75
|
-
end
|
52
|
+
def find_by_attributes(project_id, attributes = {})
|
53
|
+
search_by_attribute(self.search(project_id), attributes)
|
54
|
+
end
|
76
55
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
elsif options.first.is_a? Hash
|
81
|
-
Comment.find_by_attributes(project_id, id, options.first).first
|
56
|
+
private
|
57
|
+
def requestor(ticket)
|
58
|
+
USER_API.find(ticket.requester_id).email
|
82
59
|
end
|
83
|
-
end
|
84
60
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
61
|
+
def assignee(ticket)
|
62
|
+
USER_API.find(ticket.assignee_id).email
|
63
|
+
end
|
89
64
|
|
90
|
-
|
91
|
-
|
65
|
+
def zendesk_ticket(ticket_id)
|
66
|
+
API.find ticket_id
|
67
|
+
end
|
92
68
|
end
|
93
|
-
|
94
69
|
end
|
95
|
-
|
96
70
|
end
|
97
71
|
end
|
data/lib/provider/zendesk.rb
CHANGED
@@ -4,12 +4,12 @@ module TaskMapper::Provider
|
|
4
4
|
module Zendesk
|
5
5
|
include TaskMapper::Provider::Base
|
6
6
|
#PROJECT_API = ZendeskAPI::Organization
|
7
|
-
|
7
|
+
|
8
8
|
# This is for cases when you want to instantiate using TaskMapper::Provider::Yoursystem.new(auth)
|
9
9
|
def self.new(auth = {})
|
10
10
|
TaskMapper.new(:zendesk, auth)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
# The authorize and initializer for this provider
|
14
14
|
def authorize(auth = {})
|
15
15
|
@authentication ||= TaskMapper::Authenticator.new(auth)
|
@@ -33,8 +33,11 @@ module TaskMapper::Provider
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def valid?
|
36
|
-
|
36
|
+
begin
|
37
|
+
!ZendeskAPI::Search.find(:first, :params => {:query => "status:open"}).nil?
|
38
|
+
rescue
|
39
|
+
false
|
40
|
+
end
|
37
41
|
end
|
38
|
-
|
39
42
|
end
|
40
43
|
end
|
data/lib/zendesk/zendesk-api.rb
CHANGED
data/spec/comments_spec.rb
CHANGED
@@ -1,55 +1,51 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
describe TaskMapper::Provider::Zendesk::Comment do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
4
|
+
let(:project_id) { 'hybridgroup-project' }
|
5
|
+
let(:headers) { {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'} }
|
6
|
+
let(:tm) { TaskMapper.new(:zendesk, :account => 'hybridgroup', :username => 'rafael@hybridgroup.com', :password => '123456') }
|
7
|
+
let(:project) { tm.project(project_id) }
|
8
|
+
let(:comment_class) { TaskMapper::Provider::Zendesk::Comment }
|
9
|
+
|
10
|
+
describe "Retrieving comments" do
|
11
|
+
before(:each) do
|
12
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
13
|
+
mock.get '/api/v1/tickets/2.json', headers, fixture_for('ticket'), 200
|
14
|
+
mock.get '/api/v1/tickets/1.json', headers, fixture_for('ticket'), 200
|
15
|
+
end
|
13
16
|
end
|
14
|
-
|
15
|
-
|
16
|
-
before(:each) do
|
17
|
-
@taskmapper = TaskMapper.new(:zendesk, :account => 'hybridgroup', :username => 'rafael@hybridgroup.com', :password => '123456')
|
18
|
-
project = @taskmapper.project(@project_id)
|
19
|
-
@ticket = project.ticket(@ticket_id)
|
20
|
-
@klass = TaskMapper::Provider::Zendesk::Comment
|
21
|
-
end
|
17
|
+
let(:ticket) { project.ticket 2 }
|
22
18
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
it "should be able to load all comments based on an array of id's" do
|
30
|
-
comments = @ticket.comments([1])
|
31
|
-
comments.should be_an_instance_of(Array)
|
32
|
-
comments.first.should be_an_instance_of(@klass)
|
33
|
-
comments.first.id.should == 1
|
34
|
-
end
|
19
|
+
context "when calling #comments to a ticket instance" do
|
20
|
+
subject { ticket.comments }
|
21
|
+
it { should be_an_instance_of Array }
|
22
|
+
it { subject.first.should be_an_instance_of comment_class }
|
23
|
+
end
|
35
24
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
25
|
+
context "when calling #comments with an array of id" do
|
26
|
+
subject { ticket.comments [1] }
|
27
|
+
it { should be_an_instance_of Array }
|
28
|
+
it { subject.first.should be_an_instance_of comment_class }
|
29
|
+
end
|
42
30
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
31
|
+
context "when calling #comments with a hash of attributes" do
|
32
|
+
subject { ticket.comments :ticket_id => ticket.id }
|
33
|
+
it { should be_an_instance_of Array }
|
34
|
+
it { subject.first.should be_an_instance_of comment_class }
|
35
|
+
end
|
48
36
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
37
|
+
describe "Retrieve a single comment" do
|
38
|
+
context "when calling #comment with an id to a ticket instance" do
|
39
|
+
subject { ticket.comment 1 }
|
40
|
+
it { should be_an_instance_of comment_class }
|
41
|
+
it { subject.id.should == 1 }
|
42
|
+
end
|
43
|
+
|
44
|
+
context "when calling #comment with a hash attributes to a ticket instance" do
|
45
|
+
subject { ticket.comment :ticket_id => 1 }
|
46
|
+
it { should be_an_instance_of comment_class }
|
47
|
+
it { subject.id.should == 1 }
|
48
|
+
end
|
49
|
+
end
|
53
50
|
end
|
54
|
-
|
55
51
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"ticket":{"assigned_at":"2007-06-03T22:15:44Z","assignee_id":"4","assignee_updated_at":null,"created_at":"2007-06-03T20:15:44Z","subject":"Testing","description":"My printer is not working","external_id":null,"group_id":"2","id":"2","linked_id":null,"priority_id":"3","submitter_id":"3","status_id":"1","status_updated_at":"2007-06-03T22:15:44Z","requester_id":"3","requester_updated_at":"2007-06-03T22:15:44Z","ticket_type_id":"2","updated_at":"2007-06-03T20:15:45Z","via_id":"0","current_tags":"printer hp","score":"28","comments":[{"author_id":"3","created_at":"2007-06-03T20:15:45Z","is_public":"true","value":"This is a comment","via_id":"0","via_reference_id":null},{"author_id":"5","created_at":"2007-06-04T10:07:02Z","is_public":"true","value":"Make sure it is plugged in","via_id":"0","via_reference_id":null}],"ticket_field_entries":[{"ticket_field_id":"139","value":"Please contact me by phone during work hours"},{"ticket_field_id":"141","value":"true"}]}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"ticket":{"assigned_at":"2007-06-03T22:15:44Z","assignee_id":"4","assignee_updated_at":null,"created_at":"2007-06-03T20:15:44Z","subject":"Testing","description":"My printer is not working","external_id":null,"group_id":"2","id":"2","linked_id":null,"priority_id":"3","submitter_id":"3","status_id":"1","status_updated_at":"2007-06-03T22:15:44Z","requester_id":"3","requester_updated_at":"2007-06-03T22:15:44Z","ticket_type_id":"2","updated_at":"2007-06-03T20:15:45Z","via_id":"0","current_tags":"printer hp","score":"28","comments":[{"author_id":"3","created_at":"2007-06-03T20:15:45Z","is_public":"true","value":"This is a comment","via_id":"0","via_reference_id":null},{"author_id":"5","created_at":"2007-06-04T10:07:02Z","is_public":"true","value":"Make sure it is plugged in","via_id":"0","via_reference_id":null}],"ticket_field_entries":[{"ticket_field_id":"139","value":"Please contact me by phone during work hours"},{"ticket_field_id":"141","value":"true"}]}}
|
data/spec/spec_helper.rb
CHANGED
@@ -1,22 +1,30 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
describe "TaskMapper::Provider::Zendesk" do
|
4
|
-
|
5
|
-
|
6
|
-
headers = {'Authorization' => 'Basic Zm9vOjAwMDAwMA==','Accept' => 'application/json'}
|
7
|
-
ActiveResource::HttpMock.respond_to do |mock|
|
8
|
-
mock.get '/search.json?query=status%3Aopen', headers, fixture_for('tickets', 'json'), 200
|
9
|
-
end
|
4
|
+
let(:tm) { TaskMapper.new(:zendesk, {:account => 'taskmapper', :username => 'foo', :password => '000000'}) }
|
5
|
+
let(:headers) { {'Authorization' => 'Basic Zm9vOjAwMDAwMA==','Accept' => 'application/json'} }
|
10
6
|
|
7
|
+
describe "Instance of TaskMapper" do
|
8
|
+
context "when initializing a new zendesk provider" do
|
9
|
+
subject { tm }
|
10
|
+
it { should be_an_instance_of TaskMapper }
|
11
|
+
it { should be_a_kind_of TaskMapper::Provider::Zendesk }
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
context "when calling #valid? to an instance of zendesk with invalid credentials" do
|
16
|
+
subject { tm.valid? }
|
17
|
+
it { should be_false }
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
context "when calling #valid? to an instance of zendesk provider with correct credentials" do
|
21
|
+
before(:each) do
|
22
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
23
|
+
mock.get '/api/v1/search.json?query=status%3Aopen', headers, fixture_for('tickets'), 200
|
24
|
+
end
|
25
|
+
end
|
21
26
|
|
27
|
+
subject { tm.valid? }
|
28
|
+
it { should be_true }
|
29
|
+
end
|
22
30
|
end
|
data/spec/tickets_spec.rb
CHANGED
@@ -2,58 +2,52 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe TaskMapper::Provider::Zendesk::Ticket do
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
5
|
+
let(:project_id) { "hybridgroup-project" }
|
6
|
+
let(:tm) { TaskMapper.new(:zendesk, :account => 'hybridgroup', :username => 'rafael@hybridgroup.com', :password => '123456') }
|
7
|
+
let(:ticket_class) { TaskMapper::Provider::Zendesk::Ticket }
|
8
|
+
let(:project) { tm.project(project_id) }
|
9
|
+
let(:headers) { {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'} }
|
10
|
+
|
11
|
+
describe "Retrieving tickets" do
|
12
|
+
before(:each) do
|
13
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
14
|
+
mock.get '/api/v1/search.json?query=status%3Aopen', headers, fixture_for('tickets'), 200
|
15
|
+
mock.get '/api/v1/tickets/1.json', headers, fixture_for('tickets/1'), 200
|
16
|
+
mock.get '/api/v1/users/26218414.json', headers, fixture_for('users/55030073'), 200
|
17
|
+
mock.get '/api/v1/users/26220353.json', headers, fixture_for('users/55030073'), 200
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "when calling #tickets" do
|
22
|
+
subject { project.tickets }
|
23
|
+
it { should be_an_instance_of Array }
|
24
|
+
it { subject.first.should be_an_instance_of ticket_class }
|
14
25
|
end
|
15
|
-
end
|
16
|
-
|
17
|
-
before(:each) do
|
18
|
-
@taskmapper = TaskMapper.new(:zendesk, :account => 'hybridgroup', :username => 'rafael@hybridgroup.com', :password => '123456')
|
19
|
-
@klass = TaskMapper::Provider::Zendesk::Ticket
|
20
|
-
@project = @taskmapper.project(@project_id)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should be able to load all tickets" do
|
24
|
-
@project.tickets.should be_an_instance_of(Array)
|
25
|
-
@project.tickets.first.should be_an_instance_of(@klass)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should be able to load all tickets based on an array of id's" do
|
29
|
-
tickets = @project.tickets([1])
|
30
|
-
tickets.should be_an_instance_of(Array)
|
31
|
-
tickets.first.should be_an_instance_of(@klass)
|
32
|
-
tickets.size.should == 1
|
33
|
-
tickets.first.title.should == "Testing"
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should be able to load all tickets based on attributes" do
|
37
|
-
tickets = @project.tickets(:id => 1)
|
38
|
-
tickets.should be_an_instance_of(Array)
|
39
|
-
tickets.first.should be_an_instance_of(@klass)
|
40
|
-
tickets.first.title.should == "Testing"
|
41
|
-
end
|
42
26
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
27
|
+
context "when calling #tickets with array of id's" do
|
28
|
+
subject { project.tickets [1] }
|
29
|
+
it { should be_an_instance_of Array }
|
30
|
+
it { subject.first.should be_an_instance_of ticket_class }
|
31
|
+
end
|
48
32
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
33
|
+
context "when calling #tickets with a hash attributes" do
|
34
|
+
subject { project.tickets :id => 1 }
|
35
|
+
it { should be_an_instance_of Array }
|
36
|
+
it { subject.first.should be_an_instance_of ticket_class }
|
37
|
+
end
|
54
38
|
|
55
|
-
|
56
|
-
|
39
|
+
describe "Retrieving a single ticket" do
|
40
|
+
context "when calling #ticket to a project instance" do
|
41
|
+
subject { project.ticket 1 }
|
42
|
+
it { should be_an_instance_of ticket_class }
|
43
|
+
it { subject.title.should == "Testing" }
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when calling #ticket with a hash attribute" do
|
47
|
+
subject { project.ticket :id => 1 }
|
48
|
+
it { should be_an_instance_of ticket_class }
|
49
|
+
it { subject.title.should == "Testing" }
|
50
|
+
end
|
51
|
+
end
|
57
52
|
end
|
58
|
-
|
59
53
|
end
|
data/taskmapper-zendesk.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "taskmapper-zendesk"
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Rafael George"]
|
12
|
-
s.date = "2012-05-
|
12
|
+
s.date = "2012-05-22"
|
13
13
|
s.description = "Allows taskmapper to interact with Your System."
|
14
14
|
s.email = "rafael@hybridgroup.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -40,6 +40,8 @@ Gem::Specification.new do |s|
|
|
40
40
|
"spec/fixtures/ticket.json",
|
41
41
|
"spec/fixtures/tickets.json",
|
42
42
|
"spec/fixtures/tickets.xml",
|
43
|
+
"spec/fixtures/tickets/1.json",
|
44
|
+
"spec/fixtures/tickets/2.json",
|
43
45
|
"spec/fixtures/tickets/2.xml",
|
44
46
|
"spec/fixtures/tickets/5.xml",
|
45
47
|
"spec/fixtures/tickets/create.xml",
|
@@ -53,7 +55,7 @@ Gem::Specification.new do |s|
|
|
53
55
|
]
|
54
56
|
s.homepage = "http://github.com/hybridgroup/taskmapper-zendesk"
|
55
57
|
s.require_paths = ["lib"]
|
56
|
-
s.rubygems_version = "1.8.
|
58
|
+
s.rubygems_version = "1.8.24"
|
57
59
|
s.summary = "taskmapper Provider for Zendesk"
|
58
60
|
|
59
61
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,93 +1,120 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskmapper-zendesk
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
4
5
|
prerelease:
|
5
|
-
version: 0.5.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Rafael George
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: taskmapper
|
17
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
18
|
+
requirements:
|
20
19
|
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.8'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.8'
|
30
|
+
- !ruby/object:Gem::Dependency
|
27
31
|
name: rspec
|
28
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
29
33
|
none: false
|
30
|
-
requirements:
|
34
|
+
requirements:
|
31
35
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version:
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '2.8'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
|
-
version_requirements:
|
37
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '2.8'
|
46
|
+
- !ruby/object:Gem::Dependency
|
38
47
|
name: bundler
|
39
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
40
49
|
none: false
|
41
|
-
requirements:
|
50
|
+
requirements:
|
42
51
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version:
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.1'
|
45
54
|
type: :development
|
46
55
|
prerelease: false
|
47
|
-
version_requirements:
|
48
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.1'
|
62
|
+
- !ruby/object:Gem::Dependency
|
49
63
|
name: jeweler
|
50
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
51
65
|
none: false
|
52
|
-
requirements:
|
66
|
+
requirements:
|
53
67
|
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.6'
|
56
70
|
type: :development
|
57
71
|
prerelease: false
|
58
|
-
version_requirements:
|
59
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.6'
|
78
|
+
- !ruby/object:Gem::Dependency
|
60
79
|
name: simplecov
|
61
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
62
81
|
none: false
|
63
|
-
requirements:
|
82
|
+
requirements:
|
64
83
|
- - ~>
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version:
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0.5'
|
67
86
|
type: :development
|
68
87
|
prerelease: false
|
69
|
-
version_requirements:
|
70
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.5'
|
94
|
+
- !ruby/object:Gem::Dependency
|
71
95
|
name: rcov
|
72
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
73
97
|
none: false
|
74
|
-
requirements:
|
98
|
+
requirements:
|
75
99
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '1.0'
|
78
102
|
type: :development
|
79
103
|
prerelease: false
|
80
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.0'
|
81
110
|
description: Allows taskmapper to interact with Your System.
|
82
111
|
email: rafael@hybridgroup.com
|
83
112
|
executables: []
|
84
|
-
|
85
113
|
extensions: []
|
86
|
-
|
87
|
-
extra_rdoc_files:
|
114
|
+
extra_rdoc_files:
|
88
115
|
- LICENSE
|
89
116
|
- README.md
|
90
|
-
files:
|
117
|
+
files:
|
91
118
|
- .DS_Store
|
92
119
|
- .rbenv-gemsets
|
93
120
|
- .rvmrc
|
@@ -111,6 +138,8 @@ files:
|
|
111
138
|
- spec/fixtures/ticket.json
|
112
139
|
- spec/fixtures/tickets.json
|
113
140
|
- spec/fixtures/tickets.xml
|
141
|
+
- spec/fixtures/tickets/1.json
|
142
|
+
- spec/fixtures/tickets/2.json
|
114
143
|
- spec/fixtures/tickets/2.xml
|
115
144
|
- spec/fixtures/tickets/5.xml
|
116
145
|
- spec/fixtures/tickets/create.xml
|
@@ -123,30 +152,29 @@ files:
|
|
123
152
|
- taskmapper-zendesk.gemspec
|
124
153
|
homepage: http://github.com/hybridgroup/taskmapper-zendesk
|
125
154
|
licenses: []
|
126
|
-
|
127
155
|
post_install_message:
|
128
156
|
rdoc_options: []
|
129
|
-
|
130
|
-
require_paths:
|
157
|
+
require_paths:
|
131
158
|
- lib
|
132
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
160
|
none: false
|
134
|
-
requirements:
|
135
|
-
- -
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version:
|
138
|
-
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
segments:
|
166
|
+
- 0
|
167
|
+
hash: -692886253
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
169
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version:
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
144
174
|
requirements: []
|
145
|
-
|
146
175
|
rubyforge_project:
|
147
|
-
rubygems_version: 1.8.
|
176
|
+
rubygems_version: 1.8.24
|
148
177
|
signing_key:
|
149
178
|
specification_version: 3
|
150
179
|
summary: taskmapper Provider for Zendesk
|
151
180
|
test_files: []
|
152
|
-
|