billwise4r 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: