adyen-skinbuilder 0.2.6 → 0.3.0

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