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 +4 -4
- data/.gitignore +0 -1
- data/.travis.yml +2 -0
- data/Gemfile +5 -3
- data/Gemfile.lock +86 -0
- data/README.md +8 -6
- data/alpha_card.gemspec +1 -2
- data/lib/alpha_card.rb +125 -102
- data/lib/alpha_card/alpha_card_response.rb +3 -3
- data/lib/alpha_card/objects/sale.rb +19 -2
- data/lib/alpha_card/version.rb +1 -1
- data/spec/alpha_card/alpha_card_spec.rb +5 -7
- metadata +8 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30d93b58f9dc44c84691c6666bcdc6b0f41a8f6a
|
4
|
+
data.tar.gz: 8b797a6054d6daa1f7314a1e3c23c6d7d3f23918
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1385c84b244958cd05e7915a384964d006c1a96c1c0b7fa05f58ff021cdf3454759b1926566dda4d5183f2e8b197b3789a88911bfd3cba078e07e2361344eb73
|
7
|
+
data.tar.gz: 09d4105be24baa504e86e9989ce927f5bc34bc3b74ae00705efa67638d96f1136f5d985fb56c1b44bdb90caeff21fb97b2ad90a7cccbf210e8454871d855335e
|
data/.gitignore
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
Gemfile.lock
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -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
|
[](https://travis-ci.org/nbulaj/alpha_card)
|
7
7
|
[](http://inch-ci.org/github/nbulaj/alpha_card)
|
8
8
|
[](#license)
|
9
|
+
[]()
|
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(
|
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(
|
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(
|
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(
|
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
|
-
|
239
|
+
|
240
|
+
Copyright (c) 2014-2016 Nikita Bulaj (bulajnikita@gmail.com).
|
data/alpha_card.gemspec
CHANGED
@@ -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.
|
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
|
data/lib/alpha_card.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# encoding:utf-8
|
2
2
|
require 'yaml'
|
3
3
|
require 'virtus'
|
4
|
-
require '
|
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
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
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
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
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
|
-
|
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
|
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
|
-
|
69
|
+
params
|
53
70
|
end
|
54
71
|
end
|
55
72
|
end
|
data/lib/alpha_card/version.rb
CHANGED
@@ -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
|
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!(:
|
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
|
97
|
-
expect { AlphaCard.handle_connection_errors(
|
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://
|
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.
|
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
|
-
-
|
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:
|
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.
|
98
|
+
rubygems_version: 2.4.8
|
106
99
|
signing_key:
|
107
100
|
specification_version: 4
|
108
101
|
summary: Alpha Card Services API for Ruby
|