rt-client 0.7.2 → 0.7.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.
- checksums.yaml +4 -4
- data/rt_client.rb +44 -8
- data/rtxmlsrv.rb +30 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1f1ed8631dd3ae08e71910888b555c9eac6e376
|
4
|
+
data.tar.gz: 5a133e46eccc857735dc20a53dc7878294905525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da18cc6fb24203209923458ddc0030652c21a3765dbe1a011b37a3daaa78056b08daf123a597761e283ce398c55db5852699cbbed4625f04c366b4d5d934b932
|
7
|
+
data.tar.gz: dfa5002402f2de2eeb51e5c89de0715a30e143446b66f5a0482d011a35af099890999722b7cdbbc2142d14176e60b771a6af0f9b7e89869ae77510a2177292c5
|
data/rt_client.rb
CHANGED
@@ -34,7 +34,7 @@ require "rest_client"
|
|
34
34
|
|
35
35
|
class RT_Client
|
36
36
|
|
37
|
-
UA = "Mozilla/5.0 ruby RT Client Interface 0.7.
|
37
|
+
UA = "Mozilla/5.0 ruby RT Client Interface 0.7.3"
|
38
38
|
attr_reader :status, :site, :version, :cookies, :server, :user, :cookie
|
39
39
|
|
40
40
|
# Create a new RT_Client object. Load up our stored cookie and check it.
|
@@ -67,7 +67,7 @@ class RT_Client
|
|
67
67
|
# cookies=<directory>
|
68
68
|
def initialize(*params)
|
69
69
|
@boundary = "----xYzZY#{rand(1000000).to_s}xYzZY"
|
70
|
-
@version = "0.7.
|
70
|
+
@version = "0.7.3"
|
71
71
|
@status = "Not connected"
|
72
72
|
@server = "http://localhost/"
|
73
73
|
@user = "rt_user"
|
@@ -476,11 +476,8 @@ class RT_Client
|
|
476
476
|
id = id.to_s
|
477
477
|
id = $~[1] if id =~ /ticket\/(\d+)/
|
478
478
|
resp = @site["ticket/#{id}/history?format=#{format[0,1]}"].get
|
479
|
-
resp
|
480
|
-
|
481
|
-
resp.gsub!(0x1E.chr,'[RS]')
|
482
|
-
resp.gsub!(0x1F.chr,'[US]')
|
483
|
-
|
479
|
+
resp = sterilize(resp)
|
480
|
+
|
484
481
|
if format[0,1] == "s"
|
485
482
|
if comments
|
486
483
|
h = resp.split("\n").select{ |l| l =~ /^\d+:/ }
|
@@ -560,6 +557,7 @@ class RT_Client
|
|
560
557
|
end
|
561
558
|
reply = {}
|
562
559
|
resp = @site["ticket/#{id}/history/id/#{history}"].get
|
560
|
+
resp = sterilize(resp)
|
563
561
|
return reply if resp =~ /not related/ # history id must be related to the ticket id
|
564
562
|
resp.gsub!(/RT\/\d+\.\d+\.\d+\s\d{3}\s.*\n\n/,"") # toss the HTTP response
|
565
563
|
resp.gsub!(/^#.*?\n\n/,"") # toss the 'total" line
|
@@ -783,7 +781,7 @@ class RT_Client
|
|
783
781
|
ln_a = ln.split(/:/,2)
|
784
782
|
ln_a.map! {|item| item.strip}
|
785
783
|
ln_a[0].downcase!
|
786
|
-
ret[ln_a[0]] = ln_a[1]
|
784
|
+
ret[ln_a[0]] = ln_a[1]
|
787
785
|
end
|
788
786
|
|
789
787
|
return ret
|
@@ -830,6 +828,44 @@ class RT_Client
|
|
830
828
|
return payload
|
831
829
|
end
|
832
830
|
|
831
|
+
# Helper to replace control characters with string representations
|
832
|
+
# When Microsoft XML libraries hit these in an XML response, bad
|
833
|
+
# things happen.
|
834
|
+
def sterilize(str)
|
835
|
+
str.gsub!(0x00.chr,'[NUL]')
|
836
|
+
str.gsub!(0x01.chr,'[SOH]')
|
837
|
+
str.gsub!(0x02.chr,'[STX]')
|
838
|
+
str.gsub!(0x03.chr,'[ETX]')
|
839
|
+
str.gsub!(0x04.chr,'[EOT]')
|
840
|
+
str.gsub!(0x05.chr,'[ENQ]')
|
841
|
+
str.gsub!(0x06.chr,'[ACK]')
|
842
|
+
str.gsub!(0x07.chr,'[BEL]')
|
843
|
+
# 0x08 is backspace
|
844
|
+
# 0x09 is TAB
|
845
|
+
# 0x10 is line feed
|
846
|
+
str.gsub!(0x0B.chr,'[VT]')
|
847
|
+
# 0x0c is form feed
|
848
|
+
# 0x0d is carriage return
|
849
|
+
str.gsub!(0x0E.chr,'[SO]')
|
850
|
+
str.gsub!(0x0F.chr,'[SI]')
|
851
|
+
str.gsub!(0x10.chr,'[DLE]')
|
852
|
+
str.gsub!(0x11.chr,'[DC1]')
|
853
|
+
str.gsub!(0x12.chr,'[DC2]')
|
854
|
+
str.gsub!(0x13.chr,'[DC3]')
|
855
|
+
str.gsub!(0x14.chr,'[DC4]')
|
856
|
+
str.gsub!(0x15.chr,'[NAK]')
|
857
|
+
str.gsub!(0x16.chr,'[SYN]')
|
858
|
+
str.gsub!(0x17.chr,'[ETB]')
|
859
|
+
str.gsub!(0x18.chr,'[CAN]')
|
860
|
+
str.gsub!(0x19.chr,'[EM]')
|
861
|
+
str.gsub!(0x1a.chr,'[SUB]')
|
862
|
+
str.gsub!(0x1C.chr,'[FS]')
|
863
|
+
str.gsub!(0x1D.chr,'[GS]')
|
864
|
+
str.gsub!(0x1E.chr,'[RS]')
|
865
|
+
str.gsub!(0x1F.chr,'[US]')
|
866
|
+
str
|
867
|
+
end
|
868
|
+
|
833
869
|
end
|
834
870
|
|
835
871
|
|
data/rtxmlsrv.rb
CHANGED
@@ -55,6 +55,8 @@ class TicketSrv
|
|
55
55
|
struct.remapkeys!
|
56
56
|
if struct.has_key? :user and struct.has_key? :pass
|
57
57
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
58
|
+
struct.delete(:user)
|
59
|
+
struct.delete(:pass)
|
58
60
|
else
|
59
61
|
rt = RT_Client.new
|
60
62
|
end
|
@@ -69,6 +71,8 @@ class TicketSrv
|
|
69
71
|
struct.remapkeys!
|
70
72
|
if struct.has_key? :user and struct.has_key? :pass
|
71
73
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
74
|
+
struct.delete(:user)
|
75
|
+
struct.delete(:pass)
|
72
76
|
else
|
73
77
|
rt = RT_Client.new
|
74
78
|
end
|
@@ -83,6 +87,8 @@ class TicketSrv
|
|
83
87
|
struct.remapkeys!
|
84
88
|
if struct.has_key? :user and struct.has_key? :pass
|
85
89
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
90
|
+
struct.delete(:user)
|
91
|
+
struct.delete(:pass)
|
86
92
|
else
|
87
93
|
rt = RT_Client.new
|
88
94
|
end
|
@@ -96,6 +102,8 @@ class TicketSrv
|
|
96
102
|
struct.remapkeys!
|
97
103
|
if struct.has_key? :user and struct.has_key? :pass
|
98
104
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
105
|
+
struct.delete(:user)
|
106
|
+
struct.delete(:pass)
|
99
107
|
else
|
100
108
|
rt = RT_Client.new
|
101
109
|
end
|
@@ -109,6 +117,8 @@ class TicketSrv
|
|
109
117
|
struct.remapkeys!
|
110
118
|
if struct.has_key? :user and struct.has_key? :pass
|
111
119
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
120
|
+
struct.delete(:user)
|
121
|
+
struct.delete(:pass)
|
112
122
|
else
|
113
123
|
rt = RT_Client.new
|
114
124
|
end
|
@@ -122,6 +132,8 @@ class TicketSrv
|
|
122
132
|
struct.remapkeys!
|
123
133
|
if struct.has_key? :user and struct.has_key? :pass
|
124
134
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
135
|
+
struct.delete(:user)
|
136
|
+
struct.delete(:pass)
|
125
137
|
else
|
126
138
|
rt = RT_Client.new
|
127
139
|
end
|
@@ -135,6 +147,8 @@ class TicketSrv
|
|
135
147
|
struct.remapkeys!
|
136
148
|
if struct.has_key? :user and struct.has_key? :pass
|
137
149
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
150
|
+
struct.delete(:user)
|
151
|
+
struct.delete(:pass)
|
138
152
|
else
|
139
153
|
rt = RT_Client.new
|
140
154
|
end
|
@@ -148,6 +162,8 @@ class TicketSrv
|
|
148
162
|
struct.remapkeys!
|
149
163
|
if struct.has_key? :user and struct.has_key? :pass
|
150
164
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
165
|
+
struct.delete(:user)
|
166
|
+
struct.delete(:pass)
|
151
167
|
else
|
152
168
|
rt = RT_Client.new
|
153
169
|
end
|
@@ -161,6 +177,8 @@ class TicketSrv
|
|
161
177
|
struct.remapkeys!
|
162
178
|
if struct.has_key? :user and struct.has_key? :pass
|
163
179
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
180
|
+
struct.delete(:user)
|
181
|
+
struct.delete(:pass)
|
164
182
|
else
|
165
183
|
rt = RT_Client.new
|
166
184
|
end
|
@@ -174,6 +192,8 @@ class TicketSrv
|
|
174
192
|
struct.remapkeys!
|
175
193
|
if struct.has_key? :user and struct.has_key? :pass
|
176
194
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
195
|
+
struct.delete(:user)
|
196
|
+
struct.delete(:pass)
|
177
197
|
else
|
178
198
|
rt = RT_Client.new
|
179
199
|
end
|
@@ -187,6 +207,8 @@ class TicketSrv
|
|
187
207
|
struct.remapkeys!
|
188
208
|
if struct.has_key? :user and struct.has_key? :pass
|
189
209
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
210
|
+
struct.delete(:user)
|
211
|
+
struct.delete(:pass)
|
190
212
|
else
|
191
213
|
rt = RT_Client.new
|
192
214
|
end
|
@@ -200,6 +222,8 @@ class TicketSrv
|
|
200
222
|
struct.remapkeys!
|
201
223
|
if struct.has_key? :user and struct.has_key? :pass
|
202
224
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
225
|
+
struct.delete(:user)
|
226
|
+
struct.delete(:pass)
|
203
227
|
else
|
204
228
|
rt = RT_Client.new
|
205
229
|
end
|
@@ -213,6 +237,8 @@ class TicketSrv
|
|
213
237
|
struct.remapkeys!
|
214
238
|
if struct.has_key? :user and struct.has_key? :pass
|
215
239
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
240
|
+
struct.delete(:user)
|
241
|
+
struct.delete(:pass)
|
216
242
|
else
|
217
243
|
rt = RT_Client.new
|
218
244
|
end
|
@@ -226,6 +252,8 @@ class TicketSrv
|
|
226
252
|
struct.remapkeys!
|
227
253
|
if struct.has_key? :user and struct.has_key? :pass
|
228
254
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
255
|
+
struct.delete(:user)
|
256
|
+
struct.delete(:pass)
|
229
257
|
else
|
230
258
|
rt = RT_Client.new
|
231
259
|
end
|
@@ -239,6 +267,8 @@ class TicketSrv
|
|
239
267
|
struct.remapkeys!
|
240
268
|
if struct.has_key? :user and struct.has_key? :pass
|
241
269
|
rt = RT_Client.new(:user => struct[:user], :pass => struct[:pass])
|
270
|
+
struct.delete(:user)
|
271
|
+
struct.delete(:pass)
|
242
272
|
else
|
243
273
|
rt = RT_Client.new
|
244
274
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rt-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Lahti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|