lolsoap 0.3.1 → 0.3.2

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.3.1
1
+ 0.3.2
@@ -57,7 +57,7 @@ module LolSoap
57
57
 
58
58
  def base_type
59
59
  @base_type ||= begin
60
- if extension = node.at_xpath('xs:complexContent/xs:extension/@base', parser.ns)
60
+ if extension = node.at_xpath('*/xs:extension/@base', parser.ns)
61
61
  parser.type(extension.to_s)
62
62
  end
63
63
  end
@@ -150,9 +150,10 @@ module LolSoap
150
150
 
151
151
  def type(name)
152
152
  name = prefix_and_name(name).last
153
- node = doc.at_xpath("//xs:complexType[@name='#{name}']", ns)
154
- target_namespace = node.at_xpath('parent::xs:schema/@targetNamespace', ns).to_s
155
- Type.new(self, node, target_namespace)
153
+ if node = doc.at_xpath("//xs:complexType[@name='#{name}']", ns)
154
+ target_namespace = node.at_xpath('parent::xs:schema/@targetNamespace', ns).to_s
155
+ Type.new(self, node, target_namespace)
156
+ end
156
157
  end
157
158
 
158
159
  def elements
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lolsoap"
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
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 = "2013-06-25"
12
+ s.date = "2013-06-27"
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 = [
@@ -13,10 +13,17 @@
13
13
  <schema targetNamespace="http://example.com/stockquote.xsd"
14
14
  xmlns:xsd3="http://example.com/stockquote.xsd"
15
15
  xmlns="http://www.w3.org/2001/XMLSchema">
16
+ <complexType name="Price">
17
+ <simpleContent>
18
+ <extension base="xs:string">
19
+ <attribute name="currency" type="xs:string"/>
20
+ </extension>
21
+ </simpleContent>
22
+ </complexType>
16
23
  <element name="TradePrice">
17
24
  <complexType>
18
25
  <all>
19
- <element name="xsd3:price" type="xs:float"/>
26
+ <element name="xsd3:price" type="Price"/>
20
27
  </all>
21
28
  </complexType>
22
29
  </element>
@@ -12,7 +12,7 @@ module LolSoap
12
12
  o.action.must_equal 'http://example.com/GetLastTradePrice'
13
13
  end
14
14
 
15
- subject.types.length.must_equal 3
15
+ subject.types.length.must_equal 4
16
16
  subject.types['xsd1:TradePriceRequest'].tap do |t|
17
17
  t.prefix.must_equal 'xsd1'
18
18
  end
@@ -33,6 +33,12 @@ module LolSoap
33
33
  describe '#types' do
34
34
  it 'returns the types, with attributes and namespace' do
35
35
  subject.types.must_equal({
36
+ 'xsd1:Price' => {
37
+ :prefix => 'xsd1',
38
+ :name => 'Price',
39
+ :elements => {},
40
+ :attributes => ['currency']
41
+ },
36
42
  'xsd1:TradePriceRequest' => {
37
43
  :prefix => 'xsd1',
38
44
  :name => 'TradePriceRequest',
@@ -126,7 +132,7 @@ module LolSoap
126
132
  'price' => {
127
133
  :name => 'price',
128
134
  :prefix => 'xsd1',
129
- :type => 'xs:float',
135
+ :type => 'xsd1:Price',
130
136
  :singular => true
131
137
  }
132
138
  },
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.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-25 00:00:00.000000000 Z
12
+ date: 2013-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
164
  version: '0'
165
165
  segments:
166
166
  - 0
167
- hash: -976470929
167
+ hash: 765502511
168
168
  required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  none: false
170
170
  requirements: