alpha_card 0.2.5 → 0.2.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.
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