spreedly 2.0.5 → 2.0.6

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/HISTORY.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Changelog
2
2
 
3
- ## 2.0.4
3
+ ## 2.0.6
4
+ * Add auth_mode support to gateway options call [sosedoff]
5
+ * Pass through verification_value when creating a card directly [duff]
6
+
7
+ ## 2.0.5
4
8
  * Add ability to retrieve a transcript [hoenth]
5
9
 
6
10
  ## 2.0.3
data/lib/spreedly.rb CHANGED
@@ -5,6 +5,8 @@ require 'spreedly/connection'
5
5
  require 'spreedly/common/fields'
6
6
  require 'spreedly/common/errors_parser'
7
7
  require 'spreedly/model'
8
+ require 'spreedly/auth_mode'
9
+ require 'spreedly/credential'
8
10
  require 'spreedly/payment_methods/payment_method'
9
11
  require 'spreedly/payment_methods/credit_card'
10
12
  require 'spreedly/payment_methods/paypal'
@@ -0,0 +1,16 @@
1
+ module Spreedly
2
+ class AuthMode
3
+ include Fields
4
+
5
+ field :auth_mode_type, :name
6
+ attr_reader :auth_mode_type, :credentials
7
+
8
+ def initialize(xml_doc)
9
+ initialize_fields(xml_doc)
10
+
11
+ @credentials = xml_doc.xpath('.//credentials/credential').map do |each|
12
+ Spreedly::Credential.new(each)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ module Spreedly
2
+ class Credential
3
+ include Fields
4
+
5
+ field :name, :label
6
+ field :safe, type: :boolean
7
+
8
+ def initialize(xml_doc)
9
+ initialize_fields(xml_doc)
10
+ end
11
+ end
12
+ end
@@ -174,8 +174,8 @@ module Spreedly
174
174
  build_xml_request('payment_method') do |doc|
175
175
  add_to_doc(doc, options, :data, :retained, :email)
176
176
  doc.credit_card do
177
- add_to_doc(doc, options, :number, :month, :first_name, :last_name, :year,
178
- :address1, :address2, :city, :state, :zip, :country, :phone_number)
177
+ add_to_doc(doc, options, :number, :verification_value, :month, :first_name, :last_name,
178
+ :year, :address1, :address2, :city, :state, :zip, :country, :phone_number)
179
179
  end
180
180
  end
181
181
  end
@@ -1,15 +1,16 @@
1
1
  module Spreedly
2
2
 
3
3
  class GatewayClass
4
-
5
4
  include Fields
5
+
6
6
  field :gateway_type, :name, :supported_countries, :homepage
7
- attr_reader :supported_countries, :payment_methods
7
+ attr_reader :supported_countries, :payment_methods, :auth_modes
8
8
 
9
9
  def initialize(xml_doc)
10
10
  initialize_fields(xml_doc)
11
11
  init_supported_countries(xml_doc)
12
12
  init_payment_methods(xml_doc)
13
+ init_auth_modes(xml_doc)
13
14
  end
14
15
 
15
16
  def self.new_list_from(xml_doc)
@@ -20,6 +21,7 @@ module Spreedly
20
21
  end
21
22
 
22
23
  private
24
+
23
25
  def init_supported_countries(xml_doc)
24
26
  list = xml_doc.at_xpath(".//supported_countries").inner_html.strip
25
27
  @supported_countries = list.split(/\s*,\s*/)
@@ -31,6 +33,12 @@ module Spreedly
31
33
  end
32
34
  end
33
35
 
36
+ def init_auth_modes(xml_doc)
37
+ @auth_modes = xml_doc.xpath(".//auth_modes/auth_mode").map do |each|
38
+ Spreedly::AuthMode.new(each)
39
+ end
40
+ end
41
+
34
42
  end
35
43
 
36
44
  end
@@ -1,3 +1,3 @@
1
1
  module Spreedly
2
- VERSION = "2.0.5"
2
+ VERSION = "2.0.6"
3
3
  end
@@ -10,7 +10,10 @@ class RemoteGatewayOptionsTest < Test::Unit::TestCase
10
10
  gateway_classes = @environment.gateway_options
11
11
  braintree = gateway_classes.select { |each| each.name == "Braintree" }.first
12
12
  assert_equal "http://www.braintreepaymentsolutions.com/", braintree.homepage
13
- assert_equal ["credit_card", "third_party_token"], braintree.payment_methods
13
+ assert_equal %w(credit_card third_party_token), braintree.payment_methods
14
+ assert_equal %w(orange blue), braintree.auth_modes.map { |e| e.auth_mode_type }
15
+ assert_equal %w(login password), braintree.auth_modes.first.credentials.map { |e| e.name }
16
+ assert_equal [ true, false ], braintree.auth_modes.first.credentials.map { |e| e.safe }
14
17
  end
15
18
 
16
19
  end
@@ -25,4 +25,28 @@ class ListGatewaysTest < Test::Unit::TestCase
25
25
  assert_kind_of Spreedly::GatewayClass, list.last
26
26
  end
27
27
 
28
+ def test_successful_gateway_auth_modes
29
+ @environment.stubs(:raw_ssl_request).returns(successful_gateway_options_response)
30
+ list = @environment.gateway_options.first.auth_modes
31
+
32
+ assert_kind_of Array, list
33
+ assert_equal 3, list.size
34
+
35
+ assert_equal "signature", list.first.auth_mode_type
36
+ assert_equal "Signature", list.first.name
37
+ assert_kind_of Array, list.first.credentials
38
+ assert_equal 3, list.first.credentials.size
39
+ end
40
+
41
+ def test_successful_gateway_auth_mode_credentials
42
+ @environment.stubs(:raw_ssl_request).returns(successful_gateway_options_response)
43
+ list = @environment.gateway_options.first.auth_modes.first.credentials
44
+
45
+ assert_kind_of Array, list
46
+ assert_equal 3, list.size
47
+
48
+ assert_equal "login", list.first.name
49
+ assert_equal "Login", list.first.label
50
+ assert_equal true, list.first.safe
51
+ end
28
52
  end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: spreedly
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.0.5
5
+ version: 2.0.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spreedly
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-15 00:00:00.000000000 Z
12
+ date: 2013-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  prerelease: false
@@ -123,9 +123,11 @@ files:
123
123
  - Rakefile
124
124
  - lib/certs/cacert.pem
125
125
  - lib/spreedly.rb
126
+ - lib/spreedly/auth_mode.rb
126
127
  - lib/spreedly/common/errors_parser.rb
127
128
  - lib/spreedly/common/fields.rb
128
129
  - lib/spreedly/connection.rb
130
+ - lib/spreedly/credential.rb
129
131
  - lib/spreedly/environment.rb
130
132
  - lib/spreedly/error.rb
131
133
  - lib/spreedly/gateway.rb
@@ -231,7 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
233
  - !ruby/object:Gem::Version
232
234
  segments:
233
235
  - 0
234
- hash: 2702196769998865619
236
+ hash: -2834738228651493214
235
237
  version: '0'
236
238
  none: false
237
239
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -240,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
242
  - !ruby/object:Gem::Version
241
243
  segments:
242
244
  - 0
243
- hash: 2702196769998865619
245
+ hash: -2834738228651493214
244
246
  version: '0'
245
247
  none: false
246
248
  requirements: []