soap-object 0.6.3 → 0.6.8

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDIwMTlmZDU5ODgxODQwYjQxZjBiODJjYTRhZDQ1NTY0NGM0ZjFkMg==
5
- data.tar.gz: !binary |-
6
- NzMwMWY4Zjk4MmZlMTA5NGVmNDUyNWFkNWJlMzJlZDM3MmQ3NDI5Mw==
2
+ SHA1:
3
+ metadata.gz: c671cc72ababce59652396a4576c798e29b0a69a
4
+ data.tar.gz: 13de68c610f9ec82da27ed29c52de2a51fa51471
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjQxMDkzODA0MjdjNWUzNDIwZWQ2Nzk2Nzc2MzYzNjU5NzFkZjY3NGMxYWU4
10
- MzJlOWQ2NzkxYzI2OTlhMThjOTgwYzJhNDU1OTI3NWE1YWQ5NjQ3NmEwMWRl
11
- N2UwYmMyY2I4NGFlMTA3NjY4YmYwNjU3MDU4NTM0NjUwNTJjMjk=
12
- data.tar.gz: !binary |-
13
- ZWU0MTQ5YWRkYjFmYjk1YmMxY2M5MjFjNDFlMDQ3MWEzMWQwMjNhMWYyOGNk
14
- NjI3NmRlMDc5MDZjMmI2MDE0ZjZjYmU2ZDQzZWRhZWE4Nzc2MGZjYjUzOTll
15
- M2ZiZmFiYzY2NjQxMjZkODkwOWUwNWFhNTgzMzA4NzM3ZDJiN2M=
6
+ metadata.gz: 8d276efccddab68a8a49f92905bc083324d398a46c655132c13e14fc60bb7d7d7aa275f95ca80922e47cef1d1e6fbe99362272c49925ecc4be3c21cdc34d30d0
7
+ data.tar.gz: c7d57dac679b88423f18f092a834c1dc9e6c17ae898f9b7cfe863f37e2a1a2aaf0bbbeef35661bb6bc07f5796f1c755b42176443ec65b6bc13f9988d0e2ff664
data/.gitignore CHANGED
@@ -1,20 +1,21 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.swp
19
- TAGS
20
- .idea/
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.swp
19
+ TAGS
20
+ .idea/
21
+ .DS_Store
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
- --color
1
+ --color
2
2
  --format doc
@@ -1 +1 @@
1
- soap-object
1
+ soap-object
@@ -1 +1 @@
1
- ruby-2.0.0-p195
1
+ ruby-2.0.0-p643
data/ChangeLog CHANGED
@@ -1,50 +1,66 @@
1
- === Version 0.6.3 / 2015-3-26
2
- * Enhancements
3
- * Added ability to disable ssl verification
4
-
5
- === Version 0.6.2 / 2015-3-12
6
- * Enhancements
7
- * Calling xpath on Savon response, to take advantage of namespace collecting from response.
8
-
9
- === Version 0.6.1 / 2015-3-12
10
- * Enhancements
11
- * Added xpath method to return to allow user to access path directly
12
-
13
- === Version 0.6 / 2014-12-22
14
- * Enhancements
15
- * Added ability to call operation with hand rolled xml
16
- * Disabled logging by default, setting log_level enables it
17
-
18
- === Version 0.5.1 / 2013-6-1
19
- * Enhancements
20
- * Added body method to return the body of the result as a Hash
21
-
22
- === Version 0.5 / 2013-6-1
23
- * Enhancements
24
- * Removed the body accessor
25
- * Removed the body_xml method
26
- * Added to_xml method to return the response as a String containing the XML
27
- * Added to_hash method to return the respons as a Hash
28
- * Added doc method to return response as a Nokogiri::XML::Document document
29
- * Updated method_missing so when services methods are called the raw XML is returned
30
-
31
- === Version 0.4 / 2013-3-18
32
- * Enhancements
33
- * Added body accessor to SoapObject to return raw body
34
- * Added body_xml method to SoapObject to return Nokogiri::XML::Document containing body
35
-
36
- === Version 0.3 / 2013-3-17
37
- * Enhancements
38
- * Added SoapObject::Factory to assist in creating new service objects
39
- * Added accessor for @response
40
-
41
- === Version 0.2 / 2013-3-11
42
- * Enhancements
43
- * Added ability to add XML to the soap header
44
- * Added ability to set the encoding for the messages
45
- * Added ability to use basic authentication
46
- * Added ability to use digest authentication
47
- * Added ability to set the log level
48
-
49
- === Version 0.1 / 2013-3-4
50
- Initial release
1
+ === Version 0.6.7 / 2015-10-24
2
+ * Cleanup
3
+
4
+ === Version 0.6.6 / 2015-10-24
5
+ * Enhancements
6
+ * Added ssl_options method.
7
+
8
+ === Version 0.6.5 / 2015-6-3
9
+ * Enhancements
10
+ * Added ability to set soap version
11
+
12
+ === Version 0.6.4 / 2015-4-22
13
+ * Enhancements
14
+ * SSL version is :SSLv3 by default
15
+ * Added ability to set SSL version.
16
+
17
+ === Version 0.6.3 / 2015-3-26
18
+ * Enhancements
19
+ * Added ability to disable ssl verification
20
+
21
+ === Version 0.6.2 / 2015-3-12
22
+ * Enhancements
23
+ * Calling xpath on Savon response, to take advantage of namespace collecting from response.
24
+
25
+ === Version 0.6.1 / 2015-3-12
26
+ * Enhancements
27
+ * Added xpath method to return to allow user to access path directly
28
+
29
+ === Version 0.6 / 2014-12-22
30
+ * Enhancements
31
+ * Added ability to call operation with hand rolled xml
32
+ * Disabled logging by default, setting log_level enables it
33
+
34
+ === Version 0.5.1 / 2013-6-1
35
+ * Enhancements
36
+ * Added body method to return the body of the result as a Hash
37
+
38
+ === Version 0.5 / 2013-6-1
39
+ * Enhancements
40
+ * Removed the body accessor
41
+ * Removed the body_xml method
42
+ * Added to_xml method to return the response as a String containing the XML
43
+ * Added to_hash method to return the respons as a Hash
44
+ * Added doc method to return response as a Nokogiri::XML::Document document
45
+ * Updated method_missing so when services methods are called the raw XML is returned
46
+
47
+ === Version 0.4 / 2013-3-18
48
+ * Enhancements
49
+ * Added body accessor to SoapObject to return raw body
50
+ * Added body_xml method to SoapObject to return Nokogiri::XML::Document containing body
51
+
52
+ === Version 0.3 / 2013-3-17
53
+ * Enhancements
54
+ * Added SoapObject::Factory to assist in creating new service objects
55
+ * Added accessor for @response
56
+
57
+ === Version 0.2 / 2013-3-11
58
+ * Enhancements
59
+ * Added ability to add XML to the soap header
60
+ * Added ability to set the encoding for the messages
61
+ * Added ability to use basic authentication
62
+ * Added ability to use digest authentication
63
+ * Added ability to set the log level
64
+
65
+ === Version 0.1 / 2013-3-4
66
+ Initial release
data/Gemfile CHANGED
@@ -1,11 +1,11 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in soap-object.gemspec
4
-
5
- gem 'rake'
6
- gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
7
- gem 'growl'
8
- gem 'guard-rspec'
9
- gem 'guard-cucumber'
10
-
11
- gemspec
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in soap-object.gemspec
4
+
5
+ gem 'rake'
6
+ gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
7
+ gem 'growl'
8
+ gem 'guard-rspec'
9
+ gem 'guard-cucumber'
10
+
11
+ gemspec
data/Guardfile CHANGED
@@ -1,17 +1,17 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', :cli => '--color --format doc' do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { "spec" }
7
- watch('spec/spec_helper.rb') { "spec" }
8
- end
9
-
10
-
11
- guard 'cucumber', :notification => true, :all_after_pass => false, :cli => '--profile focus' do
12
- watch(%r{^features/.+\.feature$})
13
- watch(%r{^features/support/.+$}) { 'features' }
14
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
15
- watch(%r{^lib/.+\.rb$}) { "features" }
16
- watch(%r{^cucumber.yml$}) { "features" }
17
- end
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :cli => '--color --format doc' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { "spec" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
9
+
10
+
11
+ guard 'cucumber', :notification => true, :all_after_pass => false, :cli => '--profile focus' do
12
+ watch(%r{^features/.+\.feature$})
13
+ watch(%r{^features/support/.+$}) { 'features' }
14
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
15
+ watch(%r{^lib/.+\.rb$}) { "features" }
16
+ watch(%r{^cucumber.yml$}) { "features" }
17
+ end
@@ -1,22 +1,22 @@
1
- Copyright (c) 2013 Jeffrey S. Morgan
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1
+ Copyright (c) 2013 Jeffrey S. Morgan
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
22
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,42 +1,131 @@
1
- # Soap::Object
2
-
3
- Module to make it simpler to tests SOAP web services. The goal is
4
- to abstract all information about how your call and parse results
5
- from the web service within the soap objects.
6
-
7
- ````ruby
8
- class AirportService
9
- include SoapObject
10
-
11
- wsdl 'http://www.webservicex.net/airport.asmx?WSDL'
12
-
13
- def get_airport_name_for(airport_code)
14
- response = get_airport_information_by_airport_code airport_code: airport_code
15
- doc = Nokogiri::XML(response)
16
- doc.xpath('//Table/CityOrAirportName').first.content
17
- end
18
- end
19
- ````
20
-
21
- ## Installation
22
-
23
- Add this line to your application's Gemfile:
24
-
25
- gem 'soap-object'
26
-
27
- And then execute:
28
-
29
- $ bundle
30
-
31
- Or install it yourself as:
32
-
33
- $ gem install soap-object
34
-
35
-
36
- ## Contributing
37
-
38
- 1. Fork it
39
- 2. Create your feature branch (`git checkout -b my-new-feature`)
40
- 3. Commit your changes (`git commit -am 'Add some feature'`)
41
- 4. Push to the branch (`git push origin my-new-feature`)
42
- 5. Create new Pull Request
1
+ # SoapObject
2
+
3
+ Module to make it simpler to tests SOAP web services. The goal is
4
+ to abstract all information about how your call and parse results
5
+ from the web service within the soap objects.
6
+
7
+ ## Defining a soap-object
8
+
9
+ ````ruby
10
+ class AirportService
11
+ include SoapObject
12
+
13
+ wsdl 'http://www.webservicex.net/airport.asmx?WSDL'
14
+
15
+ def airport_name
16
+ xpath('//Table/CityOrAirportName').first.content
17
+ end
18
+
19
+ end
20
+ ````
21
+
22
+ #### Client Properties
23
+
24
+ By default, the following properties are set on the Savon::Client:
25
+
26
+ ````ruby
27
+ log: false
28
+ ssl_verify_mode: :none
29
+ ssl_version: :SSLv3
30
+ ````
31
+
32
+ The following methods are available to set client properties:
33
+
34
+ ````ruby
35
+ proxy 'http://proxy.com:8080'
36
+ open_timeout 10
37
+ read_timeout 20
38
+ soap_header 'Token' => 'secret'
39
+ encoding 'UTF-16'
40
+ basic_auth 'steve', 'secret'
41
+ digest_auth 'digest', 'auth'
42
+ log_level :error
43
+ soap_version 2
44
+
45
+ ssl_options do |opts|
46
+ opts.verify_mode = :peer
47
+ opts.version = :SSLv2
48
+ end
49
+ ````
50
+
51
+ ## Usage
52
+
53
+ ````ruby
54
+ require 'soap-object'
55
+
56
+ service = AirportService.new
57
+
58
+ service.operations
59
+ #=> [:get_airport_information_by_iso_country_code,
60
+ # :get_airport_information_by_city_or_airport_name,
61
+ # :get_airport_information_by_country,
62
+ # :get_airport_information_by_airport_code]
63
+
64
+ service.get_airport_information_by_airport_code
65
+ #=> <Savon::Response>
66
+
67
+ ````
68
+
69
+ By default soap-object attempts to handle any missing method call by passing it through to the underlying Savon client. This enable the soap-object to handle calls to all operations on a given WSDL.
70
+
71
+
72
+ ## Using with Cucumber
73
+
74
+ Include the factory methods by placing the following line in the cucumber env.rb file.
75
+
76
+ ````ruby
77
+ World(SoapObject::Factory)
78
+ ````
79
+ By doing so, soap-object's methods are available in cucumbers step definitions.
80
+
81
+ ````ruby
82
+ When(/^I request the airport information for "([^"]*)"$/) do |airport_code|
83
+ using(AirportService).get_airport_information_by_airport_code({airport_code: airport_code})
84
+ end
85
+
86
+ Then(/^the airport name should be "([^"]*)"$/) do |airport_name|
87
+ expect(using(AirportService).airport_name).to be eq(airport_name)
88
+ end
89
+ ````
90
+
91
+ ## Parsing the response
92
+
93
+ Several methods exists on the soap-object to help parse the response.
94
+
95
+ Return the xml response
96
+ - to_xml
97
+
98
+ Return value at a specific path using xpath
99
+ - xpath(path)
100
+
101
+ Return the response as a Hash
102
+ - to_hash
103
+
104
+ Return the body of the message as a Hash
105
+ - body
106
+
107
+ Return the response as a Nokogiri document
108
+ - doc
109
+
110
+ ## Installation
111
+
112
+ Add this line to your application's Gemfile:
113
+
114
+ gem 'soap-object'
115
+
116
+ And then execute:
117
+
118
+ $ bundle
119
+
120
+ Or install it yourself as:
121
+
122
+ $ gem install soap-object
123
+
124
+
125
+ ## Contributing
126
+
127
+ 1. Fork it
128
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
129
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
130
+ 4. Push to the branch (`git push origin my-new-feature`)
131
+ 5. Create new Pull Request