zendesk 0.1.2 → 0.1.3
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/.gitignore +6 -0
- data/CHANGELOG.rdoc +6 -0
- data/Gemfile +4 -8
- data/Rakefile +1 -24
- data/lib/zendesk.rb +55 -8
- data/lib/zendesk/comment.rb +2 -2
- data/lib/zendesk/lib/properties.rb +17 -3
- data/lib/zendesk/lib/rest_object.rb +5 -10
- data/lib/zendesk/resource.rb +7 -1
- data/lib/zendesk/ticket.rb +20 -17
- data/lib/zendesk/user.rb +1 -1
- data/lib/zendesk/version.rb +1 -1
- data/spec/ticket_spec.rb +5 -0
- data/zendesk.gemspec +10 -51
- metadata +15 -56
- data/VERSION +0 -1
data/.gitignore
ADDED
data/CHANGELOG.rdoc
CHANGED
data/Gemfile
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
gemspec
|
3
|
+
|
4
|
+
gem 'rest-client'
|
5
5
|
|
6
|
-
# Add dependencies to develop your gem here.
|
7
|
-
# Include everything needed to run rake, tests, features, etc.
|
8
6
|
group :development do
|
9
|
-
gem "
|
10
|
-
gem "jeweler", "~> 1.6.0"
|
11
|
-
# gem "rcov", ">= 0"
|
7
|
+
gem "rspec"
|
12
8
|
end
|
data/Rakefile
CHANGED
@@ -1,25 +1,2 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
1
|
require 'bundler'
|
5
|
-
|
6
|
-
|
7
|
-
begin
|
8
|
-
Bundler.setup(:default, :development)
|
9
|
-
rescue Bundler::BundlerError => e
|
10
|
-
$stderr.puts e.message
|
11
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
12
|
-
exit e.status_code
|
13
|
-
end
|
14
|
-
require 'rake'
|
15
|
-
|
16
|
-
require 'jeweler'
|
17
|
-
Jeweler::Tasks.new do |gem|
|
18
|
-
gem.name = "zendesk"
|
19
|
-
gem.homepage = "http://github.com/aderyabin/zendesk"
|
20
|
-
gem.license = "MIT"
|
21
|
-
gem.summary = %Q{Ruby wrapper around the Zendesk API}
|
22
|
-
gem.description = %Q{Ruby wrapper around the Zendesk API}
|
23
|
-
gem.email = "deriabin@gmail.com"
|
24
|
-
gem.authors = ["Andrey Deryabin"]
|
25
|
-
end
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/lib/zendesk.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
# Zendesk
|
2
2
|
require 'rubygems'
|
3
|
-
require 'active_support'
|
4
3
|
require 'rest_client'
|
5
4
|
require 'yaml'
|
5
|
+
require 'rexml/document'
|
6
6
|
|
7
7
|
module Zendesk
|
8
|
-
|
8
|
+
|
9
9
|
class ConfigurationNotFound < NameError;
|
10
10
|
end
|
11
|
-
|
12
|
-
|
13
|
-
ZENDESK_ROOT
|
14
|
-
DEFAULT_CONFIG_PATH
|
11
|
+
|
12
|
+
|
13
|
+
ZENDESK_ROOT = File.expand_path((defined?(Rails) && Rails.root.to_s.length > 0) ? Rails.root : ".") unless defined?(ZENDESK_ROOT)
|
14
|
+
DEFAULT_CONFIG_PATH = File.join(ZENDESK_ROOT, 'config', 'zendesk.yml')
|
15
15
|
|
16
16
|
def self.load_configuration(config_path)
|
17
17
|
exists = config_path && File.exists?(config_path)
|
@@ -22,16 +22,63 @@ module Zendesk
|
|
22
22
|
def self.config
|
23
23
|
@configuration ||= load_configuration(DEFAULT_CONFIG_PATH)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def self.resource
|
27
27
|
@resource ||= RestClient::Resource.new config['host'], :user => config['user'], :password => config['password'], :timeout => 20, :open_timeout => 1
|
28
28
|
end
|
29
|
+
|
30
|
+
def self.xml_in(xml_data)
|
31
|
+
xml_elements_to_hash REXML::Document.new(xml_data).root
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.xml_elements_to_hash(element)
|
35
|
+
value = element.text
|
36
|
+
value = case element.attributes['type']
|
37
|
+
when 'integer'
|
38
|
+
value.to_i
|
39
|
+
when 'datetime'
|
40
|
+
DateTime.parse(element.text)
|
41
|
+
else
|
42
|
+
element.text
|
43
|
+
end if value
|
44
|
+
|
45
|
+
if element.elements.count > 0
|
46
|
+
if element.attributes['type'] == 'array'
|
47
|
+
value = element.elements.map{|el| xml_elements_to_hash(el) }
|
48
|
+
else
|
49
|
+
value = {}
|
50
|
+
element.elements.each{|el| value.merge! xml_elements_to_hash(el) }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
{ element.name.gsub('-', '_').to_sym => value }
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.xml_out(hash)
|
57
|
+
doc = REXML::Document.new
|
58
|
+
doc.add_element hash_elements_to_xml(hash.keys[0], hash.values[0])
|
59
|
+
doc.to_s
|
60
|
+
end
|
29
61
|
|
62
|
+
def self.hash_elements_to_xml(key, value)
|
63
|
+
element = REXML::Element.new(key.to_s.gsub('_', '-'))
|
64
|
+
if value.is_a?(Array)
|
65
|
+
element.attributes['type'] = 'array'
|
66
|
+
value.each{ |val| element.add_element hash_elements_to_xml(val.keys[0], val.values[0]) }
|
67
|
+
elsif value.is_a?(Hash)
|
68
|
+
value.each_pair{ |key, v| element.add_element hash_elements_to_xml(key, v) }
|
69
|
+
else
|
70
|
+
element.text = value
|
71
|
+
end
|
72
|
+
element
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
|
30
77
|
autoload :Resource, File.dirname(__FILE__) + '/zendesk/resource.rb'
|
31
78
|
autoload :Comment, File.dirname(__FILE__) + '/zendesk/comment.rb'
|
32
79
|
autoload :Ticket, File.dirname(__FILE__) + '/zendesk/ticket.rb'
|
33
80
|
autoload :User, File.dirname(__FILE__) + '/zendesk/user.rb'
|
34
|
-
|
81
|
+
|
35
82
|
autoload :Constants, File.dirname(__FILE__) + '/zendesk/lib/constants.rb'
|
36
83
|
autoload :RestObject, File.dirname(__FILE__) + '/zendesk/lib/rest_object.rb'
|
37
84
|
autoload :Properties, File.dirname(__FILE__) + '/zendesk/lib/properties.rb'
|
data/lib/zendesk/comment.rb
CHANGED
@@ -13,12 +13,12 @@ class Zendesk::Comment < Zendesk::Resource
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def to_xml
|
16
|
-
{ :value => value, :is_public => is_public }
|
16
|
+
Zendesk.xml_out({:comment => { :value => value, :is_public => is_public }})
|
17
17
|
end
|
18
18
|
|
19
19
|
def save
|
20
20
|
begin
|
21
|
-
response = resource["tickets/#{ticket_id}.xml"].put self.to_xml, :content_type => 'application/xml'
|
21
|
+
response = Zendesk.resource["tickets/#{ticket_id}.xml"].put self.to_xml, :content_type => 'application/xml'
|
22
22
|
return (200..300).include?(response.headers[:status].to_i)
|
23
23
|
rescue Exception => e
|
24
24
|
puts e.message
|
@@ -1,13 +1,27 @@
|
|
1
1
|
module Zendesk::Properties
|
2
2
|
module ClassMethods
|
3
3
|
|
4
|
-
mattr_accessor :_attributes, :_protected_attributes, :_properties, :_datetimes
|
5
|
-
|
6
4
|
@@_attributes = []
|
7
5
|
@@_protected_attributes = []
|
8
6
|
@@_properties = []
|
9
7
|
@@_datetimes = []
|
10
8
|
|
9
|
+
def _attributes
|
10
|
+
@@_attributes
|
11
|
+
end
|
12
|
+
|
13
|
+
def _protected_attributes
|
14
|
+
@@_protected_attributes
|
15
|
+
end
|
16
|
+
|
17
|
+
def _properties
|
18
|
+
@@_properties
|
19
|
+
end
|
20
|
+
|
21
|
+
def _datetimes
|
22
|
+
@@_datetimes
|
23
|
+
end
|
24
|
+
|
11
25
|
def attributes(*vars)
|
12
26
|
@@_attributes.concat vars
|
13
27
|
attr_accessor *vars
|
@@ -46,7 +60,7 @@ module Zendesk::Properties
|
|
46
60
|
|
47
61
|
class_eval <<-END
|
48
62
|
def #{method_name}=(value)
|
49
|
-
@#{method_name}_id = #{method_name.upcase}.
|
63
|
+
@#{method_name}_id = #{method_name.upcase}.key(value)
|
50
64
|
end
|
51
65
|
END
|
52
66
|
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
module Zendesk::RestObject
|
2
2
|
module ClassMethods
|
3
|
-
def create(attrs = {})
|
4
|
-
instance = new(attrs)
|
5
|
-
instance.save
|
6
|
-
end
|
7
|
-
|
8
3
|
def find(id)
|
9
4
|
begin
|
10
5
|
new().load(id)
|
@@ -16,16 +11,16 @@ module Zendesk::RestObject
|
|
16
11
|
end
|
17
12
|
|
18
13
|
module InstanceMethods
|
19
|
-
def
|
20
|
-
self.class.to_s.
|
14
|
+
def model_name
|
15
|
+
self.class.to_s.gsub(/^.*::/, '').downcase
|
21
16
|
end
|
22
17
|
|
23
18
|
def save
|
24
19
|
begin
|
25
20
|
response = if self.id
|
26
|
-
Zendesk.resource["#{
|
21
|
+
Zendesk.resource["#{model_name}s/#{id}.xml"].put self.to_xml, :content_type => 'application/xml'
|
27
22
|
else
|
28
|
-
Zendesk.resource["#{
|
23
|
+
Zendesk.resource["#{model_name}s.xml"].post self.to_xml, :content_type => 'application/xml'
|
29
24
|
end
|
30
25
|
if (200..300).include?(response.headers[:status].to_i)
|
31
26
|
load(id || response.headers[:location].scan(/\d+/).first.to_i)
|
@@ -51,7 +46,7 @@ module Zendesk::RestObject
|
|
51
46
|
|
52
47
|
def load(id)
|
53
48
|
begin
|
54
|
-
data = load_data(Zendesk.resource["#{
|
49
|
+
data = load_data(Zendesk.resource["#{model_name}s/#{id}.xml"].get)[model_name.to_sym]
|
55
50
|
load_attributes(data)
|
56
51
|
load_protected_attributes(data)
|
57
52
|
load_field_entries(data) if respond_to?(:load_field_entries)
|
data/lib/zendesk/resource.rb
CHANGED
data/lib/zendesk/ticket.rb
CHANGED
@@ -8,8 +8,8 @@ class Zendesk::Ticket < Zendesk::Resource
|
|
8
8
|
properties :status, :ticket_type, :priority, :via
|
9
9
|
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
alias :id :nice_id
|
12
|
+
alias :set_tags :current_tags
|
13
13
|
|
14
14
|
def initialize(attrs = {})
|
15
15
|
@comments = []
|
@@ -18,19 +18,21 @@ class Zendesk::Ticket < Zendesk::Resource
|
|
18
18
|
super
|
19
19
|
end
|
20
20
|
|
21
|
-
# Filling field methods from imported data.
|
21
|
+
# Filling custom field methods from imported data.
|
22
22
|
# If field is not pointed in config it will be missed
|
23
23
|
def load_field_entries(data)
|
24
|
-
data[
|
25
|
-
|
26
|
-
|
24
|
+
if data[:ticket_field_entries]
|
25
|
+
data[:ticket_field_entries].each do |field_entry|
|
26
|
+
method_name = @field_ids.key(field_entry[:ticket_field_id])
|
27
|
+
send("#{method_name}=", field_entry[:value]) if method_name
|
28
|
+
end
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
32
|
def load_comments(data)
|
31
33
|
@comments = []
|
32
|
-
data[
|
33
|
-
@comments << Zendesk::Comment.new(comment)
|
34
|
+
data[:comments].each do |comment|
|
35
|
+
@comments << Zendesk::Comment.new(comment[:comment])
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
@@ -53,20 +55,21 @@ class Zendesk::Ticket < Zendesk::Resource
|
|
53
55
|
def to_xml
|
54
56
|
result = {}
|
55
57
|
(attributes - @field_ids.keys).each do |obj|
|
56
|
-
if instance_variable_get(:"@#{obj.to_s}")
|
57
|
-
result[obj.to_s.downcase] =
|
58
|
+
if val = instance_variable_get(:"@#{obj.to_s}")
|
59
|
+
result[obj.to_s.downcase] = val
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
61
|
-
|
63
|
+
ticket_field_entries = []
|
62
64
|
@field_ids.each_pair do |key, value|
|
63
|
-
if instance_variable_get(:"@#{key.to_s}")
|
64
|
-
|
65
|
+
if val = instance_variable_get(:"@#{key.to_s}")
|
66
|
+
ticket_field_entries << { :ticket_field_id => value, :value => val.to_s }
|
65
67
|
end
|
66
68
|
end
|
69
|
+
result[:ticket_field_entries] = ticket_field_entries unless ticket_field_entries.empty?
|
67
70
|
|
68
|
-
result[:set_tags] = current_tags
|
69
|
-
|
71
|
+
result[:set_tags] = current_tags if current_tags
|
72
|
+
Zendesk.xml_out({:ticket => result})
|
70
73
|
end
|
71
74
|
|
72
75
|
def tags
|
@@ -74,14 +77,14 @@ class Zendesk::Ticket < Zendesk::Resource
|
|
74
77
|
end
|
75
78
|
|
76
79
|
def tags=(tags)
|
77
|
-
@current_tags = tags.to_a.join(' ')
|
80
|
+
@current_tags = tags.is_a?(Array) ? tags.to_a.join(' ') : tags
|
78
81
|
end
|
79
82
|
|
80
83
|
def load_fields
|
81
84
|
attr_keys = Zendesk.config['ticket'] || {}
|
82
85
|
@field_ids = {}
|
83
86
|
field_names = attr_keys.keys
|
84
|
-
unless field_names.
|
87
|
+
unless field_names.empty?
|
85
88
|
field_names = field_names.map(&:to_sym)
|
86
89
|
attr_keys.keys.each do |attr_name|
|
87
90
|
@field_ids[attr_name.to_sym] = attr_keys[attr_name]
|
data/lib/zendesk/user.rb
CHANGED
@@ -14,6 +14,6 @@ class Zendesk::User < Zendesk::Resource
|
|
14
14
|
def to_xml
|
15
15
|
result = {}
|
16
16
|
attributes.each{|attr| result[attr] = instance_variable_get(:"@#{attr.to_s}") }
|
17
|
-
|
17
|
+
SimpleXML.xml_out result, 'RootName' =>:user, 'AttrPrefix' => true
|
18
18
|
end
|
19
19
|
end
|
data/lib/zendesk/version.rb
CHANGED
data/spec/ticket_spec.rb
CHANGED
@@ -26,4 +26,9 @@ require File.dirname(__FILE__) + '/../lib/zendesk'
|
|
26
26
|
ticket.ticket_type_id.should == 3
|
27
27
|
end
|
28
28
|
|
29
|
+
it 'should convert to xml' do
|
30
|
+
ticket = Zendesk::Ticket.new( :description => 'ticket_description', :tags => 'one_two' )
|
31
|
+
ticket.to_xml.should == "<ticket><description>ticket_description</description><set-tags>one_two</set-tags></ticket>"
|
32
|
+
end
|
33
|
+
|
29
34
|
end
|
data/zendesk.gemspec
CHANGED
@@ -1,62 +1,21 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "zendesk/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
6
|
s.name = %q{zendesk}
|
8
|
-
s.version =
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
7
|
+
s.version = Zendesk::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
11
9
|
s.authors = ["Andrey Deryabin"]
|
12
|
-
s.date = %q{2011-05-
|
10
|
+
s.date = %q{2011-05-20}
|
11
|
+
s.summary = %q{Ruby wrapper around the Zendesk API}
|
13
12
|
s.description = %q{Ruby wrapper around the Zendesk API}
|
14
13
|
s.email = %q{deriabin@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
"CHANGELOG.rdoc",
|
21
|
-
"Gemfile",
|
22
|
-
"LICENSE.txt",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"lib/zendesk.rb",
|
27
|
-
"lib/zendesk/comment.rb",
|
28
|
-
"lib/zendesk/lib/constants.rb",
|
29
|
-
"lib/zendesk/lib/properties.rb",
|
30
|
-
"lib/zendesk/lib/rest_object.rb",
|
31
|
-
"lib/zendesk/resource.rb",
|
32
|
-
"lib/zendesk/ticket.rb",
|
33
|
-
"lib/zendesk/user.rb",
|
34
|
-
"lib/zendesk/version.rb",
|
35
|
-
"spec/comment_spec.rb",
|
36
|
-
"spec/spec_helper.rb",
|
37
|
-
"spec/ticket_spec.rb",
|
38
|
-
"zendesk.gemspec"
|
39
|
-
]
|
40
14
|
s.homepage = %q{http://github.com/aderyabin/zendesk}
|
41
|
-
s.licenses = ["MIT"]
|
42
|
-
s.require_paths = ["lib"]
|
43
|
-
s.rubygems_version = %q{1.3.7}
|
44
|
-
s.summary = %q{Ruby wrapper around the Zendesk API}
|
45
|
-
|
46
|
-
if s.respond_to? :specification_version then
|
47
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
|
-
s.specification_version = 3
|
49
15
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
|
56
|
-
end
|
57
|
-
else
|
58
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
59
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
|
60
|
-
end
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
61
20
|
end
|
62
21
|
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 2
|
10
|
-
version: 0.1.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.3
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Andrey Deryabin
|
@@ -15,57 +10,25 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-20 00:00:00 +04:00
|
19
14
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
type: :development
|
24
|
-
name: bundler
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 23
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 0
|
34
|
-
- 0
|
35
|
-
version: 1.0.0
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
prerelease: false
|
39
|
-
type: :development
|
40
|
-
name: jeweler
|
41
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
hash: 15
|
47
|
-
segments:
|
48
|
-
- 1
|
49
|
-
- 6
|
50
|
-
- 0
|
51
|
-
version: 1.6.0
|
52
|
-
requirement: *id002
|
15
|
+
dependencies: []
|
16
|
+
|
53
17
|
description: Ruby wrapper around the Zendesk API
|
54
18
|
email: deriabin@gmail.com
|
55
19
|
executables: []
|
56
20
|
|
57
21
|
extensions: []
|
58
22
|
|
59
|
-
extra_rdoc_files:
|
60
|
-
|
61
|
-
- README.rdoc
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
62
25
|
files:
|
26
|
+
- .gitignore
|
63
27
|
- CHANGELOG.rdoc
|
64
28
|
- Gemfile
|
65
29
|
- LICENSE.txt
|
66
30
|
- README.rdoc
|
67
31
|
- Rakefile
|
68
|
-
- VERSION
|
69
32
|
- lib/zendesk.rb
|
70
33
|
- lib/zendesk/comment.rb
|
71
34
|
- lib/zendesk/lib/constants.rb
|
@@ -81,8 +44,8 @@ files:
|
|
81
44
|
- zendesk.gemspec
|
82
45
|
has_rdoc: true
|
83
46
|
homepage: http://github.com/aderyabin/zendesk
|
84
|
-
licenses:
|
85
|
-
|
47
|
+
licenses: []
|
48
|
+
|
86
49
|
post_install_message:
|
87
50
|
rdoc_options: []
|
88
51
|
|
@@ -93,25 +56,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
56
|
requirements:
|
94
57
|
- - ">="
|
95
58
|
- !ruby/object:Gem::Version
|
96
|
-
hash: 3
|
97
|
-
segments:
|
98
|
-
- 0
|
99
59
|
version: "0"
|
100
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
61
|
none: false
|
102
62
|
requirements:
|
103
63
|
- - ">="
|
104
64
|
- !ruby/object:Gem::Version
|
105
|
-
hash: 3
|
106
|
-
segments:
|
107
|
-
- 0
|
108
65
|
version: "0"
|
109
66
|
requirements: []
|
110
67
|
|
111
68
|
rubyforge_project:
|
112
|
-
rubygems_version: 1.
|
69
|
+
rubygems_version: 1.6.2
|
113
70
|
signing_key:
|
114
71
|
specification_version: 3
|
115
72
|
summary: Ruby wrapper around the Zendesk API
|
116
|
-
test_files:
|
117
|
-
|
73
|
+
test_files:
|
74
|
+
- spec/comment_spec.rb
|
75
|
+
- spec/spec_helper.rb
|
76
|
+
- spec/ticket_spec.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.2
|