smacks-savon 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.rdoc +5 -2
  2. data/lib/savon/wsdl.rb +27 -12
  3. metadata +1 -1
data/README.rdoc CHANGED
@@ -13,7 +13,10 @@ service method to receive.
13
13
 
14
14
  == Dependencies
15
15
 
16
- Hpricot 0.6.164 (also available for JRuby)
16
+ hpricot 0.6.164 (also available for JRuby)
17
+ smacks-apricoteatsgorilla >= 0.3.31
18
+
19
+ == How to use
17
20
 
18
21
  === Usage example
19
22
 
@@ -23,7 +26,7 @@ service method to receive.
23
26
  === Check for available SOAP service methods
24
27
 
25
28
  proxy.wsdl.service_methods
26
- => [ "findExampleById", "findExampleByName" ]
29
+ # => [ "findExampleById", "findExampleByName" ]
27
30
 
28
31
  === Checking for HTTP and SOAP faults
29
32
 
data/lib/savon/wsdl.rb CHANGED
@@ -27,7 +27,10 @@ module Savon
27
27
  @uri = uri
28
28
  @http = http
29
29
  get_wsdl
30
- parse_wsdl
30
+
31
+ parse_namespace_uri
32
+ parse_service_methods
33
+ parse_choice_elements
31
34
  end
32
35
 
33
36
  # Returns the response body from the WSDL request.
@@ -43,20 +46,32 @@ module Savon
43
46
  @doc = Hpricot.XML(@response.body)
44
47
  end
45
48
 
46
- # Parses the WSDL for the namespace URI, available service methods
47
- # and choice elements.
48
- def parse_wsdl
49
- @namespace_uri = @doc.at("//wsdl:definitions").get_attribute("targetNamespace")
49
+ # Parses the WSDL to find and store the namespace URI.
50
+ def parse_namespace_uri
51
+ node = @doc.at("//wsdl:definitions")
52
+ if node
53
+ @namespace_uri = node.get_attribute("targetNamespace")
54
+ end
55
+ end
50
56
 
51
- @service_methods = []
52
- @doc.search("//soap:operation").each do |operation|
53
- service_methods << operation.parent.get_attribute("name")
57
+ # Parses the WSDL to find and store the available SOAP service methods.
58
+ def parse_service_methods
59
+ @service_methods, node = [], @doc.search("//soap:operation")
60
+ if node
61
+ node.each do |operation|
62
+ service_methods << operation.parent.get_attribute("name")
63
+ end
54
64
  end
65
+ end
55
66
 
56
- @choice_elements = []
57
- @doc.search("//xs:choice//xs:element").each do |choice|
58
- name = choice.get_attribute("ref").sub(/(.+):/, "")
59
- choice_elements << name unless @choice_elements.include? name
67
+ # Parses the WSDL to find and store any choice elements.
68
+ def parse_choice_elements
69
+ @choice_elements, node = [], @doc.search("//xs:choice//xs:element")
70
+ if node
71
+ node.each do |choice|
72
+ name = choice.get_attribute("ref").sub(/(.+):/, "")
73
+ choice_elements << name unless @choice_elements.include? name
74
+ end
60
75
  end
61
76
  end
62
77
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smacks-savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington