serviceproxy 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/wsdl2proxy +1 -1
- data/lib/service_proxy/base.rb +2 -2
- data/lib/service_proxy/parser.rb +12 -6
- data/spec/service_helper.rb +5 -6
- metadata +3 -13
data/bin/wsdl2proxy
CHANGED
data/lib/service_proxy/base.rb
CHANGED
@@ -14,7 +14,7 @@ require File.dirname(__FILE__) + '/parser'
|
|
14
14
|
|
15
15
|
module ServiceProxy
|
16
16
|
class Base
|
17
|
-
VERSION = '0.2.
|
17
|
+
VERSION = '0.2.1'
|
18
18
|
|
19
19
|
attr_accessor :endpoint, :service_methods, :soap_actions, :http,
|
20
20
|
:uri, :debug, :wsdl, :target_namespace
|
@@ -123,4 +123,4 @@ module ServiceProxy
|
|
123
123
|
downcase
|
124
124
|
end
|
125
125
|
end
|
126
|
-
end
|
126
|
+
end
|
data/lib/service_proxy/parser.rb
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
module ServiceProxy
|
2
2
|
class Parser < Nokogiri::XML::SAX::Document
|
3
|
-
attr_accessor :wsdl_namespace, :soap_namespace, :target_namespace, :service_methods, :soap_actions
|
3
|
+
attr_accessor :wsdl_namespace, :soap_namespace, :target_namespace, :service_methods, :soap_actions, :binding
|
4
4
|
|
5
5
|
def initialize(*args)
|
6
6
|
self.service_methods = []
|
7
7
|
self.soap_actions = Hash.new('')
|
8
|
+
self.binding = false
|
8
9
|
super
|
9
10
|
end
|
10
11
|
|
11
|
-
def start_element_namespace(name, attributes, prefix, uri, namespace)
|
12
|
+
def start_element_namespace(name, attributes, prefix, uri, namespace)
|
12
13
|
case name
|
14
|
+
when 'binding'
|
15
|
+
self.binding = true
|
13
16
|
when 'definitions'
|
14
17
|
self.wsdl_namespace = prefix if uri == 'http://schemas.xmlsoap.org/wsdl/'
|
15
18
|
self.soap_namespace = prefix if uri == 'http://schemas.xmlsoap.org/wsdl/soap/'
|
16
19
|
attribute = attributes.find { |attribute| attribute.localname == 'targetNamespace' }
|
17
20
|
self.target_namespace = attribute.value if attribute
|
18
21
|
when "operation"
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
if self.binding
|
23
|
+
service_method = attributes.first.value if prefix == self.wsdl_namespace
|
24
|
+
soap_action = attributes.find { |attribute| attribute.localname == 'soapAction' }
|
25
|
+
self.soap_actions[self.service_methods.last] = soap_action.value if soap_action
|
26
|
+
(self.service_methods << service_method unless self.service_methods.include?(service_method)) if service_method
|
27
|
+
end
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
26
31
|
def end_element_namespace(name, prefix, uri)
|
32
|
+
self.binding = false if name == 'binding' && prefix == self.wsdl_namespace
|
27
33
|
end
|
28
34
|
end
|
29
35
|
end
|
data/spec/service_helper.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'hpricot'
|
2
|
-
|
3
1
|
# Service Endpoints
|
4
2
|
class ISBNService < ServiceProxy::Base
|
5
3
|
|
@@ -10,8 +8,9 @@ class ISBNService < ServiceProxy::Base
|
|
10
8
|
end
|
11
9
|
|
12
10
|
def parse_is_valid_isbn13(response)
|
13
|
-
xml =
|
14
|
-
|
11
|
+
xml = Nokogiri.XML(response.body)
|
12
|
+
namespace = { 'm' => 'http://webservices.daehosting.com/ISBN' }
|
13
|
+
xml.at('//m:IsValidISBN13Result', namespace).inner_text == 'true' ? true : false
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
@@ -25,7 +24,7 @@ class SHAGeneratorService < ServiceProxy::Base
|
|
25
24
|
end
|
26
25
|
|
27
26
|
def parse_gen_ssha(response)
|
28
|
-
xml =
|
27
|
+
xml = Nokogiri.XML(response.body)
|
29
28
|
xml.at("return").inner_text
|
30
29
|
end
|
31
30
|
end
|
@@ -52,7 +51,7 @@ class ZipcodeService < ServiceProxy::Base
|
|
52
51
|
end
|
53
52
|
|
54
53
|
def parse_zip_code_world_us(response)
|
55
|
-
|
54
|
+
xml = Nokogiri.XML(response.body)
|
56
55
|
end
|
57
56
|
|
58
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serviceproxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Durham
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-04 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -32,16 +32,6 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: builder
|
37
|
-
type: :runtime
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: "0"
|
44
|
-
version:
|
45
35
|
description: Lightweight SOAP library for Ruby
|
46
36
|
email: jeremydurham@gmail.com
|
47
37
|
executables:
|
@@ -86,7 +76,7 @@ requirements: []
|
|
86
76
|
rubyforge_project:
|
87
77
|
rubygems_version: 1.3.5
|
88
78
|
signing_key:
|
89
|
-
specification_version:
|
79
|
+
specification_version: 3
|
90
80
|
summary: Lightweight SOAP library for Ruby
|
91
81
|
test_files: []
|
92
82
|
|