adyen-skinbuilder 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/.gitignore +3 -4
  2. data/.travis.yml +5 -0
  3. data/CHANGELOG.md +22 -0
  4. data/Gemfile.lock +51 -7
  5. data/LICENSE +3 -3
  6. data/README.markdown +83 -24
  7. data/Rakefile +6 -0
  8. data/adyen-skinbuilder.gemspec +12 -11
  9. data/bin/adyen-skinbuilder +28 -3
  10. data/lib/adyen-skinbuilder.rb +1 -4
  11. data/lib/adyen-skinbuilder/helper/adyen.rb +29 -0
  12. data/lib/adyen-skinbuilder/helper/render.rb +32 -0
  13. data/lib/adyen-skinbuilder/server.rb +112 -58
  14. data/lib/adyen-skinbuilder/server/views/_adyen_form.html.erb +37 -0
  15. data/{adyen/main_content.html → lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb} +534 -530
  16. data/lib/adyen-skinbuilder/server/views/css/reset.css +306 -0
  17. data/lib/adyen-skinbuilder/server/views/img/icons/error.png +0 -0
  18. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK1.png +0 -0
  19. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK10.png +0 -0
  20. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK2.png +0 -0
  21. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK3.png +0 -0
  22. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK4.png +0 -0
  23. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK5.png +0 -0
  24. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK6.png +0 -0
  25. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK7.png +0 -0
  26. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK8.png +0 -0
  27. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK9.png +0 -0
  28. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKCANCELLED.png +0 -0
  29. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKPENDING.png +0 -0
  30. data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKREFUSED.png +0 -0
  31. data/lib/adyen-skinbuilder/server/views/img/pm/amex_small.png +0 -0
  32. data/lib/adyen-skinbuilder/server/views/img/pm/card.png +0 -0
  33. data/lib/adyen-skinbuilder/server/views/img/pm/ideal.png +0 -0
  34. data/lib/adyen-skinbuilder/server/views/img/pm/mc_small.png +0 -0
  35. data/lib/adyen-skinbuilder/server/views/img/pm/unknown_small.png +0 -0
  36. data/lib/adyen-skinbuilder/server/views/img/pm/vias_small.png +0 -0
  37. data/lib/adyen-skinbuilder/server/views/img/pm/visa.png +0 -0
  38. data/lib/adyen-skinbuilder/server/views/img/pm/visa_small.png +0 -0
  39. data/lib/adyen-skinbuilder/server/views/index.html.erb +118 -0
  40. data/lib/adyen-skinbuilder/server/views/js/default.js +385 -0
  41. data/lib/adyen-skinbuilder/server/views/layout.html.erb +33 -0
  42. data/lib/adyen-skinbuilder/server/views/skeleton.html +56 -0
  43. data/lib/adyen-skinbuilder/server/views/skin.html.erb +18 -0
  44. data/lib/adyen-skinbuilder/version.rb +1 -1
  45. data/lib/hash.rb +15 -0
  46. data/spec/fixtures/example.zip +0 -0
  47. data/spec/fixtures/skins/DV3tf95f/inc/order_data.txt +1 -0
  48. data/spec/fixtures/skins/JH0815/css/screen.css +262 -0
  49. data/spec/fixtures/skins/JH0815/skin.html.erb +13 -0
  50. data/spec/lib/adyen-skinbuilder/server_spec.rb +166 -38
  51. data/spec/spec_helper.rb +2 -2
  52. metadata +109 -31
  53. data/adyen/skeleton.html +0 -70
  54. data/lib/adyen-skinbuilder/launcher.rb +0 -40
  55. data/lib/adyen-skinbuilder/railtie.rb +0 -9
  56. data/lib/adyen-skinbuilder/tasks/skin.rake +0 -65
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
3
 
4
- Bundler.setup(:default, :test)
4
+ Bundler.setup(:default, :development)
5
5
 
6
- require 'adyen-skinbuilder'
6
+ require 'adyen-skinbuilder/server'
metadata CHANGED
@@ -1,71 +1,68 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adyen-skinbuilder
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 6
10
- version: 0.2.6
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Priit Haamer
14
+ - Tobias Bielohlawek
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2012-03-23 00:00:00 +02:00
19
+ date: 2012-04-13 00:00:00 +03:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
- name: rack
23
+ name: sinatra
23
24
  prerelease: false
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
25
26
  none: false
26
27
  requirements:
27
28
  - - ">="
28
29
  - !ruby/object:Gem::Version
29
- hash: 9
30
+ hash: 3
30
31
  segments:
31
- - 1
32
- - 3
33
- version: "1.3"
32
+ - 0
33
+ version: "0"
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
37
- name: slop
37
+ name: sinatra-contrib
38
38
  prerelease: false
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- hash: 15
44
+ hash: 3
45
45
  segments:
46
- - 1
47
- - 6
48
46
  - 0
49
- version: 1.6.0
47
+ version: "0"
50
48
  type: :runtime
51
49
  version_requirements: *id002
52
50
  - !ruby/object:Gem::Dependency
53
- name: rspec
51
+ name: vegas
54
52
  prerelease: false
55
53
  requirement: &id003 !ruby/object:Gem::Requirement
56
54
  none: false
57
55
  requirements:
58
56
  - - ">="
59
57
  - !ruby/object:Gem::Version
60
- hash: 19
58
+ hash: 3
61
59
  segments:
62
- - 2
63
- - 8
64
- version: "2.8"
65
- type: :development
60
+ - 0
61
+ version: "0"
62
+ type: :runtime
66
63
  version_requirements: *id003
67
64
  - !ruby/object:Gem::Dependency
68
- name: guard-rspec
65
+ name: adyen-admin
69
66
  prerelease: false
70
67
  requirement: &id004 !ruby/object:Gem::Requirement
71
68
  none: false
@@ -76,10 +73,10 @@ dependencies:
76
73
  segments:
77
74
  - 0
78
75
  version: "0"
79
- type: :development
76
+ type: :runtime
80
77
  version_requirements: *id004
81
78
  - !ruby/object:Gem::Dependency
82
- name: rack-test
79
+ name: rake
83
80
  prerelease: false
84
81
  requirement: &id005 !ruby/object:Gem::Requirement
85
82
  none: false
@@ -92,9 +89,52 @@ dependencies:
92
89
  version: "0"
93
90
  type: :development
94
91
  version_requirements: *id005
95
- description: Provides helpful rake tasks and command line tools to run rack server and bundle adyen skin files
92
+ - !ruby/object:Gem::Dependency
93
+ name: rspec
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id006
106
+ - !ruby/object:Gem::Dependency
107
+ name: guard-rspec
108
+ prerelease: false
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
117
+ version: "0"
118
+ type: :development
119
+ version_requirements: *id007
120
+ - !ruby/object:Gem::Dependency
121
+ name: rack-test
122
+ prerelease: false
123
+ requirement: &id008 !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ type: :development
133
+ version_requirements: *id008
134
+ description: Provides helpful command line tools to run sinatra server and bundle adyen skin files
96
135
  email:
97
136
  - priit@edicy.com
137
+ - tobi@soundcloud.com
98
138
  executables:
99
139
  - adyen-skinbuilder
100
140
  extensions: []
@@ -103,6 +143,8 @@ extra_rdoc_files: []
103
143
 
104
144
  files:
105
145
  - .gitignore
146
+ - .travis.yml
147
+ - CHANGELOG.md
106
148
  - Gemfile
107
149
  - Gemfile.lock
108
150
  - Guardfile
@@ -110,16 +152,48 @@ files:
110
152
  - README.markdown
111
153
  - Rakefile
112
154
  - adyen-skinbuilder.gemspec
113
- - adyen/main_content.html
114
- - adyen/skeleton.html
115
155
  - bin/adyen-skinbuilder
116
156
  - lib/adyen-skinbuilder.rb
117
- - lib/adyen-skinbuilder/launcher.rb
118
- - lib/adyen-skinbuilder/railtie.rb
157
+ - lib/adyen-skinbuilder/helper/adyen.rb
158
+ - lib/adyen-skinbuilder/helper/render.rb
119
159
  - lib/adyen-skinbuilder/server.rb
120
- - lib/adyen-skinbuilder/tasks/skin.rake
160
+ - lib/adyen-skinbuilder/server/views/_adyen_form.html.erb
161
+ - lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb
162
+ - lib/adyen-skinbuilder/server/views/css/reset.css
163
+ - lib/adyen-skinbuilder/server/views/img/icons/error.png
164
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK1.png
165
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK10.png
166
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK2.png
167
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK3.png
168
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK4.png
169
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK5.png
170
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK6.png
171
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK7.png
172
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK8.png
173
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANK9.png
174
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANKCANCELLED.png
175
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANKPENDING.png
176
+ - lib/adyen-skinbuilder/server/views/img/pm/TESTBANKREFUSED.png
177
+ - lib/adyen-skinbuilder/server/views/img/pm/amex_small.png
178
+ - lib/adyen-skinbuilder/server/views/img/pm/card.png
179
+ - lib/adyen-skinbuilder/server/views/img/pm/ideal.png
180
+ - lib/adyen-skinbuilder/server/views/img/pm/mc_small.png
181
+ - lib/adyen-skinbuilder/server/views/img/pm/unknown_small.png
182
+ - lib/adyen-skinbuilder/server/views/img/pm/vias_small.png
183
+ - lib/adyen-skinbuilder/server/views/img/pm/visa.png
184
+ - lib/adyen-skinbuilder/server/views/img/pm/visa_small.png
185
+ - lib/adyen-skinbuilder/server/views/index.html.erb
186
+ - lib/adyen-skinbuilder/server/views/js/default.js
187
+ - lib/adyen-skinbuilder/server/views/layout.html.erb
188
+ - lib/adyen-skinbuilder/server/views/skeleton.html
189
+ - lib/adyen-skinbuilder/server/views/skin.html.erb
121
190
  - lib/adyen-skinbuilder/version.rb
191
+ - lib/hash.rb
192
+ - spec/fixtures/example.zip
122
193
  - spec/fixtures/skins/DV3tf95f/css/screen.css
194
+ - spec/fixtures/skins/DV3tf95f/inc/order_data.txt
195
+ - spec/fixtures/skins/JH0815/css/screen.css
196
+ - spec/fixtures/skins/JH0815/skin.html.erb
123
197
  - spec/fixtures/skins/base/css/print.css
124
198
  - spec/fixtures/skins/base/css/screen_ie6.css
125
199
  - spec/fixtures/skins/base/img/Airliner.airjamaica.a340.arp.750pix.jpg
@@ -171,9 +245,13 @@ rubyforge_project:
171
245
  rubygems_version: 1.4.2
172
246
  signing_key:
173
247
  specification_version: 3
174
- summary: Simple Rack server to make coding Adyen skins easier
248
+ summary: Simple Sinatra server to make coding Adyen skins easier
175
249
  test_files:
250
+ - spec/fixtures/example.zip
176
251
  - spec/fixtures/skins/DV3tf95f/css/screen.css
252
+ - spec/fixtures/skins/DV3tf95f/inc/order_data.txt
253
+ - spec/fixtures/skins/JH0815/css/screen.css
254
+ - spec/fixtures/skins/JH0815/skin.html.erb
177
255
  - spec/fixtures/skins/base/css/print.css
178
256
  - spec/fixtures/skins/base/css/screen_ie6.css
179
257
  - spec/fixtures/skins/base/img/Airliner.airjamaica.a340.arp.750pix.jpg
data/adyen/skeleton.html DELETED
@@ -1,70 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>Please enter your payment details</title>
7
-
8
- <link rel="stylesheet" media="screen" type="text/css" href="https://test.adyen.com/hpp/css/reset.css" />
9
- <link rel="stylesheet" media="screen" type="text/css" href="/sf/$skinCode/css/screen.css" />
10
- <link rel="stylesheet" media="print" type="text/css" href="/sf/$skinCode/css/print.css" />
11
- <script type="text/javascript" src="https://test.adyen.com/hpp/js/default.js"></script>
12
-
13
- <script type="text/javascript" src="/sf/$skinCode/js/custom.js"></script>
14
- <!--[if lt IE 7]>
15
- <link rel="stylesheet" type="text/css" href="/sf/$skinCode/css/screen_ie6.css" />
16
- <![endif]-->
17
- </head>
18
- <body>
19
- <script type="text/javascript">
20
- //<![CDATA[
21
- var clientIPAddress = "127.0.0.1";
22
-
23
- var config = new Array();
24
- config["pmmanimation"] = 2;
25
-
26
- //]]>
27
- </script>
28
-
29
- <!-- ### inc/cheader_[locale].txt or inc/cheader.txt (fallback) ### -->
30
- <form id="pageform" action="" method="post" onsubmit="return formValidate(this);">
31
- <script type="text/javascript">
32
- //<![CDATA[
33
- if (notNull(document.getElementById('pageform'))) {
34
- document.getElementById('pageform').setAttribute("autocomplete","off");
35
- }
36
- //]]>
37
- </script>
38
- <div id="content">
39
-
40
- <div id="pmcontent">
41
- <!-- ### inc/pmheader_[locale].txt or inc/pmheader.txt (fallback) ### -->
42
- <div class="padDiv1"></div>
43
-
44
- <!-- ==================== -->
45
- <!-- Adyen Main Content -->
46
- <!-- ==================== -->
47
-
48
- <div class="padDiv2"></div>
49
- <!-- ### inc/pmfooter_[locale].txt or inc/pmfooter.txt (fallback) ### -->
50
- <!-- ### inc/customfields_[locale].txt or inc/customfields.txt (fallback) ### -->
51
-
52
- </div>
53
- </div>
54
- <div id="foot">
55
- <div id="footc">
56
- <div id="nextstep">
57
- <div id="nextstepc">Next Step Text</div>
58
- </div>
59
- <div id="footerb1div">
60
- <input onclick="" type="submit" id="mainSubmit" value="continue" class="footerB nextB" />
61
- </div>
62
- <div id="footerb2div">
63
- <input onclick="" type="button" id="mainBack" value="previous" class="footerB backB" />
64
- </div>
65
- </div>
66
- </div>
67
- </form>
68
- <!-- ### inc/cfooter_[locale].txt or inc/cfooter.txt (fallback) ### -->
69
- </body>
70
- </html>
@@ -1,40 +0,0 @@
1
- require 'slop'
2
-
3
- module Adyen
4
- module SkinBuilder
5
- class Launcher
6
-
7
- def self.ignition(*argv)
8
- opts = Slop.parse do
9
- banner "\nUsage: adyen-skinbuilder [options] path\n"
10
-
11
- on :P, :port, 'Port, defaults to 8888', true, :default => 8888
12
- on :l, :log, 'Show server log'
13
- on :V, :version, 'Print the version' do
14
- puts "Adyen Skinbuilder version #{Adyen::Skinbuilder::VERSION}"
15
- exit
16
- end
17
- on :h, :help, 'Print this help message' do
18
- puts help
19
- exit
20
- end
21
- end
22
-
23
- # If skins directory is not provided or does not exist
24
- if opts.parse.empty? or not File.exists?(File.expand_path(opts.parse.last))
25
- puts opts.help
26
- exit
27
- end
28
-
29
- puts "Using skin directory #{File.expand_path(opts.parse.last)}"
30
- puts "Running server at http://localhost:#{opts[:port]}/"
31
-
32
- Adyen::SkinBuilder::Server.run({
33
- :port => opts[:port],
34
- :log => opts[:log],
35
- :skins_directory => File.expand_path(opts.parse.last)
36
- })
37
- end
38
- end
39
- end
40
- end
@@ -1,9 +0,0 @@
1
- module Adyen
2
- module SkinBuilder
3
- class Railtie < ::Rails::Railtie
4
- rake_tasks do
5
- load 'adyen-skinbuilder/tasks/skin.rake'
6
- end
7
- end
8
- end
9
- end
@@ -1,65 +0,0 @@
1
- require 'adyen-skinbuilder'
2
- require 'zip/zip'
3
-
4
- namespace :adyen do
5
- namespace :skin do
6
-
7
- desc 'Run server to test Adyen skins. Run as rake adyen:skin:server[/path/to/skin/directory]'
8
- task :server, :skin_directory do |t, args|
9
- port, skin_directory = 8888, File.expand_path(args[:skin_directory])
10
-
11
- puts "Using skin directory #{skin_directory}"
12
- puts "Running server at http://localhost:#{port}/"
13
-
14
- Adyen::SkinBuilder::Server.run({:port => port, :log => false, :skin_directory => skin_directory})
15
- end
16
-
17
- desc 'Build adyen skin zip file for upload. Provide SKIN and TARGET environment variables along the way.'
18
- task :build, :skin_directory, :target_directory do |t, args|
19
- skin_directory = File.expand_path(args[:skin_directory] || ENV['SKIN'])
20
- base_directory = File.expand_path(File.join(skin_directory, '..', 'base'))
21
- # Allow the folder of a skin to have a meaningful name in this format:
22
- # some-nice-name-SKINCODE (use a dash as last charachter before SKINCODE)
23
- # Give the zip the full name, but give the top level directory in the zip
24
- # archive only the SKINCODE, otherwise adyen will not accept it
25
- skin_name = File.basename(skin_directory)
26
- skin_code = skin_name[/[a-zA-Z0-9]+$/] || skin_name
27
- target_directory = File.expand_path((args[:target_directory] || ENV['TARGET']))
28
-
29
- # Whether we do or do not have/use a base directory
30
- use_base = File.directory?(base_directory)
31
- puts use_base ? "Using base directory" : "Not using a base directory"
32
-
33
- if File.directory?(skin_directory) and File.directory?(target_directory)
34
- Zip::ZipOutputStream::open(File.join(target_directory, "#{skin_name}.zip")) do |io|
35
- %w(css img inc js res).each do |d|
36
- # First see what files the skin itself provides:
37
- if File.directory?(File.join(skin_directory, d))
38
- Dir.new(File.join(skin_directory, d)).each do |file|
39
- if File.file?(File.join(skin_directory, d, file))
40
- io.put_next_entry("#{skin_code}/#{d}/#{file}")
41
- io.write File.read(File.join(skin_directory, d, file))
42
- end
43
- end
44
- end
45
- # Then, let's see whether the base directory has more than what we got already:
46
- if use_base && File.directory?(File.join(base_directory, d))
47
- Dir.new(File.join(base_directory, d)).each do |file|
48
- # Only use base file if skin does not provide it itself:
49
- if !File.file?(File.join(skin_directory, d, file)) && File.file?(File.join(base_directory, d, file))
50
- io.put_next_entry("#{skin_code}/#{d}/#{file}")
51
- if File.file?(File.join(base_directory, d, file))
52
- io.write File.read(File.join(base_directory, d, file))
53
- end
54
- end
55
- end
56
- end
57
- end
58
- end
59
- puts "Skin zip package was created to #{File.join(target_directory, "#{skin_name}.zip")}"
60
- else
61
- puts "Usage: rake adyen:buildskin[<skin_directory>,<target_directory>] or rake:adyen:buildskin SKIN=/from/dir TARGET=/to/dir"
62
- end
63
- end
64
- end
65
- end