mollie-bank 0.0.2 → 0.0.3
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 +7 -0
- data/.rvmrc +48 -0
- data/.travis.yml +10 -4
- data/README.md +7 -2
- data/lib/mollie-bank.rb +2 -1
- data/lib/mollie-bank/application/app.rb +11 -4
- data/lib/mollie-bank/version.rb +1 -1
- data/mollie-bank.gemspec +3 -1
- data/spec/backend_spec.rb +11 -1
- data/spec/frontend_spec.rb +1 -1
- data/spec/spec_helper.rb +5 -0
- metadata +118 -60
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 447a33be843cdf4f114a7ff497b7bbd8b65b2644
|
4
|
+
data.tar.gz: 32288ae9b7b745babb662e74bdcccc1bc6e70a63
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c27098173e74b9efca5bdfe74fcb455075723dea6dfb514a05150e2b677c8b0ae068476d1833bc9551577034c957f5dd373d609685937b0c04d53dbbb6684fa8
|
7
|
+
data.tar.gz: 1c66daea1abc9f0e93458f5c22911fd2ca65fe71c27958fd3d348afd412a91f0d5f2bd9a53b5c62aad2b77b4f5df6eaf7fbe52d686afeab002880f5244621ac6
|
data/.rvmrc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
+
# development environment upon cd'ing into the directory
|
5
|
+
|
6
|
+
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
|
7
|
+
# Only full ruby name is supported here, for short names use:
|
8
|
+
# echo "rvm use 1.9.3" > .rvmrc
|
9
|
+
environment_id="ruby-1.9.3-p125@mollie-bank"
|
10
|
+
|
11
|
+
# Uncomment the following lines if you want to verify rvm version per project
|
12
|
+
# rvmrc_rvm_version="1.10.3" # 1.10.1 seams as a safe start
|
13
|
+
# eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
|
14
|
+
# echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
|
15
|
+
# return 1
|
16
|
+
# }
|
17
|
+
|
18
|
+
# First we attempt to load the desired environment directly from the environment
|
19
|
+
# file. This is very fast and efficient compared to running through the entire
|
20
|
+
# CLI and selector. If you want feedback on which environment was used then
|
21
|
+
# insert the word 'use' after --create as this triggers verbose mode.
|
22
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
|
23
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
|
24
|
+
then
|
25
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
26
|
+
[[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
|
27
|
+
\. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
|
28
|
+
else
|
29
|
+
# If the environment file has not yet been created, use the RVM CLI to select.
|
30
|
+
rvm --create "$environment_id" || {
|
31
|
+
echo "Failed to create RVM environment '${environment_id}'."
|
32
|
+
return 1
|
33
|
+
}
|
34
|
+
fi
|
35
|
+
|
36
|
+
# If you use bundler, this might be useful to you:
|
37
|
+
# if [[ -s Gemfile ]] && {
|
38
|
+
# ! builtin command -v bundle >/dev/null ||
|
39
|
+
# builtin command -v bundle | grep $rvm_path/bin/bundle >/dev/null
|
40
|
+
# }
|
41
|
+
# then
|
42
|
+
# printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
|
43
|
+
# gem install bundler
|
44
|
+
# fi
|
45
|
+
# if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
|
46
|
+
# then
|
47
|
+
# bundle install | grep -vE '^Using|Your bundle is complete'
|
48
|
+
# fi
|
data/.travis.yml
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
language: ruby
|
2
|
+
env:
|
3
|
+
- JRUBY_OPTS="-Xcext.enabled=true"
|
2
4
|
rvm:
|
3
5
|
- 1.8.7
|
4
6
|
- 1.9.2
|
5
7
|
- 1.9.3
|
6
|
-
-
|
8
|
+
- 2.0.0
|
9
|
+
- jruby-18mode
|
7
10
|
- ruby-head
|
11
|
+
- jruby-head
|
12
|
+
- ree
|
13
|
+
matrix:
|
14
|
+
allow_failures:
|
15
|
+
- rvm: ruby-head
|
16
|
+
- rvm: jruby-head
|
8
17
|
script: "bundle exec rake spec"
|
9
|
-
notifications:
|
10
|
-
recipients:
|
11
|
-
- manuel@manuelles.nl
|
data/README.md
CHANGED
@@ -1,10 +1,13 @@
|
|
1
|
-
# Mollie-Bank [][travis] [][gemversion] [][travis] [][coveralls]
|
2
2
|
|
3
|
+
[gemversion]: http://badge.fury.io/rb/mollie-bank
|
3
4
|
[travis]: http://travis-ci.org/manuelvanrijn/mollie-bank
|
4
|
-
[
|
5
|
+
[coveralls]: https://coveralls.io/r/manuelvanrijn/mollie-bank?branch=gems-coveralls
|
5
6
|
|
6
7
|
A simple implementation of the "TM Bank" by [Mollie](http://www.mollie.nl), but without the portforward stuff to test your iDeal transactions localy.
|
7
8
|
|
9
|
+

|
10
|
+
|
8
11
|
## Getting started
|
9
12
|
|
10
13
|
### Install
|
@@ -40,3 +43,5 @@ A detailed overview of can be found in the [CHANGELOG](https://github.com/manuel
|
|
40
43
|
## Copyright
|
41
44
|
|
42
45
|
Copyright © 2012 Manuel van Rijn. See [LICENSE](https://github.com/manuelvanrijn/mollie-bank/blob/master/LICENSE.md) for further details.
|
46
|
+
|
47
|
+
[](http://githalytics.com/manuelvanrijn/mollie-bank)
|
data/lib/mollie-bank.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
module MollieBank
|
3
3
|
# The Sinatra Application
|
4
4
|
class Application < Sinatra::Base
|
5
|
+
register Sinatra::MultiRoute
|
6
|
+
|
5
7
|
set :static, true
|
6
8
|
set :public_folder, File.expand_path('..', __FILE__)
|
7
9
|
|
@@ -71,7 +73,11 @@ module MollieBank
|
|
71
73
|
rescue
|
72
74
|
end
|
73
75
|
|
74
|
-
|
76
|
+
redirect_url = "#{returnurl}&transaction_id=#{transaction_id}"
|
77
|
+
# if return url already contains a '?' we have to append the transaction_id with a '&'
|
78
|
+
redirect_url = "#{returnurl}?transaction_id=#{transaction_id}" if returnurl.split('?').count == 1
|
79
|
+
|
80
|
+
redirect redirect_url
|
75
81
|
end
|
76
82
|
end
|
77
83
|
|
@@ -88,7 +94,7 @@ module MollieBank
|
|
88
94
|
# @example
|
89
95
|
# # checks if a order was paid
|
90
96
|
# http://localhost:4567/xml/ideal?a=check
|
91
|
-
post '/xml/ideal' do
|
97
|
+
post '/xml/ideal', '/xml/ideal/' do
|
92
98
|
content_type 'text/xml'
|
93
99
|
case params[:a]
|
94
100
|
when "banklist"
|
@@ -113,7 +119,8 @@ module MollieBank
|
|
113
119
|
|
114
120
|
settings.storage.set(transaction_id, {:paid => false})
|
115
121
|
|
116
|
-
url_path = request.url.split('/xml/ideal')[0]
|
122
|
+
#url_path = request.url.split('/xml/ideal')[0]
|
123
|
+
url_path = "http://#{request.host}:#{Sinatra::Application.port}"
|
117
124
|
|
118
125
|
haml :fetch, :layout => false, :locals => {
|
119
126
|
:transaction_id => transaction_id,
|
@@ -149,7 +156,7 @@ module MollieBank
|
|
149
156
|
|
150
157
|
# Render the XML error for a specific code
|
151
158
|
#
|
152
|
-
# @param [int]
|
159
|
+
# @param [int] code
|
153
160
|
def error(code)
|
154
161
|
# Mollie codes taken from https://www.mollie.nl/support/documentatie/betaaldiensten/ideal/en/
|
155
162
|
errors = []
|
data/lib/mollie-bank/version.rb
CHANGED
data/mollie-bank.gemspec
CHANGED
@@ -26,9 +26,11 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_development_dependency "yard"
|
27
27
|
s.add_development_dependency "yard-sinatra"
|
28
28
|
s.add_development_dependency "simplecov"
|
29
|
+
s.add_development_dependency "coveralls"
|
29
30
|
|
30
31
|
s.add_dependency "rake", "> 0.9.0"
|
31
32
|
s.add_dependency "uuid", "> 1.0"
|
32
33
|
s.add_dependency "haml", "> 3.0"
|
33
|
-
s.add_dependency "sinatra", "~> 1.
|
34
|
+
s.add_dependency "sinatra", "~> 1.4.0"
|
35
|
+
s.add_dependency "sinatra-contrib", "~> 1.4.0"
|
34
36
|
end
|
data/spec/backend_spec.rb
CHANGED
@@ -11,6 +11,16 @@ describe "backend" do
|
|
11
11
|
xml.response.bank.bank_id.content.should == "0001"
|
12
12
|
xml.response.bank.bank_name.content.should == "Mollie Bank"
|
13
13
|
end
|
14
|
+
it "should also return the Mollie bank when requesting /xml/ideal/?a=banklist" do
|
15
|
+
post '/xml/ideal/', {
|
16
|
+
:a => 'banklist'
|
17
|
+
}
|
18
|
+
|
19
|
+
last_response.should be_ok
|
20
|
+
xml = Nokogiri::Slop(last_response.body)
|
21
|
+
xml.response.bank.bank_id.content.should == "0001"
|
22
|
+
xml.response.bank.bank_name.content.should == "Mollie Bank"
|
23
|
+
end
|
14
24
|
it "should return the correct xml for /xml/ideal?a=fetch" do
|
15
25
|
post '/xml/ideal', {
|
16
26
|
:a => 'fetch',
|
@@ -27,7 +37,7 @@ describe "backend" do
|
|
27
37
|
xml.response.order.transaction_id.content.should_not be_blank
|
28
38
|
xml.response.order.amount.content.should == "1000"
|
29
39
|
xml.response.order.currency.content.should == "EUR"
|
30
|
-
xml.response.order.URL.content.should contain "http://example.org/ideal?transaction_id="
|
40
|
+
xml.response.order.URL.content.should contain "http://example.org:4567/ideal?transaction_id="
|
31
41
|
xml.response.order.message.content.should == "Your iDEAL-payment has successfully been setup. Your customer should visit the given URL to make the payment"
|
32
42
|
end
|
33
43
|
it "should return the true if paid" do
|
data/spec/frontend_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,137 +1,197 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mollie-bank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Manuel van Rijn
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: nokogiri
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: webrat
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: redcarpet
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: yard
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: yard-sinatra
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
|
-
- -
|
87
|
+
- - '>='
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: simplecov
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
|
-
- -
|
101
|
+
- - '>='
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: '0'
|
88
104
|
type: :development
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
91
125
|
- !ruby/object:Gem::Dependency
|
92
126
|
name: rake
|
93
|
-
requirement:
|
94
|
-
none: false
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
95
128
|
requirements:
|
96
|
-
- -
|
129
|
+
- - '>'
|
97
130
|
- !ruby/object:Gem::Version
|
98
131
|
version: 0.9.0
|
99
132
|
type: :runtime
|
100
133
|
prerelease: false
|
101
|
-
version_requirements:
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>'
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.9.0
|
102
139
|
- !ruby/object:Gem::Dependency
|
103
140
|
name: uuid
|
104
|
-
requirement:
|
105
|
-
none: false
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
106
142
|
requirements:
|
107
|
-
- -
|
143
|
+
- - '>'
|
108
144
|
- !ruby/object:Gem::Version
|
109
145
|
version: '1.0'
|
110
146
|
type: :runtime
|
111
147
|
prerelease: false
|
112
|
-
version_requirements:
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>'
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.0'
|
113
153
|
- !ruby/object:Gem::Dependency
|
114
154
|
name: haml
|
115
|
-
requirement:
|
116
|
-
none: false
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
117
156
|
requirements:
|
118
|
-
- -
|
157
|
+
- - '>'
|
119
158
|
- !ruby/object:Gem::Version
|
120
159
|
version: '3.0'
|
121
160
|
type: :runtime
|
122
161
|
prerelease: false
|
123
|
-
version_requirements:
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>'
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.0'
|
124
167
|
- !ruby/object:Gem::Dependency
|
125
168
|
name: sinatra
|
126
|
-
requirement:
|
127
|
-
none: false
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
128
170
|
requirements:
|
129
171
|
- - ~>
|
130
172
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
173
|
+
version: 1.4.0
|
132
174
|
type: :runtime
|
133
175
|
prerelease: false
|
134
|
-
version_requirements:
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ~>
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 1.4.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: sinatra-contrib
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ~>
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 1.4.0
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ~>
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 1.4.0
|
135
195
|
description: A small sinatra server that supports all the actions Mollie iDeal API
|
136
196
|
needs to make a payment. Now you can test your transactions on you local machine
|
137
197
|
without having to make portforwards
|
@@ -144,6 +204,7 @@ extra_rdoc_files: []
|
|
144
204
|
files:
|
145
205
|
- .gitignore
|
146
206
|
- .rspec
|
207
|
+
- .rvmrc
|
147
208
|
- .travis.yml
|
148
209
|
- .yardopts
|
149
210
|
- CHANGELOG.md
|
@@ -181,33 +242,30 @@ files:
|
|
181
242
|
- spec/spec_helper.rb
|
182
243
|
homepage: https://github.com/manuelvanrijn/mollie-bank
|
183
244
|
licenses: []
|
245
|
+
metadata: {}
|
184
246
|
post_install_message:
|
185
247
|
rdoc_options: []
|
186
248
|
require_paths:
|
187
249
|
- lib
|
188
250
|
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
-
none: false
|
190
251
|
requirements:
|
191
|
-
- -
|
252
|
+
- - '>='
|
192
253
|
- !ruby/object:Gem::Version
|
193
254
|
version: '0'
|
194
|
-
segments:
|
195
|
-
- 0
|
196
|
-
hash: 4653816000511860
|
197
255
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
|
-
none: false
|
199
256
|
requirements:
|
200
|
-
- -
|
257
|
+
- - '>='
|
201
258
|
- !ruby/object:Gem::Version
|
202
259
|
version: '0'
|
203
|
-
segments:
|
204
|
-
- 0
|
205
|
-
hash: 4653816000511860
|
206
260
|
requirements: []
|
207
261
|
rubyforge_project: mollie-bank
|
208
|
-
rubygems_version:
|
262
|
+
rubygems_version: 2.0.0
|
209
263
|
signing_key:
|
210
|
-
specification_version:
|
264
|
+
specification_version: 4
|
211
265
|
summary: Mollie Bank server to make Mollie iDeal payments on your local machine
|
212
|
-
test_files:
|
266
|
+
test_files:
|
267
|
+
- spec/backend_spec.rb
|
268
|
+
- spec/errors_spec.rb
|
269
|
+
- spec/frontend_spec.rb
|
270
|
+
- spec/spec_helper.rb
|
213
271
|
has_rdoc:
|