adyen 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +17 -13
- data/Gemfile +4 -0
- data/README.rdoc +1 -1
- data/adyen.gemspec +4 -15
- data/lib/adyen.rb +4 -0
- data/lib/adyen/api.rb +8 -6
- data/lib/adyen/api/cacert.pem +369 -260
- data/lib/adyen/api/payment_service.rb +43 -7
- data/lib/adyen/api/simple_soap_client.rb +8 -8
- data/lib/adyen/api/templates/payment_service.rb +51 -40
- data/lib/adyen/api/test_helpers.rb +49 -49
- data/lib/adyen/api/xml_querier.rb +10 -2
- data/lib/adyen/encoding.rb +2 -2
- data/lib/adyen/form.rb +32 -0
- data/lib/adyen/version.rb +1 -1
- data/spec/api/api_spec.rb +6 -6
- data/spec/api/payment_service_spec.rb +24 -6
- data/spec/api/recurring_service_spec.rb +2 -2
- data/spec/api/response_spec.rb +1 -1
- data/spec/api/simple_soap_client_spec.rb +1 -1
- data/spec/api/spec_helper.rb +6 -2
- data/spec/form_spec.rb +58 -7
- data/spec/functional/api_spec.rb +36 -32
- data/spec/functional/initializer.rb.ci +3 -0
- data/spec/functional/initializer.rb.sample +3 -3
- data/spec/spec_helper.rb +0 -2
- metadata +11 -9
data/lib/adyen/version.rb
CHANGED
data/spec/api/api_spec.rb
CHANGED
@@ -30,7 +30,7 @@ describe Adyen::API do
|
|
30
30
|
{ :expiry_month => 12, :expiry_year => 2012, :holder_name => "Simon Hopper", :number => '4444333322221111', :cvc => '737' }
|
31
31
|
)
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "performs a `authorise payment' request with additional :fraud_offset" do
|
35
35
|
should_map_shortcut_to(:authorise_payment,
|
36
36
|
:reference => 'order-id',
|
@@ -79,7 +79,7 @@ describe Adyen::API do
|
|
79
79
|
{ :reference => 'user-id', :email => 's.hopper@example.com' }
|
80
80
|
)
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
it "performs a `authorise recurring payment' request with specific detail" do
|
84
84
|
should_map_shortcut_to(:authorise_recurring_payment,
|
85
85
|
:reference => 'order-id',
|
@@ -94,7 +94,7 @@ describe Adyen::API do
|
|
94
94
|
'recurring-detail-reference'
|
95
95
|
)
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
it "performs a `authorise recurring payment' request with specific detail and fraud offset" do
|
99
99
|
should_map_shortcut_to(:authorise_recurring_payment,
|
100
100
|
:reference => 'order-id',
|
@@ -123,11 +123,11 @@ describe Adyen::API do
|
|
123
123
|
Adyen::API.authorise_one_click_payment('order-id',
|
124
124
|
{ :currency => 'EUR', :value => 1234 },
|
125
125
|
{ :reference => 'user-id', :email => 's.hopper@example.com' },
|
126
|
-
'737',
|
126
|
+
{ :cvc => '737' },
|
127
127
|
'recurring-detail-reference'
|
128
128
|
)
|
129
129
|
end
|
130
|
-
|
130
|
+
|
131
131
|
it "performs a `authorise one-click payment' request with specific detail and fraud offset" do
|
132
132
|
should_map_shortcut_to(:authorise_one_click_payment,
|
133
133
|
:reference => 'order-id',
|
@@ -140,7 +140,7 @@ describe Adyen::API do
|
|
140
140
|
Adyen::API.authorise_one_click_payment('order-id',
|
141
141
|
{ :currency => 'EUR', :value => 1234 },
|
142
142
|
{ :reference => 'user-id', :email => 's.hopper@example.com' },
|
143
|
-
'737',
|
143
|
+
{ :cvc => '737' },
|
144
144
|
'recurring-detail-reference',
|
145
145
|
-10
|
146
146
|
)
|
@@ -23,16 +23,27 @@ shared_examples_for "payment requests" do
|
|
23
23
|
text('./payment:shopperIP').should == '61.294.12.12'
|
24
24
|
text('./payment:shopperStatement').should == 'invoice number 123456'
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "includes the fraud offset" do
|
28
28
|
text('./payment:fraudOffset').should == '30'
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "does not include the fraud offset if none is given" do
|
32
32
|
@payment.params.delete(:fraud_offset)
|
33
33
|
xpath('./payment:fraudOffset').should be_empty
|
34
34
|
end
|
35
35
|
|
36
|
+
it "includes the given amount of `installments'" do
|
37
|
+
xpath('./payment:installments') do |amount|
|
38
|
+
amount.text('./common:value').should == '6'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "does not include the installments amount if none is given" do
|
43
|
+
@payment.params.delete(:installments)
|
44
|
+
xpath('./payment:installments').should be_empty
|
45
|
+
end
|
46
|
+
|
36
47
|
it "only includes shopper details for given parameters" do
|
37
48
|
# TODO pretty lame, but for now it will do
|
38
49
|
unless @method == "authorise_one_click_payment_request_body" || @method == "authorise_recurring_payment_request_body"
|
@@ -95,6 +106,9 @@ describe Adyen::API::PaymentService do
|
|
95
106
|
#:start_month => ,
|
96
107
|
#:start_year => ,
|
97
108
|
},
|
109
|
+
:installments => {
|
110
|
+
:value => 6
|
111
|
+
},
|
98
112
|
:recurring_detail_reference => 'RecurringDetailReference1',
|
99
113
|
:fraud_offset => 30
|
100
114
|
}
|
@@ -113,7 +127,7 @@ describe Adyen::API::PaymentService do
|
|
113
127
|
@payment.params[:recurring] = true
|
114
128
|
@payment.params[:shopper] = nil
|
115
129
|
end
|
116
|
-
|
130
|
+
|
117
131
|
it_should_validate_request_param(:fraud_offset) do
|
118
132
|
@payment.params[:fraud_offset] = ''
|
119
133
|
end
|
@@ -128,7 +142,7 @@ describe Adyen::API::PaymentService do
|
|
128
142
|
it "includes the creditcard details" do
|
129
143
|
xpath('./payment:card') do |card|
|
130
144
|
# there's no reason why Nokogiri should escape these characters, but as long as they're correct
|
131
|
-
card.text('./payment:holderName').should == 'Simon
|
145
|
+
card.text('./payment:holderName').should == 'Simon わくわく Hopper'
|
132
146
|
card.text('./payment:number').should == '4444333322221111'
|
133
147
|
card.text('./payment:cvc').should == '737'
|
134
148
|
card.text('./payment:expiryMonth').should == '12'
|
@@ -153,6 +167,7 @@ describe Adyen::API::PaymentService do
|
|
153
167
|
:psp_reference => '9876543210987654',
|
154
168
|
:result_code => 'Authorised',
|
155
169
|
:auth_code => '1234',
|
170
|
+
:additional_data => { "cardSummary" => "1111" },
|
156
171
|
:refusal_reason => ''
|
157
172
|
})
|
158
173
|
|
@@ -226,8 +241,9 @@ describe Adyen::API::PaymentService do
|
|
226
241
|
|
227
242
|
it "prepends the error attribute with the given prefix, except for :base" do
|
228
243
|
[
|
229
|
-
["validation 101 Invalid card number",
|
230
|
-
["validation 130 Reference Missing",
|
244
|
+
["validation 101 Invalid card number", [:card_number, 'is not a valid creditcard number']],
|
245
|
+
["validation 130 Reference Missing", [:base, "validation 130 Reference Missing"]],
|
246
|
+
["validation 152 Invalid number of installments", [:base, "validation 152 Invalid number of installments"]],
|
231
247
|
].each do |message, error|
|
232
248
|
response_with_fault_message(message).error(:card).should == error
|
233
249
|
end
|
@@ -274,6 +290,7 @@ describe Adyen::API::PaymentService do
|
|
274
290
|
:psp_reference => '9876543210987654',
|
275
291
|
:result_code => 'Authorised',
|
276
292
|
:auth_code => '1234',
|
293
|
+
:additional_data => { "cardSummary" => "1111" },
|
277
294
|
:refusal_reason => ''
|
278
295
|
})
|
279
296
|
end
|
@@ -314,6 +331,7 @@ describe Adyen::API::PaymentService do
|
|
314
331
|
:psp_reference => '9876543210987654',
|
315
332
|
:result_code => 'Authorised',
|
316
333
|
:auth_code => '1234',
|
334
|
+
:additional_data => { "cardSummary" => "1111" },
|
317
335
|
:refusal_reason => ''
|
318
336
|
})
|
319
337
|
end
|
@@ -170,7 +170,7 @@ describe Adyen::API::RecurringService do
|
|
170
170
|
it "includes the creditcard details" do
|
171
171
|
xpath('./recurring:card') do |card|
|
172
172
|
# there's no reason why Nokogiri should escape these characters, but as long as they're correct
|
173
|
-
card.text('./payment:holderName').should == 'Simon
|
173
|
+
card.text('./payment:holderName').should == 'Simon わくわく Hopper'
|
174
174
|
card.text('./payment:number').should == '4444333322221111'
|
175
175
|
card.text('./payment:cvc').should == '737'
|
176
176
|
card.text('./payment:expiryMonth').should == '12'
|
@@ -207,7 +207,7 @@ describe Adyen::API::RecurringService do
|
|
207
207
|
it "includes the ELV details" do
|
208
208
|
xpath('./recurring:elv') do |elv|
|
209
209
|
# there's no reason why Nokogiri should escape these characters, but as long as they're correct
|
210
|
-
elv.text('./payment:accountHolderName').should == 'Simon
|
210
|
+
elv.text('./payment:accountHolderName').should == 'Simon わくわく Hopper'
|
211
211
|
elv.text('./payment:bankAccountNumber').should == '1234567890'
|
212
212
|
elv.text('./payment:bankLocation').should == 'Berlin'
|
213
213
|
elv.text('./payment:bankLocationId').should == '12345678'
|
data/spec/api/response_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe Adyen::API::Response do
|
|
11
11
|
|
12
12
|
it "returns a XMLQuerier instance with the response body" do
|
13
13
|
@response.xml_querier.should be_instance_of(Adyen::API::XMLQuerier)
|
14
|
-
@response.xml_querier.to_s.should == AUTHORISE_RESPONSE
|
14
|
+
@response.xml_querier.to_s.rstrip.should == AUTHORISE_RESPONSE.rstrip
|
15
15
|
end
|
16
16
|
|
17
17
|
describe "with a successful HTTP response" do
|
@@ -73,7 +73,7 @@ describe Adyen::API::SimpleSOAPClient do
|
|
73
73
|
|
74
74
|
it "returns an Adyen::API::Response instance" do
|
75
75
|
@response.should be_instance_of(Adyen::API::Response)
|
76
|
-
@response.xml_querier.to_s.should == AUTHORISE_RESPONSE
|
76
|
+
@response.xml_querier.to_s.rstrip.should == AUTHORISE_RESPONSE.rstrip
|
77
77
|
end
|
78
78
|
|
79
79
|
[
|
data/spec/api/spec_helper.rb
CHANGED
@@ -3,7 +3,6 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
require 'adyen/api'
|
5
5
|
|
6
|
-
require 'rubygems'
|
7
6
|
require 'nokogiri'
|
8
7
|
require 'rexml/document'
|
9
8
|
|
@@ -223,7 +222,12 @@ AUTHORISE_RESPONSE = <<EOS
|
|
223
222
|
<soap:Body>
|
224
223
|
<ns1:authoriseResponse xmlns:ns1="http://payment.services.adyen.com">
|
225
224
|
<ns1:paymentResult>
|
226
|
-
<additionalData xmlns="http://payment.services.adyen.com"
|
225
|
+
<additionalData xmlns="http://payment.services.adyen.com">
|
226
|
+
<entry>
|
227
|
+
<key xsi:type="xsd:string">cardSummary</key>
|
228
|
+
<value xsi:type="xsd:string">1111</value>
|
229
|
+
</entry>
|
230
|
+
</additionalData>
|
227
231
|
<authCode xmlns="http://payment.services.adyen.com">1234</authCode>
|
228
232
|
<dccAmount xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
|
229
233
|
<dccSignature xmlns="http://payment.services.adyen.com" xsi:nil="true"/>
|
data/spec/form_spec.rb
CHANGED
@@ -138,6 +138,30 @@ describe Adyen::Form do
|
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
141
|
+
describe 'payment methods available URL' do
|
142
|
+
let(:payment_methods_url) do
|
143
|
+
@attributes = { :currency_code => 'GBP', :payment_amount => 10000, :ship_before_date => Date.today,
|
144
|
+
:merchant_reference => 'Internet Order 12345', :skin => :testing,
|
145
|
+
:session_validity => Time.now + 3600 }
|
146
|
+
|
147
|
+
Adyen::Form.payment_methods_url(@attributes)
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should return an directory URL" do
|
151
|
+
payment_methods_url.should =~ %r[^#{Adyen::Form.url(nil, :directory)}]
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should include all provided attributes" do
|
155
|
+
params = payment_methods_url.split('?', 2).last.split('&').map { |param| param.split('=', 2).first }
|
156
|
+
params.should include(*(@attributes.keys.map { |k| Adyen::Form.camelize(k) }))
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should include the merchant signature" do
|
160
|
+
params = payment_methods_url.split('?', 2).last.split('&').map { |param| param.split('=', 2).first }
|
161
|
+
params.should include('merchantSig')
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
141
165
|
describe 'hidden fields generation' do
|
142
166
|
include APISpecHelper
|
143
167
|
subject { %Q'<form action="#{CGI.escapeHTML(Adyen::Form.url)}" method="post">#{Adyen::Form.hidden_fields(@attributes)}</form>' }
|
@@ -176,12 +200,18 @@ describe Adyen::Form do
|
|
176
200
|
:ship_before_date => '2007-10-20', :merchant_reference => 'Internet Order 12345',
|
177
201
|
:skin => :testing, :session_validity => '2007-10-11T11:00:00Z',
|
178
202
|
:billing_address => {
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
203
|
+
:street => 'Alexanderplatz',
|
204
|
+
:house_number_or_name => '0815',
|
205
|
+
:city => 'Berlin',
|
206
|
+
:postal_code => '10119',
|
207
|
+
:state_or_province => 'Berlin',
|
208
|
+
:country => 'Germany',
|
209
|
+
},
|
210
|
+
:shopper => {
|
211
|
+
:telephone_number => '1234512345',
|
212
|
+
:first_name => 'John',
|
213
|
+
:last_name => 'Doe',
|
214
|
+
:social_security_number => '123-45-1234'
|
185
215
|
}
|
186
216
|
}
|
187
217
|
|
@@ -194,7 +224,6 @@ describe Adyen::Form do
|
|
194
224
|
|
195
225
|
signature_string = Adyen::Form.calculate_signature_string(@parameters.merge(:merchant_return_data => 'testing123'))
|
196
226
|
signature_string.should == "10000GBP2007-10-20Internet Order 123454aD37dJATestMerchant2007-10-11T11:00:00Ztesting123"
|
197
|
-
|
198
227
|
end
|
199
228
|
|
200
229
|
it "should calculate the signature correctly" do
|
@@ -243,6 +272,28 @@ describe Adyen::Form do
|
|
243
272
|
signature = Adyen::Form.calculate_billing_address_signature(@parameters)
|
244
273
|
end.to raise_error ArgumentError
|
245
274
|
end
|
275
|
+
|
276
|
+
end
|
277
|
+
|
278
|
+
context 'shopper' do
|
279
|
+
|
280
|
+
it "should construct the signature base string correctly" do
|
281
|
+
signature_string = Adyen::Form.calculate_shopper_signature_string(@parameters[:shopper])
|
282
|
+
signature_string.should == "JohnDoe1234512345"
|
283
|
+
end
|
284
|
+
|
285
|
+
it "should calculate the signature correctly" do
|
286
|
+
signature = Adyen::Form.calculate_shopper_signature(@parameters)
|
287
|
+
signature.should == 'rb2GEs1kGKuLh255a3QRPBYXmsQ='
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should raise ArgumentError on empty shared_secret" do
|
291
|
+
expect do
|
292
|
+
@parameters.delete(:shared_secret)
|
293
|
+
signature = Adyen::Form.calculate_shopper_signature(@parameters)
|
294
|
+
end.to raise_error ArgumentError
|
295
|
+
end
|
296
|
+
|
246
297
|
end
|
247
298
|
|
248
299
|
end
|
data/spec/functional/api_spec.rb
CHANGED
@@ -12,7 +12,7 @@ if File.exist?(API_SPEC_INITIALIZER)
|
|
12
12
|
require API_SPEC_INITIALIZER
|
13
13
|
Net::HTTP.stubbing_enabled = false
|
14
14
|
@order_id = @user_id = Time.now.to_i
|
15
|
-
perform_payment_request
|
15
|
+
@payment_response = perform_payment_request
|
16
16
|
end
|
17
17
|
|
18
18
|
after :all do
|
@@ -20,7 +20,7 @@ if File.exist?(API_SPEC_INITIALIZER)
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def perform_payment_request
|
23
|
-
|
23
|
+
Adyen::API.authorise_payment(
|
24
24
|
@order_id,
|
25
25
|
{ :currency => 'EUR', :value => '1234' },
|
26
26
|
{ :email => "#{@user_id}@example.com", :reference => @user_id },
|
@@ -29,33 +29,36 @@ if File.exist?(API_SPEC_INITIALIZER)
|
|
29
29
|
)
|
30
30
|
end
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
# TODO disabled for now: https://github.com/wvanbergen/adyen/issues/29
|
33
|
+
# it "performs a payment request" do
|
34
|
+
# @payment_response.should be_authorized
|
35
|
+
# @payment_response.psp_reference.should_not be_empty
|
36
|
+
# end
|
36
37
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
38
|
+
# TODO disabled for now: https://github.com/wvanbergen/adyen/issues/29
|
39
|
+
# it "performs a recurring payment request" do
|
40
|
+
# response = Adyen::API.authorise_recurring_payment(
|
41
|
+
# @order_id,
|
42
|
+
# { :currency => 'EUR', :value => '1234' },
|
43
|
+
# { :email => "#{@user_id}@example.com", :reference => @user_id }
|
44
|
+
# )
|
45
|
+
# response.should be_authorized
|
46
|
+
# response.psp_reference.should_not be_empty
|
47
|
+
# end
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
49
|
+
# TODO disabled for now: https://github.com/wvanbergen/adyen/issues/29
|
50
|
+
# it "performs a one-click payment request" do
|
51
|
+
# detail = Adyen::API.list_recurring_details(@user_id).references.last
|
52
|
+
# response = Adyen::API.authorise_one_click_payment(
|
53
|
+
# @order_id,
|
54
|
+
# { :currency => 'EUR', :value => '1234' },
|
55
|
+
# { :email => "#{@user_id}@example.com", :reference => @user_id },
|
56
|
+
# '737',
|
57
|
+
# detail
|
58
|
+
# )
|
59
|
+
# response.should be_authorized
|
60
|
+
# response.psp_reference.should_not be_empty
|
61
|
+
# end
|
59
62
|
|
60
63
|
# TODO disabled for now: https://github.com/wvanbergen/adyen/issues/29
|
61
64
|
#it "stores the provided ELV account details" do
|
@@ -95,11 +98,12 @@ if File.exist?(API_SPEC_INITIALIZER)
|
|
95
98
|
response.should be_success
|
96
99
|
end
|
97
100
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
101
|
+
# TODO disabled for now: https://github.com/wvanbergen/adyen/issues/29
|
102
|
+
# it "disables a recurring contract" do
|
103
|
+
# response = Adyen::API.disable_recurring_contract(@user_id)
|
104
|
+
# response.should be_success
|
105
|
+
# response.should be_disabled
|
106
|
+
# end
|
103
107
|
end
|
104
108
|
|
105
109
|
else
|
@@ -1,3 +1,3 @@
|
|
1
|
-
Adyen.configuration.default_api_params = { :merchant_account => '
|
2
|
-
Adyen.configuration.api_username = 'SuperShopper'
|
3
|
-
Adyen.configuration.api_password = '
|
1
|
+
Adyen.configuration.default_api_params = { :merchant_account => 'SuperShopperCOM' }
|
2
|
+
Adyen.configuration.api_username = 'ws@company.SuperShopper'
|
3
|
+
Adyen.configuration.api_password = '$ecret'
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adyen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Willem van Bergen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-09-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rake
|
@@ -47,28 +47,28 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - '>='
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '2
|
50
|
+
version: '3.2'
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - '>='
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '2
|
57
|
+
version: '3.2'
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: nokogiri
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- -
|
62
|
+
- - '>='
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 1.6.
|
64
|
+
version: 1.6.1
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - '>='
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: 1.6.
|
71
|
+
version: 1.6.1
|
72
72
|
description: " Package to simplify including the Adyen payments services into a
|
73
73
|
Ruby on Rails application.\n The package provides functionality to create payment
|
74
74
|
forms, handling and storing notifications \n sent by Adyen and consuming the
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- spec/api/test_helpers_spec.rb
|
125
125
|
- spec/form_spec.rb
|
126
126
|
- spec/functional/api_spec.rb
|
127
|
+
- spec/functional/initializer.rb.ci
|
127
128
|
- spec/functional/initializer.rb.sample
|
128
129
|
- spec/spec_helper.rb
|
129
130
|
- yard_extensions.rb
|
@@ -145,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
146
|
requirements:
|
146
147
|
- - '>='
|
147
148
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
149
|
+
version: 1.9.3
|
149
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
151
|
requirements:
|
151
152
|
- - '>='
|
@@ -169,5 +170,6 @@ test_files:
|
|
169
170
|
- spec/api/test_helpers_spec.rb
|
170
171
|
- spec/form_spec.rb
|
171
172
|
- spec/functional/api_spec.rb
|
173
|
+
- spec/functional/initializer.rb.ci
|
172
174
|
- spec/functional/initializer.rb.sample
|
173
175
|
- spec/spec_helper.rb
|