deepsecurity 0.0.23 → 0.0.24

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 CHANGED
@@ -2,8 +2,12 @@
2
2
 
3
3
  ## CHANGELOG (notable new features or fixes)
4
4
 
5
+ ### 0.0.24
5
6
 
6
- ### 0.0.22hf1
7
+ * Send debug logs to STDERR
8
+ * Unparseable Array should work now
9
+
10
+ ### 0.0.23
7
11
 
8
12
  * Fix call for warn_unparseable_data()
9
13
 
@@ -11,10 +11,9 @@ module DeepSecurity
11
11
  # @param hostname [String] host to connect to
12
12
  # @param port [Integer] port to connect to
13
13
  # @param log_level [LOG_MAPPING] Log Level
14
- def self.server(hostname, port=4119, log_level=nil, logger = nil)
15
- default_logger = Logger.new(STDOUT)
16
- default_logger.level = LOG_MAPPING[log_level] || Logger::INFO
17
- self.new(DeepSecurity::SOAPInterface.new(hostname, port, logger || default_logger, log_level))
14
+ def self.server(hostname, port=4119, log_level=nil, logger = Logger.new(STDERR))
15
+ logger.level = LOG_MAPPING[log_level] || Logger::INFO
16
+ self.new(DeepSecurity::SOAPInterface.new(hostname, port, logger, log_level))
18
17
  end
19
18
 
20
19
  # @param interface [DeepSecurity::SOAPInterface] The initialized interface to direct further calls to.
@@ -1,3 +1,3 @@
1
1
  module DeepSecurity
2
- VERSION = "0.0.23"
2
+ VERSION = "0.0.24"
3
3
  end
@@ -4,7 +4,11 @@ module SavonHelper
4
4
 
5
5
  class SOAPInterface
6
6
 
7
- def initialize(wsdl_url, logger = Logger.new(STDOUT), log_level = nil, options = {})
7
+ def initialize(wsdl_url, logger = Logger.new(STDERR), log_level = nil, options = {})
8
+ HTTPI.log = (!log_level.nil?)
9
+ HTTPI.logger = logger
10
+ HTTPI.log_level = log_level
11
+
8
12
  @client = Savon.client(options.merge({:wsdl => wsdl_url,
9
13
  :logger => logger,
10
14
  :log_level => log_level,
@@ -5,6 +5,8 @@ module SavonHelper
5
5
  # A TypeMapping class is responsible for converting between Savon primitive types and Ruby Types
6
6
  class TypeMapping
7
7
 
8
+ attr_reader :name, :description
9
+
8
10
  # A new instance of TypeMapping with description
9
11
  # @param description [String] A String describing the mapping.
10
12
  # @return [TypeMapping]
@@ -31,12 +33,6 @@ module SavonHelper
31
33
 
32
34
  # @!endgroup
33
35
 
34
- # Return the description
35
- # @return [String]
36
- def description
37
- @description
38
- end
39
-
40
36
  # @abstract Return the class represented by the mapping.
41
37
  # @return [Class]
42
38
  def object_klass
@@ -55,15 +51,6 @@ module SavonHelper
55
51
  raise "#{self.class}##{__method__}() not implemented!"
56
52
  end
57
53
 
58
- # Warn about unparsable mapping
59
- # @todo Check if mappings can be derived from klass
60
- # @param data [Hash, Object] Source Savon data
61
- def self.warn_unparseable_data(data, interface)
62
- message = "Can't parse #{type_string} #{@name.inspect}: #{data.inspect}"
63
- interface.logger.warn(message)
64
- self.default_value()
65
- end
66
-
67
54
  end
68
55
 
69
56
  # BooleanMapping maps Savon data to Ruby Booleans.
@@ -402,9 +389,9 @@ module SavonHelper
402
389
  # @param element_mapping [TypeMapping] TypeMapping for elements
403
390
  # @param data [Hash,Array] Source Savon Data
404
391
  # @return [Array<element_mapping>]
405
- def self.to_native(element_mapping, data, interface)
406
- return [] if data.blank?
392
+ def self.to_native(element_mapping, data, interface, array_mapping = nil)
407
393
  result = []
394
+ return result if data.blank?
408
395
  if data.is_a?(Array)
409
396
  data.each do |element|
410
397
  result << element_mapping.to_native(element, interface)
@@ -414,10 +401,13 @@ module SavonHelper
414
401
  if item.nil?
415
402
  result << element_mapping.to_native(data, interface)
416
403
  else
417
- result = to_native(element_mapping, item, interface)
404
+ result = to_native(element_mapping, item, interface, array_mapping)
418
405
  end
419
406
  else
420
- result = warn_unparseable_data(data, interface)
407
+ message = "Can't parse"
408
+ message = message + " #{array_mapping.type_string} #{array_mapping.name.inspect}" if array_mapping
409
+ message = message + ": #{data.inspect}"
410
+ interface.logger.warn(message)
421
411
  end
422
412
  result
423
413
  end
@@ -437,7 +427,7 @@ module SavonHelper
437
427
  # @param data [Hash, Hash] Source Savon data
438
428
  # @return [Array<@element_mapping>]
439
429
  def to_native(data, interface)
440
- self.class.to_native(@element_mapping, data, interface)
430
+ return self.class.to_native(@element_mapping, data, interface, self)
441
431
  end
442
432
 
443
433
  # @!endgroup
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deepsecurity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -221,7 +221,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
221
221
  version: '0'
222
222
  segments:
223
223
  - 0
224
- hash: -4512780596930233500
224
+ hash: 360528431996802162
225
225
  required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
@@ -230,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
230
  version: '0'
231
231
  segments:
232
232
  - 0
233
- hash: -4512780596930233500
233
+ hash: 360528431996802162
234
234
  requirements: []
235
235
  rubyforge_project:
236
236
  rubygems_version: 1.8.24