billwise4r 0.2.2 → 0.3.0

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  billwise4r
2
2
  ==========
3
3
 
4
- Gem for working with the Billwise SOAP/XML API. Ruby 1.9.x +
4
+ Gem for working with the Billwise SOAP/XML API. Ruby 1.9.x +
5
5
 
6
6
  Examples
7
7
  --------
@@ -20,8 +20,18 @@ Examples
20
20
  :serviceId => 'A000000000000456',
21
21
  :status => 'A' })
22
22
 
23
+
24
+ Optional Configution Parameters
25
+ ---------
26
+
27
+ SSL verify_mode - [:peer, :fail_if_no_peer_cert, :client_once]
28
+ cert_key_file - the private key file to use
29
+ cert_key_password - the key file's password
30
+ cert_file - the certificate file to use
31
+ ca_cert_file - the ca certificate file to use
32
+
23
33
  Copyright
24
34
  ---------
25
35
 
26
- Copyright (c) 2010, 2011 Jason Goecke. See LICENSE.txt for further details.
36
+ Copyright (c) 2010, 2011 Jason Goecke & John Dyer. See LICENSE.txt for further details.
27
37
 
@@ -3,29 +3,29 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  require "billwise4r/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "billwise4r"
7
- s.version = Billwise4r::VERSION
8
- s.authors = ["Jason Goecke","John Dyer"]
9
- s.email = ["jason@goecke.net","john@krumpt.com"]
10
- s.homepage = %q{http://github.com/jsgoecke/billwise4r}
11
- s.summary = %q{Ruby lib for consuming the Billwise SOAP/XML API}
12
- s.description = %q{Ruby lib for consuming the Billwise SOAP/XML API}
13
- s.rubygems_version = %q{1.5.0}
14
- s.required_ruby_version = '>= 1.9'
15
- s.summary = %q{Ruby lib for consuming the Billwise SOAP/XML API}
16
- s.test_files = [
6
+ s.name = "billwise4r"
7
+ s.version = Billwise4r::VERSION
8
+ s.authors = ["Jason Goecke","John Dyer"]
9
+ s.email = ["jason@goecke.net","johntdyer@gmail.com"]
10
+ s.homepage = %q{http://github.com/jsgoecke/billwise4r}
11
+ s.summary = %q{Ruby lib for consuming the Billwise SOAP/XML API}
12
+ s.description = %q{Ruby lib for consuming the Billwise SOAP/XML API}
13
+ s.rubygems_version = %q{1.5.0}
14
+ s.required_ruby_version = '>= 1.9'
15
+ s.summary = %q{Ruby lib for consuming the Billwise SOAP/XML API}
16
+ s.test_files = [
17
17
  "spec/billwise4r_spec.rb",
18
18
  "spec/spec_helper.rb",
19
19
  "spec/connect_sm_service.wsdl",
20
20
  "spec/config/config.yml"
21
21
  ]
22
22
 
23
- s.rubyforge_project = "billwise4r"
23
+ s.rubyforge_project = "billwise4r"
24
24
 
25
- s.files = `git ls-files`.split("\n")
26
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
28
- s.require_paths = ["lib","spec"]
25
+ s.files = `git ls-files`.split("\n")
26
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
28
+ s.require_paths = ["lib","spec"]
29
29
 
30
30
  s.add_development_dependency "rspec"
31
31
  s.add_development_dependency "fakeweb"
@@ -10,33 +10,39 @@ class Billwise
10
10
  # Make sure all params we need are here or raise an error
11
11
  check_initialization_params(params)
12
12
 
13
- @companyCd = params[:companyCd]
14
- log = params[:log] || false
15
- log_level = params[:log_level] || :info
16
- @httpi_log = params[:httpi_log] || false
13
+ @companyCd = params[:companyCd]
14
+ log = params[:log] || false
15
+ log_level = params[:log_level] || :info
16
+ @httpi_log = params[:httpi_log] || false
17
+ @ssl_verify_mode = params[:verify_mode] || "peer".to_sym
18
+ @read_timeout = params[:read_timeout] || 300
17
19
 
18
20
  Savon.configure do |config|
19
- config.log = log
20
- config.log_level = log_level
21
- config.env_namespace = :soap
21
+ config.log = log
22
+ config.log_level = log_level
23
+ config.env_namespace = :soap
22
24
  end
23
25
 
24
- @soap_endpoint = URI.parse params[:endpoint] || 'https://cwa021.connect4billing.com:8443/axis2/services/ConnectSmService.ConnectSmServiceHttpSoap12Endpoint/'
25
- @soap_namespace = params[:namespace] || 'http://connectsm.ws.bwse.com/xsd'
26
-
27
- @soap_version = 2
26
+ @soap_endpoint = URI.parse params[:endpoint] || 'https://cwa021.connect4billing.com:8443/axis2/services/ConnectSmService.ConnectSmServiceHttpSoap12Endpoint/'
27
+ @soap_namespace = params[:namespace] || 'http://connectsm.ws.bwse.com/xsd'
28
+ @soap_version = 2
28
29
 
29
30
  # Build our SOAP driver
30
31
  @soap_driver = Savon::Client.new do
31
- wsse.credentials '290connectsm','ZgntS40r'
32
+ wsse.credentials params[:username] , params[:password]
32
33
  wsdl.document = 'https://cwa021.connect4billing.com:8443/axis2/services/ConnectSmService?wsdl'
33
-
34
34
  end
35
- @soap_driver.http.read_timeout = 300
36
35
 
37
- @tag_order = tag_order
36
+ @soap_driver.http.read_timeout = @read_timeout
37
+ @soap_driver.http.auth.ssl.verify_mode = @ssl_verify_mode # or one of [:peer, :fail_if_no_peer_cert, :client_once]
38
+ @soap_driver.http.auth.ssl.cert_key_file = params[:cert_key_file] if params[:cert_key_file] # the private key file to use
39
+ @soap_driver.http.auth.ssl.cert_key_password = params[:cert_key_password] if params[:cert_key_password] # the key file's password
40
+ @soap_driver.http.auth.ssl.cert_file = params[:cert_file] if params[:cert_file] # the certificate file to use
41
+ @soap_driver.http.auth.ssl.ca_cert_file = params[:ca_cert_file] if params[:ca_cert_file] # the ca certificate file to use
42
+
43
+ @tag_order = tag_order
38
44
 
39
- MultiXml.parser = :nokogiri
45
+ MultiXml.parser = :nokogiri
40
46
  end
41
47
 
42
48
  ##
@@ -48,11 +54,11 @@ class Billwise
48
54
  begin
49
55
  HTTPI.log = @httpi_log
50
56
  response = @soap_driver.request :wsdl, method do |soap, wsse|
51
- soap.version = @soap_version
52
- soap.endpoint = @soap_endpoint
53
- soap.namespaces = Hash.new
54
- soap.namespaces["xmlns:soap"] = "http://www.w3.org/2003/05/soap-envelope"
55
- soap.namespaces["xmlns:ins0"] = @soap_namespace
57
+ soap.version = @soap_version
58
+ soap.endpoint = @soap_endpoint
59
+ soap.namespaces = Hash.new
60
+ soap.namespaces["xmlns:soap"] = "http://www.w3.org/2003/05/soap-envelope"
61
+ soap.namespaces["xmlns:ins0"] = @soap_namespace
56
62
 
57
63
  fields = { :companyCd => @companyCd }.merge!(params)
58
64
 
@@ -69,22 +75,6 @@ class Billwise
69
75
 
70
76
  private
71
77
 
72
- ##
73
- # Checks that the required params have been provided, or rasies an error
74
- def check_initialization_params(params={})
75
- raise ArgumentError, "You must provide Billwise connection parameters." if params.length == 0
76
- %w(companyCd username password).each { |param| raise ArgumentError, "You must provide a valid #{param}." if params[param.to_sym].nil? }
77
- end
78
-
79
- ##
80
- # Decamelizes a string
81
- #
82
- # @param [required, String] the string to be decamelized
83
- # @return [String] the decamelized string
84
- def decamelize(string)
85
- string.gsub(/[A-Z]/) { |p| '_' + p.downcase }
86
- end
87
-
88
78
  ##
89
79
  # Order has correctly since billwise requires soap parameters be in correct order.
90
80
  # Savon provides this functionality thru gyoku but it doesnt seem to be working in 1.9.
@@ -117,4 +107,20 @@ class Billwise
117
107
  end
118
108
  actions
119
109
  end
110
+ ##
111
+ # Checks that the required params have been provided, or rasies an error
112
+ def check_initialization_params(params={})
113
+ raise ArgumentError, "You must provide Billwise connection parameters." if params.length == 0
114
+ %w(companyCd username password).each { |param| raise ArgumentError, "You must provide a valid #{param}." if params[param.to_sym].nil? }
115
+ end
116
+
117
+ ##
118
+ # Decamelizes a string
119
+ #
120
+ # @param [required, String] the string to be decamelized
121
+ # @return [String] the decamelized string
122
+ def decamelize(string)
123
+ string.gsub(/[A-Z]/) { |p| '_' + p.downcase }
124
+ end
125
+
120
126
  end
@@ -1,3 +1,3 @@
1
1
  module Billwise4r
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: billwise4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-11-07 00:00:00.000000000Z
13
+ date: 2012-07-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &70250000246040 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70250000246040
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: fakeweb
28
- requirement: &70250000245580 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '0'
34
39
  type: :development
35
40
  prerelease: false
36
- version_requirements: *70250000245580
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: awesome_print
39
- requirement: &70250000245160 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: '0'
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *70250000245160
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: savon
50
- requirement: &70250000244740 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :runtime
57
72
  prerelease: false
58
- version_requirements: *70250000244740
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: multi_xml
61
- requirement: &70250000244320 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,11 +86,16 @@ dependencies:
66
86
  version: '0'
67
87
  type: :runtime
68
88
  prerelease: false
69
- version_requirements: *70250000244320
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  description: Ruby lib for consuming the Billwise SOAP/XML API
71
96
  email:
72
97
  - jason@goecke.net
73
- - john@krumpt.com
98
+ - johntdyer@gmail.com
74
99
  executables: []
75
100
  extensions: []
76
101
  extra_rdoc_files: []
@@ -110,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
135
  version: '0'
111
136
  requirements: []
112
137
  rubyforge_project: billwise4r
113
- rubygems_version: 1.8.6
138
+ rubygems_version: 1.8.24
114
139
  signing_key:
115
140
  specification_version: 3
116
141
  summary: Ruby lib for consuming the Billwise SOAP/XML API
@@ -119,3 +144,4 @@ test_files:
119
144
  - spec/config/config.yml
120
145
  - spec/connect_sm_service.wsdl
121
146
  - spec/spec_helper.rb
147
+ has_rdoc: