deepsecurity 0.0.19 → 0.0.20
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/CHANGELOG.md +15 -0
- data/Gemfile +5 -0
- data/bin/dsc +4 -61
- data/deepsecurity.gemspec +7 -2
- data/dsc.md +20 -18
- data/lib/deepsecurity.rb +11 -12
- data/lib/deepsecurity/manager.rb +55 -122
- data/lib/deepsecurity/soap_interface.rb +57 -0
- data/lib/deepsecurity/transport_object.rb +5 -1
- data/lib/deepsecurity/transport_objects/anti_malware_event.rb +26 -17
- data/lib/deepsecurity/transport_objects/host.rb +45 -36
- data/lib/deepsecurity/transport_objects/host_detail.rb +17 -45
- data/lib/deepsecurity/transport_objects/host_filter.rb +4 -4
- data/lib/deepsecurity/transport_objects/host_group.rb +38 -29
- data/lib/deepsecurity/transport_objects/id_filter.rb +3 -3
- data/lib/deepsecurity/transport_objects/system_event.rb +1 -1
- data/lib/deepsecurity/transport_objects/time_filter.rb +2 -2
- data/lib/deepsecurity/version.rb +1 -1
- data/lib/dsc/anti_malware_event_command.rb +54 -11
- data/lib/dsc/command.rb +388 -72
- data/lib/dsc/host_detail_command.rb +56 -6
- data/lib/savon_helper.rb +30 -1
- data/lib/savon_helper/caching_object.rb +50 -13
- data/lib/savon_helper/dsl.rb +286 -0
- data/lib/savon_helper/mapping_object.rb +89 -339
- data/lib/savon_helper/soap_interface.rb +77 -0
- data/lib/savon_helper/type_mappings.rb +270 -143
- metadata +8 -6
- data/lib/deepsecurity/ds_object.rb +0 -37
@@ -2,93 +2,80 @@
|
|
2
2
|
|
3
3
|
module SavonHelper
|
4
4
|
|
5
|
+
# @abstract MappingObject is an abstract class providing methods to automatically convert from and to savon data.
|
5
6
|
class MappingObject
|
6
|
-
@@mappings = Hash.new()
|
7
7
|
|
8
|
-
|
8
|
+
attr_reader :interface
|
9
9
|
|
10
|
-
|
11
|
-
def send_soap(method, message = {})
|
12
|
-
retryable(:tries => 5, :on => Errno::ECONNRESET) do
|
13
|
-
logger.debug { "#{self.class}\##{__method__}(#{method.inspect}, #{message.inspect})" }
|
14
|
-
response = @client.call method, :message => message
|
15
|
-
return response.to_hash[(method.to_s+"_response").to_sym][(method.to_s+"_return").to_sym]
|
16
|
-
end
|
17
|
-
end
|
10
|
+
extend SavonHelper::DSL
|
18
11
|
|
19
|
-
|
20
|
-
def request_object(method_name, object_class, arguments={})
|
21
|
-
object_class.from_savon_data(send_soap(method_name, arguments))
|
22
|
-
end
|
12
|
+
@@type_mappings = Hash.new { |hash, key| hash[key] = Hash.new }
|
23
13
|
|
24
|
-
|
25
|
-
|
26
|
-
data = send_soap(method_name, arguments)
|
27
|
-
data = data[collection_name] unless collection_name.blank?
|
28
|
-
SavonHelper::ArrayMapping.new(SavonHelper::ObjectMapping.new(object_class)).from_savon_data(data)
|
14
|
+
def initialize(interface=nil)
|
15
|
+
@interface = interface
|
29
16
|
end
|
30
17
|
|
31
|
-
|
18
|
+
BLACK_LIST = [:@interface]
|
32
19
|
|
33
|
-
|
20
|
+
def to_s
|
21
|
+
public_vars = self.instance_variables.reject { |var|
|
22
|
+
BLACK_LIST.include? var
|
23
|
+
}.map { |var|
|
24
|
+
"#{var}=\"#{instance_variable_get(var)}\""
|
25
|
+
}.join(" ")
|
26
|
+
|
27
|
+
"<##{self.class}:#{self.object_id.to_s(8)} #{public_vars}>"
|
28
|
+
end
|
34
29
|
|
35
|
-
#
|
36
|
-
|
37
|
-
#
|
30
|
+
# @!group Mapping
|
31
|
+
|
32
|
+
# Return an initialized instance with the values from the (type-converted) hash.
|
38
33
|
#
|
39
34
|
# @param data [Hash] A hash of simple types as provided by Savon
|
40
35
|
# @return [MappingObject] The initialized instance.
|
41
|
-
def self.
|
42
|
-
instance = self.new()
|
43
|
-
|
44
|
-
|
36
|
+
def self.from_savon(data, interface)
|
37
|
+
instance = self.new(interface)
|
38
|
+
data.each do |key, value|
|
39
|
+
instance.instance_variable_set("@#{key}", self.map_to_native(key, value, interface))
|
40
|
+
end
|
45
41
|
instance
|
46
42
|
end
|
47
43
|
|
48
44
|
# Return the instance as a hash of simple (type-converted) values suitable for Savon.
|
49
45
|
#
|
50
|
-
# @return [Hash] A
|
51
|
-
def
|
46
|
+
# @return [Hash] A hash of simple types.
|
47
|
+
def to_savon
|
52
48
|
hash = Hash.new()
|
53
|
-
|
54
|
-
value =
|
49
|
+
type_mappings.keys.each do |ivar_name|
|
50
|
+
value = map_to_savon(ivar_name, instance_variable_get("@#{ivar_name}"))
|
55
51
|
hash[ivar_name.to_sym] = value unless value.nil?
|
56
52
|
end
|
57
53
|
hash
|
58
54
|
end
|
59
55
|
|
60
|
-
#
|
61
|
-
# @param data [Hash] A hash of simple types as provided by Savon
|
62
|
-
# @return [self]
|
63
|
-
def fill_from_savon_data(data)
|
64
|
-
data.each do |key, value|
|
65
|
-
instance_variable_set("@#{key}", ivar_from_savon_data(key, value))
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# Return TypeMappings specific to the instance's class
|
56
|
+
# Return TypeMappings specific to the class
|
70
57
|
# @return [Hash{Symbol => TypeMapping}]
|
71
|
-
def
|
72
|
-
self
|
58
|
+
def self.type_mappings
|
59
|
+
@@type_mappings[self]
|
73
60
|
end
|
74
61
|
|
75
|
-
# Return
|
62
|
+
# Return TypeMappings.
|
76
63
|
# @return [Hash{Symbol => TypeMapping}]
|
77
|
-
def self.
|
78
|
-
|
79
|
-
return mappings if !mappings.nil?
|
80
|
-
@@mappings[self] = Hash.new()
|
81
|
-
@@mappings[self]
|
64
|
+
def self.all_type_mappings
|
65
|
+
self.superclass.all_type_mappings.merge(type_mappings())
|
82
66
|
end
|
83
67
|
|
68
|
+
# Test if the given class understands the field definition
|
69
|
+
# @param field [String] A dot separeted list of accessors
|
70
|
+
# @return [Boolean]
|
84
71
|
def self.has_attribute_chain(field)
|
85
72
|
return true if self.method_defined?(field)
|
86
73
|
current_class = self
|
87
74
|
field.split('.').map(&:to_sym).all? do |each|
|
88
75
|
# puts "Current Class: #{current_class.inspect}, Field: #{each}"
|
89
76
|
if current_class.method_defined?(each)
|
90
|
-
if current_class.respond_to?(:
|
91
|
-
current_mapping = current_class.
|
77
|
+
if current_class.respond_to?(:type_mappings)
|
78
|
+
current_mapping = current_class.all_type_mappings[each]
|
92
79
|
# puts "Mapping: #{current_mapping}"
|
93
80
|
if !current_mapping.nil?
|
94
81
|
current_class = current_mapping.object_klass
|
@@ -105,317 +92,80 @@ module SavonHelper
|
|
105
92
|
end
|
106
93
|
end
|
107
94
|
|
95
|
+
# Accessors defined by TypeMappings
|
96
|
+
# @return [Array<Symbol>]
|
108
97
|
def self.defined_attributes()
|
109
|
-
self.
|
98
|
+
self.type_mappings.keys
|
110
99
|
end
|
111
100
|
|
101
|
+
# Convert the instance to a JSON representation
|
112
102
|
def to_json(*a)
|
113
103
|
result = {}
|
114
|
-
self.
|
104
|
+
self.type_mappings.keys.each { |key| result[key] = self.send(key).to_json }
|
115
105
|
{
|
116
106
|
'json_class' => self.class.name,
|
117
107
|
'data' => result
|
118
108
|
}.to_json(*a)
|
119
109
|
end
|
120
110
|
|
121
|
-
|
122
|
-
def ivar_from_savon_data(ivar_name, value)
|
123
|
-
mapping = mappings[ivar_name]
|
124
|
-
mapping = SavonHelper.define_missing_type_mapping(self.class, ivar_name, value, mappings) if mapping.nil?
|
125
|
-
return nil if value.nil?
|
126
|
-
mapping.from_savon_data(value)
|
127
|
-
end
|
128
|
-
|
129
|
-
def ivar_to_savon_data(ivar_name, value)
|
130
|
-
mapping = mappings[ivar_name]
|
131
|
-
mapping = SavonHelper.define_missing_type_mapping(self.class, ivar_name, value, mappings) if mapping.nil?
|
132
|
-
return nil if value.nil?
|
133
|
-
return mapping.to_savon_data(value)
|
134
|
-
end
|
135
|
-
|
136
|
-
# @group DSL to define attributes mapping
|
137
|
-
|
138
|
-
# @macro [attach] attr_boolean_accessor
|
139
|
-
# @!attribute [rw] $3
|
140
|
-
# $2
|
141
|
-
# @return [Boolean]
|
142
|
-
# Define a new Boolean accessor
|
143
|
-
# @param accessor [Symbol] The accessor to be created
|
144
|
-
# @param description [String] The description for this accessor
|
145
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
146
|
-
# @return [void]
|
147
|
-
def self.attr_boolean_accessor(accessor, description='', alias_accessor=accessor)
|
148
|
-
create_accessor(accessor, alias_accessor, BooleanMapping.new(description))
|
149
|
-
end
|
150
|
-
|
151
|
-
# @macro [attach] array_boolean_accessor
|
152
|
-
# @!attribute [rw] $3
|
153
|
-
# $2
|
154
|
-
# @return [Array<Boolean>]
|
155
|
-
# Define a new Boolean Array accessor
|
156
|
-
# @param accessor [Symbol] The accessor to be created
|
157
|
-
# @param description [String] The description for this accessor
|
158
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
159
|
-
# @return [void]
|
160
|
-
def self.array_boolean_accessor(accessor, description='', alias_accessor=accessor)
|
161
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(BooleanMapping.new, description))
|
162
|
-
end
|
163
|
-
|
164
|
-
# @macro [attach] attr_datetime_accessor
|
165
|
-
# @!attribute [rw] $3
|
166
|
-
# $2
|
167
|
-
# @return [DateTime]
|
168
|
-
# Define a new DateTime accessor
|
169
|
-
# @param accessor [Symbol] The accessor to be created
|
170
|
-
# @param description [String] The description for this accessor
|
171
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
172
|
-
# @return [void]
|
173
|
-
def self.attr_datetime_accessor(accessor, description='', alias_accessor=accessor)
|
174
|
-
create_accessor(accessor, alias_accessor, DatetimeMapping.new(description))
|
175
|
-
end
|
176
|
-
|
177
|
-
# @macro [attach] array_datetime_accessor
|
178
|
-
# @!attribute [rw] $3
|
179
|
-
# $2
|
180
|
-
# @return [Array<DateTime>]
|
181
|
-
# Define a new DateTime Array accessor
|
182
|
-
# @param accessor [Symbol] The accessor to be created
|
183
|
-
# @param description [String] The description for this accessor
|
184
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
185
|
-
# @return [void]
|
186
|
-
def self.array_datetime_accessor(accessor, description='', alias_accessor=accessor)
|
187
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(DatetimeMapping.new, description))
|
188
|
-
end
|
189
|
-
|
190
|
-
# @macro [attach] attr_double_accessor
|
191
|
-
# @!attribute [rw] $3
|
192
|
-
# $2
|
193
|
-
# @return [float]
|
194
|
-
# Define a new Float accessor
|
195
|
-
# @param accessor [Symbol] The accessor to be created
|
196
|
-
# @param description [String] The description for this accessor
|
197
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
198
|
-
# @return [void]
|
199
|
-
def self.attr_double_accessor(accessor, description='', alias_accessor=accessor)
|
200
|
-
create_accessor(accessor, alias_accessor, FloatMapping.new(description))
|
201
|
-
end
|
202
|
-
|
203
|
-
# @macro [attach] array_double__accessor
|
204
|
-
# @!attribute [rw] $3
|
205
|
-
# $2
|
206
|
-
# @return [Array<float>]
|
207
|
-
# Define a new Float Array accessor
|
208
|
-
# @param accessor [Symbol] The accessor to be created
|
209
|
-
# @param description [String] The description for this accessor
|
210
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
211
|
-
# @return [void]
|
212
|
-
def self.array_double_accessor(accessor, description='', alias_accessor=accessor)
|
213
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(FloatMapping.new, description))
|
214
|
-
end
|
215
|
-
|
216
|
-
# @macro [attach] attr_enum_accessor
|
217
|
-
# @!attribute [rw] $4
|
218
|
-
# $3
|
219
|
-
# @return [$2]
|
220
|
-
# Define a new Enum accessor
|
221
|
-
# @param accessor [Symbol] The accessor to be created
|
222
|
-
# @param enum [Enum] An hash of Enum to Symbol mappings
|
223
|
-
# @param description [String] The description for this accessor
|
224
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
225
|
-
# @return [void]
|
226
|
-
def self.attr_enum_accessor(accessor, enum, description='', alias_accessor=accessor)
|
227
|
-
create_accessor(accessor, alias_accessor, EnumMapping.new(enum, description))
|
228
|
-
end
|
229
|
-
|
230
|
-
# @macro [attach] array_enum_accessor
|
231
|
-
# @!attribute [rw] $4
|
232
|
-
# $3
|
233
|
-
# @return [Array<$2>]
|
234
|
-
# Define a new Enum Array accessor
|
235
|
-
# @param accessor [Symbol] The accessor to be created
|
236
|
-
# @param enum [Enum] An hash of Enum to Symbol mappings
|
237
|
-
# @param description [String] The description for this accessor
|
238
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
239
|
-
# @return [void]
|
240
|
-
def self.array_enum_accessor(accessor, enum, description='', alias_accessor=accessor)
|
241
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(EnumMapping.new(enum), description))
|
242
|
-
end
|
111
|
+
private
|
243
112
|
|
244
|
-
#
|
245
|
-
#
|
246
|
-
#
|
247
|
-
#
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
def self.attr_float_accessor(accessor, description='', alias_accessor=accessor)
|
254
|
-
create_accessor(accessor, alias_accessor, FloatMapping.new(description))
|
113
|
+
# Convert Savon data to ruby value.
|
114
|
+
# @param mapping_name [Symbol] The name of the instance variable
|
115
|
+
# @param data [Hash, Object]
|
116
|
+
# @return [Object]
|
117
|
+
def self.map_to_native(mapping_name, data, interface)
|
118
|
+
mapping = all_type_mappings[mapping_name]
|
119
|
+
mapping = SavonHelper.define_missing_type_mapping(self.class, mapping_name, data, type_mappings, interface) if mapping.nil?
|
120
|
+
return nil if data.nil?
|
121
|
+
mapping.to_native(data, interface)
|
255
122
|
end
|
256
123
|
|
257
|
-
#
|
258
|
-
#
|
259
|
-
#
|
260
|
-
#
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
def self.array_float__accessor(accessor, description='', alias_accessor=accessor)
|
267
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(FloatMapping.new, description))
|
268
|
-
end
|
269
|
-
|
270
|
-
# @macro [attach] attr_integer_accessor
|
271
|
-
# @!attribute [rw] $3
|
272
|
-
# $2
|
273
|
-
# @return [int]
|
274
|
-
# Define a new Integer accessor
|
275
|
-
# @param accessor [Symbol] The accessor to be created
|
276
|
-
# @param description [String] The description for this accessor
|
277
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
278
|
-
# @return [void]
|
279
|
-
def self.attr_integer_accessor(accessor, description='', alias_accessor=accessor)
|
280
|
-
create_accessor(accessor, alias_accessor, IntegerMapping.new(description))
|
281
|
-
end
|
282
|
-
|
283
|
-
# @macro [attach] array_integer_accessor
|
284
|
-
# @!attribute [rw] $3
|
285
|
-
# $2
|
286
|
-
# @return [Array<int>]
|
287
|
-
# Define a new Integer Array accessor
|
288
|
-
# @param accessor [Symbol] The accessor to be created
|
289
|
-
# @param description [String] The description for this accessor
|
290
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
291
|
-
# @return [void]
|
292
|
-
def self.array_integer_accessor(accessor, description='', alias_accessor=accessor)
|
293
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(IntegerMapping.new, description))
|
294
|
-
end
|
295
|
-
|
296
|
-
# @macro [attach] attr_ip_address_accessor
|
297
|
-
# @!attribute [rw] $3
|
298
|
-
# $2
|
299
|
-
# @return [int]
|
300
|
-
# Define a new IP Address accessor
|
301
|
-
# @param accessor [Symbol] The accessor to be created
|
302
|
-
# @param description [String] The description for this accessor
|
303
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
304
|
-
# @return [void]
|
305
|
-
def self.attr_ip_address_accessor(accessor, description='', alias_accessor=accessor)
|
306
|
-
create_accessor(accessor, alias_accessor, IPAddressMapping.new(description))
|
307
|
-
end
|
308
|
-
|
309
|
-
# @macro [attach] array_ip_address_accessor
|
310
|
-
# @!attribute [rw] $3
|
311
|
-
# $2
|
312
|
-
# @return [Array<int>]
|
313
|
-
# Define a new IP Address Array accessor
|
314
|
-
# @param accessor [Symbol] The accessor to be created
|
315
|
-
# @param description [String] The description for this accessor
|
316
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
317
|
-
# @return [void]
|
318
|
-
def self.array_ip_address_accessor(accessor, description='', alias_accessor=accessor)
|
319
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(IPAddressMapping.new, description))
|
320
|
-
end
|
321
|
-
|
322
|
-
# @macro [attach] attr_object_accessor
|
323
|
-
# @!attribute [rw] $4
|
324
|
-
# $3
|
325
|
-
# @return [$2]
|
326
|
-
# Define a new Object accessor
|
327
|
-
# @param accessor [Symbol] The accessor to be created
|
328
|
-
# @param klass [Class] The class of the accessed object
|
329
|
-
# @param description [String] The description for this accessor
|
330
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
331
|
-
# @return [void]
|
332
|
-
def self.attr_object_accessor(accessor, klass, description='', alias_accessor=accessor)
|
333
|
-
create_accessor(accessor, alias_accessor, ObjectMapping.new(klass, description))
|
334
|
-
end
|
335
|
-
|
336
|
-
# @macro [attach] array_object_accessor
|
337
|
-
# @!attribute [rw] $4
|
338
|
-
# $3
|
339
|
-
# @return [Array<$2>]
|
340
|
-
# Define a new Object Array accessor
|
341
|
-
# @param accessor [Symbol] The accessor to be created
|
342
|
-
# @param klass [Class] The class of the accessed object
|
343
|
-
# @param description [String] The description for this accessor
|
344
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
345
|
-
# @return [void]
|
346
|
-
def self.array_object_accessor(accessor, klass, description='', alias_accessor=accessor)
|
347
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(ObjectMapping.new(klass, description)))
|
348
|
-
end
|
349
|
-
|
350
|
-
# @macro [attach] attr_string_accessor
|
351
|
-
# @!attribute [rw] $3
|
352
|
-
# $2
|
353
|
-
# @return [String]
|
354
|
-
# Define a new String accessor
|
355
|
-
# @param accessor [Symbol] The accessor to be created
|
356
|
-
# @param description [String] The description for this accessor
|
357
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
358
|
-
# @return [void]
|
359
|
-
def self.attr_string_accessor(accessor, description='', alias_accessor=accessor)
|
360
|
-
create_accessor(accessor, alias_accessor, StringMapping.new(description))
|
124
|
+
# Convert Ruby value to Savon data.
|
125
|
+
# @param mapping_name [Symbol] The name of the instance variable
|
126
|
+
# @param value [Object]
|
127
|
+
# @return [Hash, Object]
|
128
|
+
def map_to_savon(mapping_name, value)
|
129
|
+
mapping = all_type_mappings[mapping_name]
|
130
|
+
mapping = SavonHelper.define_missing_type_mapping(self.class, mapping_name, value, type_mappings, interface) if mapping.nil?
|
131
|
+
return nil if value.nil?
|
132
|
+
mapping.to_savon(value)
|
361
133
|
end
|
362
134
|
|
363
|
-
|
364
|
-
# @!attribute [rw] $3
|
365
|
-
# $2
|
366
|
-
# @return [Array<String>]
|
367
|
-
# Define a new String Array accessor
|
368
|
-
# @param accessor [Symbol] The accessor to be created
|
369
|
-
# @param description [String] The description for this accessor
|
370
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
371
|
-
# @return [void]
|
372
|
-
def self.array_string_accessor(accessor, description='', alias_accessor=accessor)
|
373
|
-
create_accessor(accessor, alias_accessor, ArrayMapping.new(StringMapping.new, description))
|
374
|
-
end
|
135
|
+
end
|
375
136
|
|
376
|
-
|
377
|
-
# @!attribute [rw] $4
|
378
|
-
# $3
|
379
|
-
# @return [$2]
|
380
|
-
# Define a new "hint" for documentation purposes. Please note, that the method has to be define elsewhere!
|
381
|
-
# @param accessor [Symbol] The accessor to be created
|
382
|
-
# @param description [String] The description for this accessor
|
383
|
-
# @param alias_accessor [Symbol] An Alias for the accessor
|
384
|
-
# @return [void]
|
385
|
-
def self.hint_object_accessor(accessor, klass, description='', alias_accessor=accessor)
|
386
|
-
create_accessor(accessor, alias_accessor, HintMapping.new(klass, description))
|
387
|
-
end
|
137
|
+
end
|
388
138
|
|
389
|
-
|
390
|
-
# @param accessor [Symbol] The accessor
|
391
|
-
# @param alias_accessor [Symbol] The accessor alias
|
392
|
-
# @return [void]
|
393
|
-
def self.create_accessor(accessor, alias_accessor, mapping)
|
394
|
-
mappings[accessor] = mapping
|
395
|
-
attr_accessor accessor
|
396
|
-
create_alias(accessor, alias_accessor)
|
397
|
-
end
|
139
|
+
class Object
|
398
140
|
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
def self.create_alias(accessor, alias_accessor)
|
404
|
-
if alias_accessor != accessor
|
405
|
-
alias_method alias_accessor, accessor
|
406
|
-
alias_method alias_accessor.to_s + "=", accessor.to_s + "="
|
407
|
-
end
|
408
|
-
end
|
141
|
+
# Convert to Savon data.
|
142
|
+
def to_savon
|
143
|
+
self
|
144
|
+
end
|
409
145
|
|
410
|
-
|
146
|
+
# Return TypeMappings specific to the instance's class
|
147
|
+
# @return [Hash{Symbol => TypeMapping}]
|
148
|
+
def type_mappings
|
149
|
+
self.class.type_mappings
|
150
|
+
end
|
411
151
|
|
152
|
+
# Return TypeMappings specific to the class
|
153
|
+
# @return [Hash{Symbol => TypeMapping}]
|
154
|
+
def self.type_mappings
|
155
|
+
{}
|
412
156
|
end
|
413
157
|
|
414
|
-
|
158
|
+
# Return TypeMappings.
|
159
|
+
# @return [Hash{Symbol => TypeMapping}]
|
160
|
+
def all_type_mappings
|
161
|
+
self.class.all_type_mappings()
|
162
|
+
end
|
415
163
|
|
416
|
-
|
417
|
-
|
418
|
-
|
164
|
+
# Return TypeMappings.
|
165
|
+
# @return [Hash{Symbol => TypeMapping}]
|
166
|
+
def self.all_type_mappings
|
167
|
+
{}
|
419
168
|
end
|
169
|
+
|
420
170
|
end
|
421
171
|
|