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.
@@ -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: