plutora_rest 0.0.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.
- checksums.yaml +7 -0
- data/lib/plutora_rest.rb +65 -0
- data/lib/plutora_rest/sections/changes.rb +268 -0
- data/lib/plutora_rest/sections/lookupfields.rb +61 -0
- data/lib/plutora_rest/sections/page_template.rb +18 -0
- data/lib/plutora_rest/sections/releases.rb +40 -0
- data/lib/plutora_rest/version.rb +3 -0
- metadata +124 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 61ebd77b777f7857b8be2e99bbd7bf3097f5344d
|
4
|
+
data.tar.gz: 64a00d8ed35d9215d775b2860b44b5a59279fc49
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f9b3c783f2343d4ed660e839d0aedbf6efff45e23bc611041b69f56e9b1438b64389de935b69bdb60d5e3c484e23db7d9a57032642cd7045b531e4afebf806f
|
7
|
+
data.tar.gz: 149ebc1e0e15f91f24feeff16dd6140d9965db5b5fde1452f6ed69906dbcde782296efb8fd81112d974354eb4afe834be32d2b19d3915976865258f506ab9663
|
data/lib/plutora_rest.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require "plutora_rest/version"
|
2
|
+
require "rubygems"
|
3
|
+
require 'rest-client'
|
4
|
+
require 'json'
|
5
|
+
require 'active_support/core_ext'
|
6
|
+
require 'pp'
|
7
|
+
require 'plutora_rest/sections/changes.rb'
|
8
|
+
require 'plutora_rest/sections/lookupfields.rb'
|
9
|
+
require 'plutora_rest/sections/releases.rb'
|
10
|
+
|
11
|
+
module PlutoraRest
|
12
|
+
class Calls
|
13
|
+
|
14
|
+
attr_reader :token
|
15
|
+
|
16
|
+
#---- Initialize ----
|
17
|
+
def initialize(opts = {})
|
18
|
+
#- Use to initilze the object and connect to plutora
|
19
|
+
# => token
|
20
|
+
#
|
21
|
+
oauth_url = opts[:oauthURL] || 'https://usoauth.plutora.com/oauth/token'
|
22
|
+
|
23
|
+
params = {'grant_type' => 'password',
|
24
|
+
'client_id' => opts[:client_id],
|
25
|
+
'client_secret' => opts[:client_secret],
|
26
|
+
'username' => opts[:username],
|
27
|
+
'password' => opts[:password]}
|
28
|
+
|
29
|
+
headers = {'Accept' => 'application/json',
|
30
|
+
'Content-Type' => 'application/x-www-form-urlencoded'}
|
31
|
+
|
32
|
+
@base_url= opts[:baseURL] || "https://usapi.plutora.com/"
|
33
|
+
|
34
|
+
rConnect=plutora_post({:url => oauth_url, :params => params, :headers => headers})
|
35
|
+
rConnect=JSON.parse(rConnect)
|
36
|
+
@token=rConnect['access_token']
|
37
|
+
return @token
|
38
|
+
end
|
39
|
+
|
40
|
+
#---- POST REST Call ----
|
41
|
+
def plutora_post(opts)
|
42
|
+
resp=RestClient.post(opts[:url], opts[:params], opts[:headers])
|
43
|
+
return resp
|
44
|
+
end
|
45
|
+
|
46
|
+
#---- Get REST Call ----
|
47
|
+
def plutora_get(opts)
|
48
|
+
resp=RestClient.get(opts[:url], opts[:headers])
|
49
|
+
return resp
|
50
|
+
end
|
51
|
+
|
52
|
+
#---- PUT REST Call ----
|
53
|
+
def plutora_put(opts)
|
54
|
+
resp=RestClient.put(opts[:url], opts[:params], opts[:headers])
|
55
|
+
return resp
|
56
|
+
end
|
57
|
+
|
58
|
+
#---- Format Response into JSON ----
|
59
|
+
def formatResp(opts)
|
60
|
+
json_convert=Hash.from_xml(opts[:xml]).to_json
|
61
|
+
return JSON.parse(json_convert)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,268 @@
|
|
1
|
+
# ----------------------------------------------
|
2
|
+
# - Section: Changes
|
3
|
+
# ----------------------------------------------
|
4
|
+
|
5
|
+
module PlutoraRest
|
6
|
+
class Calls
|
7
|
+
|
8
|
+
#--------------------------
|
9
|
+
#-------- GET CALL --------
|
10
|
+
#--------------------------
|
11
|
+
|
12
|
+
#---- Get Changes ----
|
13
|
+
def get_Changes(opts = {})
|
14
|
+
token=opts[:token] || @token
|
15
|
+
|
16
|
+
url = "#{@base_url}Changes"
|
17
|
+
|
18
|
+
headers = {'Authorization' => 'Bearer ' + token}
|
19
|
+
|
20
|
+
resp=plutora_get({:url => url, :headers => headers})
|
21
|
+
resp=formatResp({:xml => resp})
|
22
|
+
return resp
|
23
|
+
end
|
24
|
+
|
25
|
+
#---- Get Changes By Id ----
|
26
|
+
def get_ChangesById(opts = {})
|
27
|
+
if opts[:id] == nil
|
28
|
+
raise "Changes By Id requires an ID value!"
|
29
|
+
end
|
30
|
+
|
31
|
+
url = "#{@base_url}Changes/#{opts[:id]}"
|
32
|
+
|
33
|
+
headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
|
34
|
+
|
35
|
+
resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
|
36
|
+
return resp
|
37
|
+
end
|
38
|
+
|
39
|
+
#---- Get Changes By Id Additional Informations ----
|
40
|
+
def get_ChangesById_AdditionalInformation(opts = {})
|
41
|
+
if opts[:id] == nil
|
42
|
+
raise "Changes By Id - Additional Information requires an ID value!"
|
43
|
+
end
|
44
|
+
|
45
|
+
url = "#{@base_url}Changes/#{opts[:id]}/additionalInformation"
|
46
|
+
|
47
|
+
headers = {'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}"}
|
48
|
+
|
49
|
+
resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
|
50
|
+
return resp
|
51
|
+
end
|
52
|
+
|
53
|
+
#-------------------------------
|
54
|
+
#---------- PUT CALLS ----------
|
55
|
+
#-------------------------------
|
56
|
+
|
57
|
+
#---- Update Changes By ID ----
|
58
|
+
def update_ChangesById(opts = {})
|
59
|
+
if opts[:id] == nil
|
60
|
+
raise "Changes By Id requires an ID value!"
|
61
|
+
end
|
62
|
+
if opts[:params] == nil
|
63
|
+
raise "Changes By Id requires Parameters!"
|
64
|
+
end
|
65
|
+
|
66
|
+
url = "#{@base_url}Changes/#{opts[:id]}"
|
67
|
+
|
68
|
+
headers = {
|
69
|
+
'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
|
70
|
+
'Accept' => 'application/json',
|
71
|
+
'Content-Type' => 'application/x-www-form-urlencoded'
|
72
|
+
#'Content-Type' => 'application/json'
|
73
|
+
}
|
74
|
+
|
75
|
+
resp=plutora_put({:url => url, :params => opts[:params], :headers => headers})
|
76
|
+
return (resp.code == 204 ? true : false)
|
77
|
+
end
|
78
|
+
|
79
|
+
#---- Update Changes By Id Additional Informations ----
|
80
|
+
def update_ChangesById_AdditionalInformation(opts = {})
|
81
|
+
if opts[:id] == nil
|
82
|
+
raise "Changes By Id - Additional Information requires an ID value!"
|
83
|
+
end
|
84
|
+
if opts[:params] == nil
|
85
|
+
raise "Changes By Id - Additional Information requires Parameters!"
|
86
|
+
end
|
87
|
+
|
88
|
+
url = "#{@base_url}Changes/#{opts[:id]}/additionalInformation"
|
89
|
+
|
90
|
+
headers = {
|
91
|
+
'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
|
92
|
+
'Content-Type' => 'application/json'
|
93
|
+
}
|
94
|
+
|
95
|
+
resp=plutora_put({:url => url, :params => opts[:params], :headers => headers})
|
96
|
+
return (resp.code == 204 ? true : false)
|
97
|
+
end
|
98
|
+
|
99
|
+
#--------------------------------
|
100
|
+
#---------- POST CALLS ----------
|
101
|
+
#--------------------------------
|
102
|
+
|
103
|
+
#---- Create Change ----
|
104
|
+
#TODO: Validate functionality
|
105
|
+
def create_Change(opts = {})
|
106
|
+
if opts[:params] == nil
|
107
|
+
raise "Create Change requires Parameters"
|
108
|
+
end
|
109
|
+
|
110
|
+
url = "#{@base_url}Changes"
|
111
|
+
|
112
|
+
headers = {
|
113
|
+
'Authorization' => "Bearer #{(opts[:token] == nil ? @token : opts[:token])}",
|
114
|
+
'Accept' => 'application/json',
|
115
|
+
'Content-Type' => 'application/x-www-form-urlencoded'
|
116
|
+
}
|
117
|
+
|
118
|
+
resp=plutora_post({:url => url, :params => opts[:params], :headers => headers})
|
119
|
+
return (resp.code == 204 ? true : false)
|
120
|
+
end
|
121
|
+
|
122
|
+
#-----------------------------
|
123
|
+
#---------- Helpers ----------
|
124
|
+
#-----------------------------
|
125
|
+
|
126
|
+
#---- Returns the Additional Information (Id) Value
|
127
|
+
def get_AdditionalInformation_FieldID(opts = {})
|
128
|
+
if opts[:fieldname] == nil
|
129
|
+
raise "get Additional Information (Field ID) options variable 'fieldname' requires a value."
|
130
|
+
end
|
131
|
+
|
132
|
+
sId = nil
|
133
|
+
|
134
|
+
if opts[:data].class == Hash
|
135
|
+
if opts[:data]['Name'] == opts[:fieldname]
|
136
|
+
sID = opts[:data]['Id']
|
137
|
+
end
|
138
|
+
else
|
139
|
+
opts[:data].each do |fields|
|
140
|
+
if fields['Name'] == opts[:fieldname]
|
141
|
+
sID = fields['Id']
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
return (sID == nil ? false : sID)
|
147
|
+
end
|
148
|
+
|
149
|
+
#---- Returns the Additional Information (fields) Value
|
150
|
+
def get_AdditionalInformation_FieldValue(opts = {})
|
151
|
+
if opts[:fieldname] == nil
|
152
|
+
raise "get Additional Information (Field Value) options variable 'fieldname' requires a value."
|
153
|
+
end
|
154
|
+
|
155
|
+
sValue=nil
|
156
|
+
|
157
|
+
if opts[:data].class == Hash
|
158
|
+
if opts[:data]['Name'] == opts[:fieldname]
|
159
|
+
case opts[:data]['DataType']
|
160
|
+
when 'DatePicker'
|
161
|
+
if !opts[:data]['Date'].class == Hash
|
162
|
+
sValue = opts[:data]['Date']
|
163
|
+
end
|
164
|
+
when 'ListField'
|
165
|
+
if opts[:data]['ListItem'].class == Hash
|
166
|
+
if opts[:data]['ListItem'].size > 1
|
167
|
+
sValue opts[:data]['ListItem']['value']
|
168
|
+
end
|
169
|
+
end
|
170
|
+
when 'FreeText'
|
171
|
+
if opts[:data]['Text'].class == String
|
172
|
+
sValue = opts[:data]['Text']
|
173
|
+
end
|
174
|
+
when 'TimePicker'
|
175
|
+
if !opts[:data]['Time'].class == Hash
|
176
|
+
sValue = opts[:data]['Time']
|
177
|
+
end
|
178
|
+
when 'Number'
|
179
|
+
if opts[:data]['Number'].class == String
|
180
|
+
sValue = opts[:data]['Number']
|
181
|
+
end
|
182
|
+
when 'DateTimePicker'
|
183
|
+
if !opts[:data]['DateTime'].class == Hash
|
184
|
+
sValue = opts[:data]['DateTime']
|
185
|
+
end
|
186
|
+
when 'ListSelect'
|
187
|
+
if !opts[:data]['MultilListItem'].class == Hash
|
188
|
+
sValue = opts[:data]['MultilListItem']
|
189
|
+
end
|
190
|
+
else
|
191
|
+
sValue=nil
|
192
|
+
end
|
193
|
+
end
|
194
|
+
else
|
195
|
+
opts[:data].each do |items|
|
196
|
+
if items['Name'] == opts[:fieldname]
|
197
|
+
case items['DataType']
|
198
|
+
when 'DatePicker'
|
199
|
+
if !items['Date'].class == Hash
|
200
|
+
sValue = items['Date']
|
201
|
+
end
|
202
|
+
when 'ListField'
|
203
|
+
if items['ListItem'].class == Hash
|
204
|
+
if items['ListItem'].size > 1
|
205
|
+
sValue = items['ListItem']['Value']
|
206
|
+
end
|
207
|
+
end
|
208
|
+
when 'FreeText'
|
209
|
+
if items['Text'].class == String
|
210
|
+
sValue = items['Text']
|
211
|
+
end
|
212
|
+
when 'TimePicker'
|
213
|
+
if !items['Time'].class == Hash
|
214
|
+
sValue = items['Time']
|
215
|
+
end
|
216
|
+
when 'Number'
|
217
|
+
if items['Number'].class == String
|
218
|
+
sValue = items['Number']
|
219
|
+
end
|
220
|
+
when 'DateTimePicker'
|
221
|
+
if !items['DateTime'].class == Hash
|
222
|
+
sValue = items['DateTime']
|
223
|
+
end
|
224
|
+
when 'ListSelect'
|
225
|
+
if !items['MultilListItem'].class == Hash
|
226
|
+
sValue = items['MultilListItem']
|
227
|
+
end
|
228
|
+
else
|
229
|
+
sValue=nil
|
230
|
+
end
|
231
|
+
break
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
return (sValue == nil ? false : sValue)
|
237
|
+
end
|
238
|
+
|
239
|
+
#---- Returns the System names of the indicated System Role Type
|
240
|
+
def get_Systems_ByRoleType(opts = {})
|
241
|
+
if opts[:roletype] == nil
|
242
|
+
raise "get Systems By Role Type requires a Role Type value."
|
243
|
+
end
|
244
|
+
|
245
|
+
sSystems=''
|
246
|
+
|
247
|
+
if opts[:data].class == Hash
|
248
|
+
if opts[:data]['SystemRoleType'] == opts[:roletype]
|
249
|
+
sSystems= opts[:data]['System']
|
250
|
+
end
|
251
|
+
else
|
252
|
+
opts[:data].each do |systems|
|
253
|
+
if systems['SystemRoleType'] == opts[:roletype]
|
254
|
+
sSystems.concat(";#{systems['System']}")
|
255
|
+
end
|
256
|
+
end
|
257
|
+
sSystems = sSystems[1..-1]
|
258
|
+
end
|
259
|
+
|
260
|
+
if sSystems == ''
|
261
|
+
return false
|
262
|
+
else
|
263
|
+
return sSystems
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
end
|
268
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# ----------------------------------------------
|
2
|
+
# - Section: Lookup Fields
|
3
|
+
# ----------------------------------------------
|
4
|
+
|
5
|
+
module PlutoraRest
|
6
|
+
class Calls
|
7
|
+
|
8
|
+
#--------------------------
|
9
|
+
#-------- GET CALL --------
|
10
|
+
#--------------------------
|
11
|
+
|
12
|
+
#---- Get Lookupfields by Type ----
|
13
|
+
def get_lookupfields_byType(opts = {})
|
14
|
+
if opts[:type] == nil
|
15
|
+
raise "Get Lookup Fields, Type value is required!"
|
16
|
+
end
|
17
|
+
|
18
|
+
url = "#{@base_url}lookupfields/#{opts[:type]}"
|
19
|
+
|
20
|
+
headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
|
21
|
+
|
22
|
+
resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
|
23
|
+
return resp
|
24
|
+
end
|
25
|
+
|
26
|
+
#-----------------------------
|
27
|
+
#---------- Helpers ----------
|
28
|
+
#-----------------------------
|
29
|
+
|
30
|
+
#---- Return Lookup Field Id by Type ----
|
31
|
+
def get_LookupField_ValueID(opts = {})
|
32
|
+
if opts[:type] == nil
|
33
|
+
raise "Get Lookup Field Value Id requires a Type value."
|
34
|
+
end
|
35
|
+
if opts[:value] == nil
|
36
|
+
raise "Get Lookup Field Value Id requires a Value to lookup."
|
37
|
+
end
|
38
|
+
|
39
|
+
sId = ''
|
40
|
+
|
41
|
+
if opts[:data].class == Hash
|
42
|
+
if opts[:data]['Type'] == opts[:type]
|
43
|
+
if opts[:data]['Value'] == opts[:value]
|
44
|
+
sID = opts[:data]['Id']
|
45
|
+
end
|
46
|
+
end
|
47
|
+
else
|
48
|
+
opts[:data].each do |fields|
|
49
|
+
if fields['Type'] == opts[:type]
|
50
|
+
if fields['Value'] == opts[:value]
|
51
|
+
sID = fields['Id']
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
return (sID == '' ? false : sID)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# ----------------------------------------------
|
2
|
+
# - Page: <page name/title>
|
3
|
+
# ----------------------------------------------
|
4
|
+
|
5
|
+
module MrkSfdcSe
|
6
|
+
class Driver
|
7
|
+
|
8
|
+
def click_<name>
|
9
|
+
# -- <description>
|
10
|
+
@driver.find_element(:id => '<id value>').click
|
11
|
+
end
|
12
|
+
|
13
|
+
def navigate_<name>
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# ----------------------------------------------
|
2
|
+
# - Section: Releases
|
3
|
+
# ----------------------------------------------
|
4
|
+
|
5
|
+
module PlutoraRest
|
6
|
+
class Calls
|
7
|
+
|
8
|
+
#--------------------------
|
9
|
+
#-------- GET CALL --------
|
10
|
+
#--------------------------
|
11
|
+
|
12
|
+
#---- Get Releases ----
|
13
|
+
def get_Releases(opts = {})
|
14
|
+
token=opts[:token] || @token
|
15
|
+
|
16
|
+
url = "#{@base_url}releases"
|
17
|
+
|
18
|
+
headers = {'Authorization' => 'Bearer ' + token}
|
19
|
+
|
20
|
+
resp=plutora_get({:url => url, :headers => headers})
|
21
|
+
resp=formatResp({:xml => resp})
|
22
|
+
return resp
|
23
|
+
end
|
24
|
+
|
25
|
+
#---- Get Releases By Id ----
|
26
|
+
def get_ReleasesById(opts = {})
|
27
|
+
if opts[:id] == nil
|
28
|
+
raise "Releases By Id requires an ID value!"
|
29
|
+
end
|
30
|
+
|
31
|
+
url = "#{@base_url}releases/#{opts[:id]}"
|
32
|
+
|
33
|
+
headers = {'Authorization' => 'Bearer ' + (opts[:token] == nil ? @token : opts[:token])}
|
34
|
+
|
35
|
+
resp=formatResp({:xml => plutora_get({:url => url, :headers => headers})})
|
36
|
+
return resp
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: plutora_rest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- ProjectYeti
|
8
|
+
- Knowlesr
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-03-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.6'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.6'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rest-client
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: json
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: active_support/core_ext
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
description: This is a specialized utility for the Plutora platform, that utilizes
|
85
|
+
the REST Call functions for Plutora
|
86
|
+
email:
|
87
|
+
- rmopy@merck.com
|
88
|
+
- knowlesr@rampwebs.com
|
89
|
+
executables: []
|
90
|
+
extensions: []
|
91
|
+
extra_rdoc_files: []
|
92
|
+
files:
|
93
|
+
- lib/plutora_rest.rb
|
94
|
+
- lib/plutora_rest/sections/changes.rb
|
95
|
+
- lib/plutora_rest/sections/lookupfields.rb
|
96
|
+
- lib/plutora_rest/sections/page_template.rb
|
97
|
+
- lib/plutora_rest/sections/releases.rb
|
98
|
+
- lib/plutora_rest/version.rb
|
99
|
+
homepage: http://rubygems.org/gems/plutora_rest
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
requirements: []
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.2.2
|
120
|
+
signing_key:
|
121
|
+
specification_version: 4
|
122
|
+
summary: A specialized utility for the Plutora platform
|
123
|
+
test_files: []
|
124
|
+
has_rdoc:
|