autotask_ruby 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +54 -0
- data/.rspec +3 -0
- data/.rubocop.yml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +152 -0
- data/Guardfile +72 -0
- data/LICENSE +21 -0
- data/README.md +73 -0
- data/Rakefile +8 -0
- data/atws-1_6.wsdl +3263 -0
- data/atws.wsdl +3191 -0
- data/autotask_ruby.gemspec +51 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/autotask_ruby.rb +30 -0
- data/lib/autotask_ruby/account.rb +14 -0
- data/lib/autotask_ruby/account_to_do.rb +20 -0
- data/lib/autotask_ruby/action_type.rb +13 -0
- data/lib/autotask_ruby/appointment.rb +20 -0
- data/lib/autotask_ruby/association.rb +38 -0
- data/lib/autotask_ruby/client.rb +91 -0
- data/lib/autotask_ruby/configuration.rb +25 -0
- data/lib/autotask_ruby/constants.rb +7 -0
- data/lib/autotask_ruby/contact.rb +26 -0
- data/lib/autotask_ruby/create_response.rb +5 -0
- data/lib/autotask_ruby/delete_response.rb +5 -0
- data/lib/autotask_ruby/entity.rb +113 -0
- data/lib/autotask_ruby/fields.rb +16 -0
- data/lib/autotask_ruby/project.rb +20 -0
- data/lib/autotask_ruby/query.rb +22 -0
- data/lib/autotask_ruby/query_response.rb +8 -0
- data/lib/autotask_ruby/resource.rb +22 -0
- data/lib/autotask_ruby/response.rb +28 -0
- data/lib/autotask_ruby/service_call.rb +24 -0
- data/lib/autotask_ruby/service_call_ticket.rb +11 -0
- data/lib/autotask_ruby/service_call_ticket_resource.rb +11 -0
- data/lib/autotask_ruby/task.rb +19 -0
- data/lib/autotask_ruby/ticket.rb +18 -0
- data/lib/autotask_ruby/version.rb +5 -0
- data/lib/autotask_ruby/zone_info.rb +31 -0
- metadata +273 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
# Converts Autotask Entity Fields into methods.
|
5
|
+
module Fields
|
6
|
+
def field(method_name)
|
7
|
+
inst_variable_name = "@#{method_name}".to_sym
|
8
|
+
define_method method_name do
|
9
|
+
instance_variable_get inst_variable_name
|
10
|
+
end
|
11
|
+
define_method "#{method_name}=" do |new_value|
|
12
|
+
instance_variable_set inst_variable_name, new_value
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
|
5
|
+
# Represents the Autotask Entity Project
|
6
|
+
class Project
|
7
|
+
include Entity
|
8
|
+
|
9
|
+
FIELDS = %i[id ProjectName AccountID Type ProjectNumber Description CreateDateTime StartDateTime
|
10
|
+
EndDateTime Duration EstimatedTime Status ProjectLeadResourceID StatusDetail StatusDateTime].freeze
|
11
|
+
.each do |field|
|
12
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def post_initialize
|
16
|
+
has_many :tasks
|
17
|
+
belongs_to :account
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
module Query
|
5
|
+
def query(entity_type, field = 'id', op = 'equals', value)
|
6
|
+
result = @client.soap_client.call(:query, message: "<sXML><![CDATA[<queryxml><entity>#{entity_type}</entity><query><field>#{field}<expression op=\"#{op}\">#{value}</expression></field></query></queryxml>]]></sXML>")
|
7
|
+
AutotaskRuby::QueryResponse.new(@client, result)
|
8
|
+
end
|
9
|
+
|
10
|
+
# @param entity, id
|
11
|
+
# pass in the entity_type, I.E. AccountToDo, Resource, etc. and the ID of the entity.
|
12
|
+
# @return Entity
|
13
|
+
# Returns a single Entity if a match was found.
|
14
|
+
# Returns nil if no match is found.
|
15
|
+
def find(entity, field = 'id', id)
|
16
|
+
response = query(entity, field, id)
|
17
|
+
return nil if response.entities.empty?
|
18
|
+
|
19
|
+
response.entities.first
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
# Represents the Autotask Entity Resource
|
5
|
+
class Resource
|
6
|
+
include AutotaskRuby::Entity
|
7
|
+
include AutotaskRuby::Query
|
8
|
+
|
9
|
+
FIELDS = %i[id Email Email2 Email3 FirstName HomePhone Initials LastName LocationID MiddleName
|
10
|
+
MobilePhone OfficeExtension OfficePhone ResourceType Title UserName UserType Active].freeze
|
11
|
+
.each do |field|
|
12
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def post_initialize
|
16
|
+
has_many :account_to_dos, foreign_key: 'AssignedToResourceID'
|
17
|
+
has_many :appointments, foreign_key: 'ResourceID'
|
18
|
+
has_many :tickets, foreign_key: 'AssignedResourceID'
|
19
|
+
has_many :tasks, foreign_key: 'AssignedResourceID'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module AutotaskRuby
|
2
|
+
module Response
|
3
|
+
include Constants
|
4
|
+
attr_accessor :entity_type, :errors, :return_code, :entities
|
5
|
+
|
6
|
+
def initialize(client, response)
|
7
|
+
@client = client
|
8
|
+
@entities = []
|
9
|
+
@errors = response.xpath('//Autotask:Errors', Autotask: AutotaskRuby.configuration.namespace).text
|
10
|
+
@return_code = response.xpath('//Autotask:ReturnCode', Autotask: AutotaskRuby.configuration.namespace).text.to_i
|
11
|
+
@entity_type = response.xpath('//Autotask:EntityResultType', Autotask: AutotaskRuby.configuration.namespace).text.classify
|
12
|
+
parse_entities(response.xpath('//Autotask:Entity', Autotask: AutotaskRuby.configuration.namespace))
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def parse_entities(results)
|
18
|
+
return [] if results.blank?
|
19
|
+
|
20
|
+
klass = ('AutotaskRuby::' + results.first.attribute('type').to_s).constantize
|
21
|
+
results.collect do |entity|
|
22
|
+
obj = klass.new(client: @client)
|
23
|
+
obj.build(entity)
|
24
|
+
@entities.push(obj)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module AutotaskRuby
|
2
|
+
# Represents the Autotask Entity ServiceCall
|
3
|
+
class ServiceCall
|
4
|
+
include Entity
|
5
|
+
include Query
|
6
|
+
|
7
|
+
FIELDS = %i[id AccountID StartDateTime EndDateTime Description Complete CreateDateTime LastModifiedDateTime Duration Status].freeze
|
8
|
+
.each do |field|
|
9
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns the associated ResourceID.
|
13
|
+
def resource_id
|
14
|
+
service_call_ticket = find('ServiceCallTicket', 'ServiceCallId', self.id)
|
15
|
+
service_call_ticket_resource = find('ServiceCallTicketResource', 'ServiceCallTicketId', service_call_ticket.id)
|
16
|
+
service_call_ticket_resource.resource_id
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns the associated Resource
|
20
|
+
def resource
|
21
|
+
find('Resource', resource_id)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module AutotaskRuby
|
2
|
+
# Represents the Autotask Entity ServiceCallTicketResource
|
3
|
+
class ServiceCallTicketResource
|
4
|
+
include Entity
|
5
|
+
|
6
|
+
FIELDS = %i[id ServiceCallTicketID ResourceID].freeze
|
7
|
+
.each do |field|
|
8
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
# Represents the Autotask Entity Task
|
5
|
+
class Task
|
6
|
+
include Entity
|
7
|
+
|
8
|
+
FIELDS = %i[id AllocationCodeID AssignedResourceID CreateDateTime DepartmentID Description EstimatedHours
|
9
|
+
LastActivityDateTime ProjectID Status TaskNumber TaskType Title ].freeze
|
10
|
+
.each do |field|
|
11
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def post_initialize
|
15
|
+
belongs_to :resource
|
16
|
+
belongs_to :project
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
# Represents the Autotask Entity Ticket
|
5
|
+
class Ticket
|
6
|
+
include Entity
|
7
|
+
|
8
|
+
FIELDS = %i[id AccountID ContactID CreateDate Description DueDateTime LastActivityDate AssignedResourceID Status TicketNumber Title].freeze
|
9
|
+
.each do |field|
|
10
|
+
self.attr_accessor :"#{field.to_s.underscore}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def post_initialize
|
14
|
+
belongs_to :account
|
15
|
+
belongs_to :contact
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AutotaskRuby
|
4
|
+
class ZoneInfo
|
5
|
+
attr_reader :raw_result
|
6
|
+
|
7
|
+
ENDPOINT = 'https://webservices.autotask.net/ATServices/1.5/atws.asmx'
|
8
|
+
|
9
|
+
def initialize(username)
|
10
|
+
@client = Savon.client(wsdl: './atws.wsdl', endpoint: ENDPOINT)
|
11
|
+
@raw_result = @client.call(:get_zone_info, message: { 'UserName' => username })
|
12
|
+
@zone_info = @raw_result.body[:get_zone_info_response][:get_zone_info_result]
|
13
|
+
end
|
14
|
+
|
15
|
+
def error_code
|
16
|
+
@zone_info[:error_code].to_i
|
17
|
+
end
|
18
|
+
|
19
|
+
def web_url
|
20
|
+
@zone_info[:web_url]
|
21
|
+
end
|
22
|
+
|
23
|
+
def url
|
24
|
+
@zone_info[:url]
|
25
|
+
end
|
26
|
+
|
27
|
+
def method_missing(method, *_args)
|
28
|
+
@zone_info[method]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,273 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: autotask_ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jared L Jennings
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-01-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: savon
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.12'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: awesome_print
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.8'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.8'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.17'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.17'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dotenv
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.5'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.15'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.15'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '4.7'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '4.7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.31'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.31'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rake
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '12.3'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '12.3'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.8'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.8'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.62'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.62'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: webmock
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '3.5'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '3.5'
|
195
|
+
description: A ruby client for the Autotask API. The client tries to use a full-featured
|
196
|
+
approach.
|
197
|
+
email:
|
198
|
+
- jared@jaredjennings.org
|
199
|
+
executables: []
|
200
|
+
extensions: []
|
201
|
+
extra_rdoc_files: []
|
202
|
+
files:
|
203
|
+
- ".gitignore"
|
204
|
+
- ".rspec"
|
205
|
+
- ".rubocop.yml"
|
206
|
+
- ".ruby-gemset"
|
207
|
+
- ".ruby-version"
|
208
|
+
- ".travis.yml"
|
209
|
+
- CODE_OF_CONDUCT.md
|
210
|
+
- Gemfile
|
211
|
+
- Gemfile.lock
|
212
|
+
- Guardfile
|
213
|
+
- LICENSE
|
214
|
+
- README.md
|
215
|
+
- Rakefile
|
216
|
+
- atws-1_6.wsdl
|
217
|
+
- atws.wsdl
|
218
|
+
- autotask_ruby.gemspec
|
219
|
+
- bin/console
|
220
|
+
- bin/setup
|
221
|
+
- lib/autotask_ruby.rb
|
222
|
+
- lib/autotask_ruby/account.rb
|
223
|
+
- lib/autotask_ruby/account_to_do.rb
|
224
|
+
- lib/autotask_ruby/action_type.rb
|
225
|
+
- lib/autotask_ruby/appointment.rb
|
226
|
+
- lib/autotask_ruby/association.rb
|
227
|
+
- lib/autotask_ruby/client.rb
|
228
|
+
- lib/autotask_ruby/configuration.rb
|
229
|
+
- lib/autotask_ruby/constants.rb
|
230
|
+
- lib/autotask_ruby/contact.rb
|
231
|
+
- lib/autotask_ruby/create_response.rb
|
232
|
+
- lib/autotask_ruby/delete_response.rb
|
233
|
+
- lib/autotask_ruby/entity.rb
|
234
|
+
- lib/autotask_ruby/fields.rb
|
235
|
+
- lib/autotask_ruby/project.rb
|
236
|
+
- lib/autotask_ruby/query.rb
|
237
|
+
- lib/autotask_ruby/query_response.rb
|
238
|
+
- lib/autotask_ruby/resource.rb
|
239
|
+
- lib/autotask_ruby/response.rb
|
240
|
+
- lib/autotask_ruby/service_call.rb
|
241
|
+
- lib/autotask_ruby/service_call_ticket.rb
|
242
|
+
- lib/autotask_ruby/service_call_ticket_resource.rb
|
243
|
+
- lib/autotask_ruby/task.rb
|
244
|
+
- lib/autotask_ruby/ticket.rb
|
245
|
+
- lib/autotask_ruby/version.rb
|
246
|
+
- lib/autotask_ruby/zone_info.rb
|
247
|
+
homepage: https://github.com/trepidity/autotask_ruby
|
248
|
+
licenses:
|
249
|
+
- MIT
|
250
|
+
metadata:
|
251
|
+
homepage_uri: https://github.com/trepidity/autotask_ruby
|
252
|
+
source_code_uri: https://github.com/trepidity/autotask_ruby
|
253
|
+
post_install_message:
|
254
|
+
rdoc_options: []
|
255
|
+
require_paths:
|
256
|
+
- lib
|
257
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0'
|
262
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
263
|
+
requirements:
|
264
|
+
- - ">="
|
265
|
+
- !ruby/object:Gem::Version
|
266
|
+
version: '0'
|
267
|
+
requirements: []
|
268
|
+
rubyforge_project:
|
269
|
+
rubygems_version: 2.7.8
|
270
|
+
signing_key:
|
271
|
+
specification_version: 4
|
272
|
+
summary: A ruby client for the Autotask API
|
273
|
+
test_files: []
|