taskmapper-zendesk 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
@@ -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
- return super(object.first) if object.first.is_a? Hash
15
- if object.first
16
- object = object.first
17
- ticket_id = object.shift
18
- project_id = object.shift
19
- comment_id = object.shift
20
- object = object.shift
21
- @system_data = {:client => object}
22
- unless object.is_a? Hash
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
- def self.find(project_id, ticket_id, *options)
46
- ticket_comments = self.find_all(project_id, ticket_id)
47
- if options[0].first.is_a? Array
48
- ticket_comments.select do |comment|
49
- comment if options[0].first.any? { |comment_id| comment_id == comment.id }
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
- def self.find_all(project_id, ticket_id)
59
- comment_id = 0
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
- def self.find_by_attributes(project_id, ticket_id, attributes = {})
68
- search_by_attribute(self.find_all(project_id, ticket_id), attributes)
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
@@ -34,10 +34,6 @@ module TaskMapper::Provider
34
34
  end
35
35
  end
36
36
 
37
- def tickets(*options)
38
- Ticket.find(self.name, options)
39
- end
40
-
41
37
  def ticket(*options)
42
38
  if options.first.is_a? Fixnum
43
39
  ticket_id = options.first
@@ -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
- return super(object.first) if object.first.is_a? Hash
14
- if object.first
15
- args = object.first
16
- object = args.shift
17
- project_id = args.shift
18
- @system_data = {:client => object}
19
- unless object.is_a? Hash
20
- hash = {:id => object.nice_id,
21
- :status => object.status_id,
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
- def self.find(project_id, *options)
46
- tickets = self.find_all(project_id)
47
- if options[0].first.is_a? Array
48
- Ticket.find_all(self.name).select { |ticket| ticket if options[0].first.any? { |ticket_id| ticket_id == ticket.id }}
49
- elsif options[0].first.is_a? Hash
50
- Ticket.find_by_attributes(self.name, options[0].first)
51
- else
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
- def self.find_all(*options)
57
- project_id = options.first
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
- def self.find_by_id(project_id, ticket_id)
66
- self.new [API.find(ticket_id), project_id]
67
- end
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
- def comment(*options)
78
- if options.first.is_a? Fixnum
79
- Comment.find(project_id, id, [options.first]).first
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
- private
86
- def self.requestor(ticket)
87
- USER_API.find(ticket.requester_id).email
88
- end
61
+ def assignee(ticket)
62
+ USER_API.find(ticket.assignee_id).email
63
+ end
89
64
 
90
- def self.assignee(ticket)
91
- USER_API.find(ticket.assignee_id).email
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
@@ -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
- ZendeskAPI::Search.find(:first, :params => {:query => "status:open"})
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
@@ -12,7 +12,7 @@ module ZendeskAPI
12
12
  @password = password
13
13
  self::Base.user = username
14
14
  self::Base.password = password
15
- self::Base.site = "http://#{account}.zendesk.com"
15
+ self::Base.site = "https://#{account}.zendesk.com/api/v1/"
16
16
  end
17
17
 
18
18
  def resources
@@ -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
- before(:all) do
6
- @project_id = 'hybridgroup-project'
7
- @ticket_id = 1
8
- headers = {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'}
9
- ActiveResource::HttpMock.respond_to do |mock|
10
- mock.get '/tickets/1.json', headers, fixture_for('ticket','json'), 200
11
- mock.get '/users/26218414.json', headers, fixture_for('users/55030073', 'json'), 200
12
- mock.get '/users/26220353.json', headers, fixture_for('users/55030073', 'json'), 200
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
- end
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
- it "should be able to load all comments" do
24
- comments = @ticket.comments
25
- comments.should be_an_instance_of(Array)
26
- comments.first.should be_an_instance_of(@klass)
27
- end
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
- it "should be able to load all comments based on attributes" do
37
- comments = @ticket.comments(:ticket_id => @ticket.id)
38
- comments.should be_an_instance_of(Array)
39
- comments.first.should be_an_instance_of(@klass)
40
- comments.first.id.should == 1
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
- it "should be able to load a comment based on id" do
44
- comment = @ticket.comment(1)
45
- comment.should be_an_instance_of(@klass)
46
- comment.id.should == 1
47
- end
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
- it "should be able to load a ticket based on attributes" do
50
- comment = @ticket.comment(:ticket_id => 1)
51
- comment.should be_an_instance_of(@klass)
52
- comment.id.should == 1
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"}]}}
@@ -11,6 +11,6 @@ RSpec.configure do |config|
11
11
 
12
12
  end
13
13
 
14
- def fixture_for(name, format = 'xml')
14
+ def fixture_for(name, format = 'json')
15
15
  File.read(File.dirname(__FILE__) + '/fixtures/' + name + ".#{format}")
16
16
  end
@@ -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
- before(:each) do
5
- @taskmapper = TaskMapper.new(:zendesk, {:account => 'taskmapper', :username => 'foo', :password => '000000'})
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
- it "should be able to instantiate a new instance" do
14
- @taskmapper.should be_an_instance_of(TaskMapper)
15
- @taskmapper.should be_a_kind_of(TaskMapper::Provider::Zendesk)
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
- it "should be true with valid authentication" do
19
- @taskmapper.valid?.should be_true
20
- end
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
@@ -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
- before(:all) do
6
- @project_id = "hybridgroup-project"
7
-
8
- headers = {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'}
9
- ActiveResource::HttpMock.respond_to do |mock|
10
- mock.get '/search.json?query=status%3Aopen', headers, fixture_for('tickets', 'json'), 200
11
- mock.get '/tickets/1.json', headers, fixture_for('ticket', 'json'), 200
12
- mock.get '/users/26218414.json', headers, fixture_for('users/55030073', 'json'), 200
13
- mock.get '/users/26220353.json', headers, fixture_for('users/55030073', 'json'), 200
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
- it "should be able to load a single ticket" do
44
- ticket = @project.ticket(1)
45
- ticket.should be_an_instance_of(@klass)
46
- ticket.title.should == "Testing"
47
- end
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
- it "should be able to find a ticket by attributes" do
50
- ticket = @project.ticket(:id => 1)
51
- ticket.should be_an_instance_of(@klass)
52
- ticket.title.should == "Testing"
53
- end
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
- it "should return the ticket class without parameter in the ticket method" do
56
- @project.ticket.should == @klass
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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "taskmapper-zendesk"
8
- s.version = "0.5.0"
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-11"
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.17"
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
- date: 2012-05-11 00:00:00 Z
14
- dependencies:
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: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
18
+ requirements:
20
19
  - - ~>
21
- - !ruby/object:Gem::Version
22
- version: "0.8"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.8'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
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: &id002 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
- requirements:
34
+ requirements:
31
35
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: "2.8"
36
+ - !ruby/object:Gem::Version
37
+ version: '2.8'
34
38
  type: :development
35
39
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
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: &id003 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
- requirements:
50
+ requirements:
42
51
  - - ~>
43
- - !ruby/object:Gem::Version
44
- version: "1.1"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.1'
45
54
  type: :development
46
55
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
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: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
- requirements:
66
+ requirements:
53
67
  - - ~>
54
- - !ruby/object:Gem::Version
55
- version: "1.6"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.6'
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
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: &id005 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
62
81
  none: false
63
- requirements:
82
+ requirements:
64
83
  - - ~>
65
- - !ruby/object:Gem::Version
66
- version: "0.5"
84
+ - !ruby/object:Gem::Version
85
+ version: '0.5'
67
86
  type: :development
68
87
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
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: &id006 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
73
97
  none: false
74
- requirements:
98
+ requirements:
75
99
  - - ~>
76
- - !ruby/object:Gem::Version
77
- version: "1.0"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.0'
78
102
  type: :development
79
103
  prerelease: false
80
- version_requirements: *id006
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: "0"
138
- required_rubygems_version: !ruby/object:Gem::Requirement
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: "0"
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
144
174
  requirements: []
145
-
146
175
  rubyforge_project:
147
- rubygems_version: 1.8.17
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
-