lolsoap 0.1.3 → 0.1.4

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -10,38 +10,35 @@ module LolSoap
10
10
  end
11
11
 
12
12
  def output
13
- if children.any?
13
+ if node.first_element_child
14
14
  children_hash
15
15
  else
16
16
  content
17
17
  end
18
18
  end
19
19
 
20
- def children
21
- @children ||= node.children.select(&:element?)
22
- end
23
-
24
20
  private
25
21
 
26
22
  # @private
27
23
  def children_hash
28
24
  hash = {}
29
- children.each do |child|
25
+ node.element_children.each do |child|
30
26
  element = type.element(child.name)
31
27
  output = self.class.new(child, element.type).output
32
-
33
- if !element.singular?
34
- hash[child.name] ||= []
35
- end
36
-
37
- if hash.include?(child.name) && !(Array === hash[child.name])
38
- hash[child.name] = [hash[child.name]]
39
- end
40
-
41
- if Array === hash[child.name]
42
- hash[child.name] << output unless output.nil?
28
+ val = hash[child.name]
29
+
30
+ if output
31
+ if val
32
+ if val.is_a?(Array)
33
+ val << output
34
+ else
35
+ hash[child.name] = [val, output]
36
+ end
37
+ else
38
+ hash[child.name] = element.singular? ? output : [output]
39
+ end
43
40
  else
44
- hash[child.name] = output
41
+ hash[child.name] = element.singular? ? nil : []
45
42
  end
46
43
  end
47
44
  hash
@@ -54,12 +51,7 @@ module LolSoap
54
51
 
55
52
  # @private
56
53
  def nil_value?
57
- parent.search('./*[@xsi:nil=1]', 'xsi' => "http://www.w3.org/2001/XMLSchema-instance").include?(node)
58
- end
59
-
60
- # @private
61
- def parent
62
- node.ancestors.first
54
+ node.attribute_with_ns('nil', 'http://www.w3.org/2001/XMLSchema-instance')
63
55
  end
64
56
  end
65
57
  end
@@ -10,7 +10,7 @@ class LolSoap::WSDL
10
10
  end
11
11
 
12
12
  def type
13
- wsdl.type(@type_name.split(':').last)
13
+ @type ||= wsdl.type(@type_name.split(':').last)
14
14
  end
15
15
 
16
16
  def singular?
data/lolsoap.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lolsoap"
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jon Leighton"]
12
- s.date = "2012-05-10"
12
+ s.date = "2012-05-17"
13
13
  s.description = "A library for dealing with SOAP requests and responses. We tear our hair out so you don't have to."
14
14
  s.email = "j@jonathanleighton.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolsoap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-10 00:00:00.000000000 Z
12
+ date: 2012-05-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &19657960 !ruby/object:Gem::Requirement
16
+ requirement: &11380260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19657960
24
+ version_requirements: *11380260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &19656880 !ruby/object:Gem::Requirement
27
+ requirement: &11379660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *19656880
35
+ version_requirements: *11379660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &19656060 !ruby/object:Gem::Requirement
38
+ requirement: &11378960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *19656060
46
+ version_requirements: *11378960
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &19654620 !ruby/object:Gem::Requirement
49
+ requirement: &11378100 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *19654620
57
+ version_requirements: *11378100
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: yard
60
- requirement: &19652600 !ruby/object:Gem::Requirement
60
+ requirement: &11392100 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *19652600
68
+ version_requirements: *11392100
69
69
  description: A library for dealing with SOAP requests and responses. We tear our hair
70
70
  out so you don't have to.
71
71
  email: j@jonathanleighton.com
@@ -136,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  segments:
138
138
  - 0
139
- hash: -1228360456934755075
139
+ hash: 4450731572727892655
140
140
  required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements: