alpha_card 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d71d35569f21cf510852e3c35f8df41399983e8a
4
- data.tar.gz: a2266edd9c1e5df53788121264173053615c0931
3
+ metadata.gz: 30d93b58f9dc44c84691c6666bcdc6b0f41a8f6a
4
+ data.tar.gz: 8b797a6054d6daa1f7314a1e3c23c6d7d3f23918
5
5
  SHA512:
6
- metadata.gz: 417ac49bc0b7a982f56d7fbc16d684b616c807e88d1adf37a0d2ab7aba3920608f678aa7eb4d59f7fdb50a2b8a2c52a94ae8660443a50dc0ace98d1e8833ae14
7
- data.tar.gz: cebcd84f04b491a4d0bb7ad199572d89a4efb74c0e075867037ed6d2a7c5539aa2d74dc5d5ea939fa13197ba5eaa0a45a05e34413d051db0ddef854a25bd6daa
6
+ metadata.gz: 1385c84b244958cd05e7915a384964d006c1a96c1c0b7fa05f58ff021cdf3454759b1926566dda4d5183f2e8b197b3789a88911bfd3cba078e07e2361344eb73
7
+ data.tar.gz: 09d4105be24baa504e86e9989ce927f5bc34bc3b74ae00705efa67638d96f1136f5d985fb56c1b44bdb90caeff21fb97b2ad90a7cccbf210e8454871d855335e
data/.gitignore CHANGED
@@ -1 +0,0 @@
1
- Gemfile.lock
@@ -9,6 +9,8 @@ rvm:
9
9
  - 2.1.1
10
10
  - 2.1.2
11
11
  - 2.1.5
12
+ - 2.2.4
13
+ - 2.3.0
12
14
  - jruby-19mode
13
15
  - ruby-head
14
16
  matrix:
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'virtus'
6
- gem 'rest-client'
7
- gem 'coveralls', require: false
8
- gem 'rack-test', require: false
6
+
7
+ group :test do
8
+ gem 'coveralls', require: false
9
+ gem 'rack-test', require: false
10
+ end
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ alpha_card (0.2.6)
5
+ virtus (~> 1.0, >= 1.0.5)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ axiom-types (0.1.1)
11
+ descendants_tracker (~> 0.0.4)
12
+ ice_nine (~> 0.11.0)
13
+ thread_safe (~> 0.3, >= 0.3.1)
14
+ coercible (1.0.0)
15
+ descendants_tracker (~> 0.0.1)
16
+ coveralls (0.8.10)
17
+ json (~> 1.8)
18
+ rest-client (>= 1.6.8, < 2)
19
+ simplecov (~> 0.11.0)
20
+ term-ansicolor (~> 1.3)
21
+ thor (~> 0.19.1)
22
+ tins (~> 1.6.0)
23
+ descendants_tracker (0.0.4)
24
+ thread_safe (~> 0.3, >= 0.3.1)
25
+ diff-lcs (1.2.5)
26
+ docile (1.1.5)
27
+ domain_name (0.5.25)
28
+ unf (>= 0.0.5, < 1.0.0)
29
+ equalizer (0.0.11)
30
+ http-cookie (1.0.2)
31
+ domain_name (~> 0.5)
32
+ ice_nine (0.11.1)
33
+ json (1.8.3)
34
+ mime-types (2.99)
35
+ netrc (0.11.0)
36
+ rack (1.6.4)
37
+ rack-test (0.6.3)
38
+ rack (>= 1.0)
39
+ rest-client (1.8.0)
40
+ http-cookie (>= 1.0.2, < 2.0)
41
+ mime-types (>= 1.16, < 3.0)
42
+ netrc (~> 0.7)
43
+ rspec (3.4.0)
44
+ rspec-core (~> 3.4.0)
45
+ rspec-expectations (~> 3.4.0)
46
+ rspec-mocks (~> 3.4.0)
47
+ rspec-core (3.4.1)
48
+ rspec-support (~> 3.4.0)
49
+ rspec-expectations (3.4.0)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.4.0)
52
+ rspec-mocks (3.4.1)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.4.0)
55
+ rspec-support (3.4.1)
56
+ simplecov (0.11.1)
57
+ docile (~> 1.1.0)
58
+ json (~> 1.8)
59
+ simplecov-html (~> 0.10.0)
60
+ simplecov-html (0.10.0)
61
+ term-ansicolor (1.3.2)
62
+ tins (~> 1.0)
63
+ thor (0.19.1)
64
+ thread_safe (0.3.5)
65
+ tins (1.6.0)
66
+ unf (0.1.4)
67
+ unf_ext
68
+ unf_ext (0.0.7.1)
69
+ virtus (1.0.5)
70
+ axiom-types (~> 0.1)
71
+ coercible (~> 1.0)
72
+ descendants_tracker (~> 0.0, >= 0.0.3)
73
+ equalizer (~> 0.0, >= 0.0.9)
74
+
75
+ PLATFORMS
76
+ ruby
77
+
78
+ DEPENDENCIES
79
+ alpha_card!
80
+ coveralls
81
+ rack-test
82
+ rspec (~> 3)
83
+ virtus
84
+
85
+ BUNDLED WITH
86
+ 1.11.2
data/README.md CHANGED
@@ -6,6 +6,7 @@
6
6
  [![Build Status](https://travis-ci.org/nbulaj/alpha_card.svg?branch=master)](https://travis-ci.org/nbulaj/alpha_card)
7
7
  [![Inline docs](http://inch-ci.org/github/nbulaj/alpha_card.png?branch=master)](http://inch-ci.org/github/nbulaj/alpha_card)
8
8
  [![License](http://img.shields.io/badge/license-MIT-brightgreen.svg)](#license)
9
+ [![Gem](https://img.shields.io/gem/dt/alpha_card.svg)]()
9
10
 
10
11
  This gem can help your Ruby or Ruby on Rails application to integrate with Alpha Card Service, Inc.
11
12
 
@@ -86,7 +87,7 @@ _Unnecessary fields_:
86
87
  _Constructor_:
87
88
 
88
89
  ```ruby
89
- AlphaCard::Order.new({field_name: value, ...})
90
+ AlphaCard::Order.new(field_name: value, ...)
90
91
  ```
91
92
 
92
93
  ### Billing
@@ -112,7 +113,7 @@ _Unnecessary fields_:
112
113
  _Constructor_:
113
114
 
114
115
  ```ruby
115
- AlphaCard::Billing.new({field_name: value, ...})
116
+ AlphaCard::Billing.new(field_name: value, ...)
116
117
  ```
117
118
 
118
119
  ### Shipping
@@ -135,7 +136,7 @@ _Unnecessary fields_:
135
136
  _Constructor_:
136
137
 
137
138
  ```ruby
138
- AlphaCard::Shipping.new({field_name: value, ...})
139
+ AlphaCard::Shipping.new(field_name: value, ...)
139
140
  ```
140
141
 
141
142
  ### Sale
@@ -154,14 +155,14 @@ _Unnecessary fields_:
154
155
  _Constructor_:
155
156
 
156
157
  ```ruby
157
- AlphaCard::Sale.new({field_name: value, ...})
158
+ AlphaCard::Sale.new(field_name: value, ...)
158
159
  ```
159
160
 
160
161
  To create the payment you must call *create(_alpha_card_order_, _alpha_card_account_)* method:
161
162
 
162
163
  ```ruby
163
164
  ...
164
- sale = AlphaCard::Sale.new({})
165
+ sale = AlphaCard::Sale.new(amount: 10)
165
166
  sale.create(order, account)
166
167
  ```
167
168
 
@@ -235,4 +236,5 @@ Thanks.
235
236
  ## License
236
237
 
237
238
  Alpha Card gem is released under the [MIT License](http://www.opensource.org/licenses/MIT).
238
- Copyright (c) 2014-2015 Nikita Bulaj (bulajnikita@gmail.com).
239
+
240
+ Copyright (c) 2014-2016 Nikita Bulaj (bulajnikita@gmail.com).
@@ -16,8 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.license = 'MIT'
17
17
  gem.required_ruby_version = '>= 1.9.3'
18
18
 
19
- gem.add_dependency 'virtus', '~> 1.0'
20
- gem.add_dependency 'rest-client', '~> 1.8'
19
+ gem.add_runtime_dependency 'virtus', '~> 1.0', '>= 1.0.5'
21
20
 
22
21
  gem.add_development_dependency 'rspec', '~> 3'
23
22
  end
@@ -1,7 +1,8 @@
1
1
  # encoding:utf-8
2
2
  require 'yaml'
3
3
  require 'virtus'
4
- require 'rest-client'
4
+ require 'net/http'
5
+ require 'uri'
5
6
  require 'rack/utils'
6
7
 
7
8
  # Version
@@ -37,112 +38,134 @@ module AlphaCard
37
38
  class << self
38
39
  # @return [String] Alpha Card Gateway DirectPost API URL.
39
40
  attr_accessor :api_base
40
- end
41
41
 
42
- ##
43
- # Send the POST request to the AlphaCard Gateway from the
44
- # specified account. Request must contains params - Alpha Card
45
- # transaction variables.
46
- #
47
- # @param [Hash] params
48
- # Alpha Card transaction variables.
49
- # @param [AlphaCard::Account] account
50
- # An <code>AlphaCard::Account</code> credentials object.
51
- #
52
- # @return [AlphaCard::AlphaCardResponse]
53
- # Response from Alpha Card Gateway.
54
- #
55
- # @raise [AlphaCard::AlphaCardError]
56
- # AlphaCardError Exception if request failed.
57
- #
58
- # @example
59
- # account = AlphaCard::Account.new('demo', 'password')
60
- # response = AlphaCard.request(
61
- # {
62
- # cexp: '0720',
63
- # ccnumber: '4111111111111111',
64
- # amount: '10.00'
65
- # },
66
- # account
67
- # )
68
- #
69
- # #=> #<AlphaCard::AlphaCardResponse:0x1a0fda8 @data={"response"=>"1",
70
- # "responsetext"=>"SUCCESS", "authcode"=>"123", "transactionid"=>"123",
71
- # "avsresponse"=>"", "cvvresponse"=>"N", "orderid"=>"", "type"=>"",
72
- # "response_code"=>"100"}>
73
- #
74
- # account = AlphaCard::Account.new('demo', 'password')
75
- # response = AlphaCard.request(
76
- # {
77
- # cexp: '0720',
78
- # ccnumber: '123',
79
- # amount: '10.00'
80
- # },
81
- # account
82
- # )
83
- #
84
- # #=> AlphaCard::AlphaCardError: AlphaCard::AlphaCardError
85
- def self.request(params = {}, account)
86
- fail AlphaCardError, 'You must set credentials to create the sale!' unless account.filled?
87
-
88
- begin
89
- response = RestClient.post(@api_base, params.merge(account.attributes))
90
- rescue => e
91
- handle_connection_errors(e)
42
+ ##
43
+ # Send the POST request to the AlphaCard Gateway from the
44
+ # specified account. Request must contains params - Alpha Card
45
+ # transaction variables.
46
+ #
47
+ # @param [Hash] params
48
+ # Alpha Card transaction variables.
49
+ # @param [AlphaCard::Account] account
50
+ # An <code>AlphaCard::Account</code> credentials object.
51
+ #
52
+ # @return [AlphaCard::AlphaCardResponse]
53
+ # Response from Alpha Card Gateway.
54
+ #
55
+ # @raise [AlphaCard::AlphaCardError]
56
+ # AlphaCardError Exception if request failed.
57
+ #
58
+ # @example
59
+ # account = AlphaCard::Account.new('demo', 'password')
60
+ # response = AlphaCard.request(
61
+ # account,
62
+ # {
63
+ # cexp: '0720',
64
+ # ccnumber: '4111111111111111',
65
+ # amount: '10.00'
66
+ # }
67
+ # )
68
+ #
69
+ # #=> #<AlphaCard::AlphaCardResponse:0x1a0fda8 @data={"response"=>"1",
70
+ # "responsetext"=>"SUCCESS", "authcode"=>"123", "transactionid"=>"123",
71
+ # "avsresponse"=>"", "cvvresponse"=>"N", "orderid"=>"", "type"=>"",
72
+ # "response_code"=>"100"}>
73
+ #
74
+ # account = AlphaCard::Account.new('demo', 'password')
75
+ # response = AlphaCard.request(
76
+ # account,
77
+ # {
78
+ # cexp: '0720',
79
+ # ccnumber: '123',
80
+ # amount: '10.00'
81
+ # }
82
+ # )
83
+ #
84
+ # #=> AlphaCard::AlphaCardError: AlphaCard::AlphaCardError
85
+ def request(account, params = {})
86
+ fail AlphaCardError, 'You must set credentials to create the sale!' unless account.filled?
87
+
88
+ begin
89
+ response = http_request(@api_base, params.merge(account.attributes))
90
+ rescue => e
91
+ handle_connection_errors(e)
92
+ end
93
+
94
+ alpha_card_response = AlphaCardResponse.new(response.body)
95
+ handle_alpha_card_errors(alpha_card_response)
96
+
97
+ alpha_card_response
92
98
  end
93
99
 
94
- alpha_card_response = AlphaCardResponse.new(response.to_str)
95
- handle_alpha_card_errors(alpha_card_response)
96
-
97
- alpha_card_response
98
- end
99
-
100
- private
101
-
102
- ##
103
- # Raises an exception if Alpha Card Gateway return an error or
104
- # decline code for the request. Message is taken from the Global
105
- # Payment Systems Credit Card Authorization Codes (codes.yml).
106
- # If code wasn't found in <code>CREDIT_CARD_CODES</code>, then
107
- # message = Alpha Card response text.
108
- #
109
- # @param [AlphaCard::AlphaCardResponse] response
110
- # Alpha Card Response object.
111
- #
112
- # @raise [AlphaCard::AlphaCardError]
113
- # AlphaCardError Exception if request failed.
114
- #
115
- # @return [String]
116
- # Alpha Card Services response text.
117
- def self.handle_alpha_card_errors(response)
118
- code = response.text
119
- raise AlphaCardError.new(CREDIT_CARD_CODES[code] || code, response) unless response.success?
120
- end
100
+ ##
101
+ # Raises an exception if Alpha Card Gateway return an error or
102
+ # decline code for the request. Message is taken from the Global
103
+ # Payment Systems Credit Card Authorization Codes (codes.yml).
104
+ # If code wasn't found in <code>CREDIT_CARD_CODES</code>, then
105
+ # message = Alpha Card response text.
106
+ #
107
+ # @param [AlphaCard::AlphaCardResponse] response
108
+ # Alpha Card Response object.
109
+ #
110
+ # @raise [AlphaCard::AlphaCardError]
111
+ # AlphaCardError Exception if request failed.
112
+ #
113
+ # @return [String]
114
+ # Alpha Card Services response text.
115
+ def handle_alpha_card_errors(response)
116
+ code = response.text
117
+ raise AlphaCardError.new(CREDIT_CARD_CODES[code] || code, response) unless response.success?
118
+ end
121
119
 
122
- ##
123
- # Raises an exception if a network error occurs. It
124
- # could be request timeout, socket error or anything else.
125
- #
126
- # @param [Exception] e
127
- # Exception object.
128
- #
129
- # @raise [AlphaCard::AlphaCardError]
130
- # AlphaCardError Exception.
131
- def self.handle_connection_errors(error)
132
- case error
133
- when RestClient::ServerBrokeConnection, RestClient::RequestTimeout
134
- message = "Could not connect to Alpha Card Gateway (#{@api_base}). " \
135
- 'Please check your internet connection and try again. ' \
136
- 'If this problem persists, you should check Alpha Card services status.'
137
-
138
- when SocketError
139
- message = 'Unexpected error communicating when trying to connect to Alpha Card Gateway. ' \
140
- 'You may be seeing this message because your DNS is not working.'
141
-
142
- else
143
- message = 'Unexpected error communicating with Alpha Card Gateway.'
120
+ ##
121
+ # Raises an exception if a network error occurs. It
122
+ # could be request timeout, socket error or anything else.
123
+ #
124
+ # @param [Exception]
125
+ # Exception object.
126
+ #
127
+ # @raise [AlphaCard::AlphaCardError]
128
+ # AlphaCardError Exception.
129
+ def handle_connection_errors(error)
130
+ case error
131
+ when Timeout::Error, Errno::EINVAL, Errno::ECONNRESET
132
+ message = "Could not connect to Alpha Card Gateway (#{@api_base}). " \
133
+ 'Please check your internet connection and try again. ' \
134
+ 'If this problem persists, you should check Alpha Card services status.'
135
+
136
+ when SocketError
137
+ message = 'Unexpected error communicating when trying to connect to Alpha Card Gateway. ' \
138
+ 'You may be seeing this message because your DNS is not working.'
139
+
140
+ else
141
+ message = 'Unexpected error communicating with Alpha Card Gateway.'
142
+ end
143
+
144
+ fail APIConnectionError, "#{message}\n\n(Network error: #{error.message})"
144
145
  end
145
146
 
146
- raise APIConnectionError, "#{message}\n\n(Network error: #{error.message})"
147
+ ##
148
+ # Send secure HTTP(S) request with params
149
+ # to requested URL.
150
+ #
151
+ # @param [String] url
152
+ # URL
153
+ # @param [Hash] params
154
+ # Hash of params for the request
155
+ #
156
+ # @return [HTTPResponse]
157
+ # Response of the request as HTTPResponse object
158
+ def http_request(url, params)
159
+ uri = URI.parse(url)
160
+
161
+ http = Net::HTTP.new(uri.host, uri.port)
162
+ http.use_ssl = true
163
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
164
+
165
+ request = Net::HTTP::Post.new(uri.request_uri)
166
+ request.set_form_data(params)
167
+
168
+ http.request(request)
169
+ end
147
170
  end
148
171
  end
@@ -9,11 +9,11 @@ module AlphaCard
9
9
  attr_reader :data
10
10
 
11
11
  # Success response code
12
- APPROVED = '1'
12
+ APPROVED = '1'.freeze
13
13
  # Decline response code
14
- DECLINED = '2'
14
+ DECLINED = '2'.freeze
15
15
  # Error response code
16
- ERROR = '3'
16
+ ERROR = '3'.freeze
17
17
 
18
18
  ##
19
19
  # AlphaCardResponse constructor.
@@ -41,15 +41,32 @@ module AlphaCard
41
41
  # #=> true
42
42
  def create(order, account)
43
43
  [:ccexp, :ccnumber, :amount].each do |attr|
44
- fail Exception, "No #{attr} information provided!" if self[attr].nil? || self[attr].empty?
44
+ fail ArgumentError, "No #{attr} information provided!" if self[attr].nil? || self[attr].empty?
45
45
  end
46
46
 
47
+ AlphaCard.request(account, params_with(order)).success?
48
+ end
49
+
50
+ private
51
+
52
+ ##
53
+ # Return params for Alpha Card merged with
54
+ # params of another object passed through arguments
55
+ #
56
+ # @param [AlphaCard::Order] order
57
+ # An <code>AlphaCard::Order</code> object.
58
+ #
59
+ # @return [Hash]
60
+ # Params of *self* object merged with params
61
+ # of another object (<code>AlphaCard::Order</code>)
62
+ def params_with(order)
47
63
  params = filled_attributes || {}
64
+
48
65
  [order, order.billing, order.shipping].compact.each do |obj|
49
66
  params.merge!(obj ? obj.filled_attributes : {})
50
67
  end
51
68
 
52
- AlphaCard.request(params, account).success?
69
+ params
53
70
  end
54
71
  end
55
72
  end
@@ -1,5 +1,5 @@
1
1
  module AlphaCard
2
2
  ##
3
3
  # Version information for AlphaCard gem.
4
- VERSION = '0.2.5'
4
+ VERSION = '0.2.6'.freeze
5
5
  end
@@ -8,8 +8,6 @@ describe AlphaCard do
8
8
  let!(:order) { AlphaCard::Order.new({orderid: '1', billing: billing, shipping: shipping}) }
9
9
  let!(:card_exp) { "#{'%02d' % Time.now.month}/#{Time.now.year.next}" }
10
10
 
11
- #TODO: Create rest client mock to imitate requests, normal tests for error exceptions
12
-
13
11
  context 'With valid attributes' do
14
12
  let!(:sale) { AlphaCard::Sale.new({ccexp: card_exp, ccnumber: '4111111111111111', amount: '5.00'}) }
15
13
 
@@ -73,7 +71,7 @@ describe AlphaCard do
73
71
  let!(:sale) { AlphaCard::Sale.new({}) }
74
72
 
75
73
  it 'should raise an Exception' do
76
- expect { sale.create(order, account) }.to raise_exception
74
+ expect { sale.create(order, account) }.to raise_error(ArgumentError)
77
75
  end
78
76
  end
79
77
 
@@ -89,12 +87,12 @@ describe AlphaCard do
89
87
  end
90
88
 
91
89
  context 'With connection errors' do
92
- let!(:rest_client_error) { RestClient::RequestTimeout.new }
90
+ let!(:timeout_error) { Timeout::Error.new }
93
91
  let!(:socket_error) { SocketError.new }
94
92
  let!(:unclassified_error) { StandardError.new('Some error') }
95
93
 
96
- it 'should raise an APIConnectionError if Rest Client Error' do
97
- expect { AlphaCard.handle_connection_errors(rest_client_error) }.to raise_error(AlphaCard::APIConnectionError) do |e|
94
+ it 'should raise an APIConnectionError if Timeout Error' do
95
+ expect { AlphaCard.handle_connection_errors(timeout_error) }.to raise_error(AlphaCard::APIConnectionError) do |e|
98
96
  expect(e.message).to include('Could not connect to Alpha Card Gateway')
99
97
  end
100
98
  end
@@ -115,7 +113,7 @@ describe AlphaCard do
115
113
  let!(:sale) { AlphaCard::Sale.new({ccexp: card_exp, ccnumber: '4111111111111111', amount: '5.00'}) }
116
114
 
117
115
  it 'should handle an error' do
118
- AlphaCard.api_base = 'https://google.com' # todo: some other service
116
+ AlphaCard.api_base = 'https://not-existing.com' # todo: some other service
119
117
  expect { sale.create(order, account) }.to raise_error(AlphaCard::APIConnectionError)
120
118
 
121
119
  AlphaCard.api_base = 'https://secure.alphacardgateway.com/api/transact.php'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alpha_card
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Bulaj
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.5
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,20 +27,9 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: rest-client
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.8'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
30
+ - - ">="
39
31
  - !ruby/object:Gem::Version
40
- version: '1.8'
32
+ version: 1.0.5
41
33
  - !ruby/object:Gem::Dependency
42
34
  name: rspec
43
35
  requirement: !ruby/object:Gem::Requirement
@@ -62,6 +54,7 @@ files:
62
54
  - ".rspec"
63
55
  - ".travis.yml"
64
56
  - Gemfile
57
+ - Gemfile.lock
65
58
  - LICENSE
66
59
  - README.md
67
60
  - Rakefile
@@ -102,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
95
  version: '0'
103
96
  requirements: []
104
97
  rubyforge_project:
105
- rubygems_version: 2.4.3
98
+ rubygems_version: 2.4.8
106
99
  signing_key:
107
100
  specification_version: 4
108
101
  summary: Alpha Card Services API for Ruby