deepsecurity 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
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