mollie-bank 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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
- - ree
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 [![Build Status](https://secure.travis-ci.org/manuelvanrijn/mollie-bank.png?branch=master)][travis] [![Dependency Status](https://gemnasium.com/manuelvanrijn/mollie-bank.png)][gemnasium]
1
+ # Mollie-Bank [![Gem Version](https://badge.fury.io/rb/mollie-bank.png)][gemversion] [![Build Status](https://secure.travis-ci.org/manuelvanrijn/mollie-bank.png?branch=master)][travis] [![Coverage Status](https://coveralls.io/repos/manuelvanrijn/mollie-bank/badge.png?branch=gems-coveralls)][coveralls]
2
2
 
3
+ [gemversion]: http://badge.fury.io/rb/mollie-bank
3
4
  [travis]: http://travis-ci.org/manuelvanrijn/mollie-bank
4
- [gemnasium]: https://gemnasium.com/manuelvanrijn/mollie-bank
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
+ ![Mollie Bank](http://manuel.manuelles.nl/images/posts/mollie-bank.png)
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
+ [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/c7f118ff9d18b3ec8268969b2c5fff65 "githalytics.com")](http://githalytics.com/manuelvanrijn/mollie-bank)
@@ -1,5 +1,6 @@
1
1
  # EXTERNAL DEPS
2
- require 'sinatra'
2
+ require 'sinatra/base'
3
+ require 'sinatra/multi_route'
3
4
  require 'haml'
4
5
  require 'net/http'
5
6
  require 'uuid'
@@ -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
- redirect returnurl
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] error code
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 = []
@@ -1,4 +1,4 @@
1
1
  module MollieBank
2
2
  # Version number of MollieBank
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
@@ -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.3.0"
34
+ s.add_dependency "sinatra", "~> 1.4.0"
35
+ s.add_dependency "sinatra-contrib", "~> 1.4.0"
34
36
  end
@@ -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
@@ -57,6 +57,6 @@ describe "frontend" do
57
57
 
58
58
  last_response.should be_redirect
59
59
  follow_redirect!
60
- last_request.url.should == 'http://example.org/return.html'
60
+ last_request.url.should == 'http://example.org/return.html?transaction_id=987654'
61
61
  end
62
62
  end
@@ -1,4 +1,9 @@
1
1
  require 'simplecov'
2
+ require 'coveralls'
3
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter
6
+ ]
2
7
  SimpleCov.start
3
8
 
4
9
  # Load the Sinatra app
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.2
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: 2012-02-23 00:00:00.000000000 Z
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: &24437360 !ruby/object:Gem::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: *24437360
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: &24436620 !ruby/object:Gem::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: *24436620
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: &24436060 !ruby/object:Gem::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: *24436060
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: &24435380 !ruby/object:Gem::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: *24435380
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: &24434740 !ruby/object:Gem::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: *24434740
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: &24433980 !ruby/object:Gem::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: *24433980
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: &24432620 !ruby/object:Gem::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: *24432620
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: &24431580 !ruby/object:Gem::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: *24431580
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: &24446720 !ruby/object:Gem::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: *24446720
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: &24444400 !ruby/object:Gem::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: *24444400
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: &24443540 !ruby/object:Gem::Requirement
127
- none: false
169
+ requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
171
  - - ~>
130
172
  - !ruby/object:Gem::Version
131
- version: 1.3.0
173
+ version: 1.4.0
132
174
  type: :runtime
133
175
  prerelease: false
134
- version_requirements: *24443540
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: 1.8.11
262
+ rubygems_version: 2.0.0
209
263
  signing_key:
210
- specification_version: 3
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: