sinatra-ie6nomore 0.1.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.
- data/.document +5 -0
- data/.gitignore +15 -0
- data/LICENSE +20 -0
- data/README.rdoc +103 -0
- data/Rakefile +99 -0
- data/VERSION +1 -0
- data/lib/sinatra/ie6nomore.i18n.yml +206 -0
- data/lib/sinatra/ie6nomore.rb +156 -0
- data/spec/sinatra-ie6nomore_spec.rb +7 -0
- data/spec/sinatra/ie6nomore_spec.rb +280 -0
- data/spec/spec_helper.rb +50 -0
- metadata +97 -0
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 kematzy
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
= Sinatra::IE6NoMore Extension
|
2
|
+
|
3
|
+
A simple extension in support of the {"IE6 No More"}[www.ie6nomore.com] campaign to rid the world of
|
4
|
+
the nasty bug ridden monstrosity called IE6.
|
5
|
+
|
6
|
+
Check the {"IE6 No More"}[www.ie6nomore.com] site for more information.
|
7
|
+
|
8
|
+
=== Install
|
9
|
+
|
10
|
+
|
11
|
+
sudo gem install kematzy-sinatra-ie6nomore
|
12
|
+
|
13
|
+
=== Usage
|
14
|
+
|
15
|
+
Three steps
|
16
|
+
|
17
|
+
==== Step 1
|
18
|
+
|
19
|
+
Require the Sinatra::IE6NoMore gem
|
20
|
+
|
21
|
+
require 'sinatra/base'
|
22
|
+
|
23
|
+
require 'sinatra/ie6nomore'
|
24
|
+
|
25
|
+
==== Step 2
|
26
|
+
|
27
|
+
Include in your app.
|
28
|
+
|
29
|
+
class MyApp < Sinatra::Application
|
30
|
+
|
31
|
+
helpers Sinatra::IE6NoMore
|
32
|
+
|
33
|
+
<snip...>
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
==== Step 3
|
39
|
+
|
40
|
+
Add this to your <tt>/views/layout.erb</tt> file.
|
41
|
+
|
42
|
+
<html>
|
43
|
+
<body>
|
44
|
+
|
45
|
+
<%= ie6nomore %>
|
46
|
+
|
47
|
+
</body>
|
48
|
+
</html>
|
49
|
+
|
50
|
+
And in your HTML you'll see an output like this:
|
51
|
+
|
52
|
+
<!--[if lt IE 7]>
|
53
|
+
<div style="border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative;">
|
54
|
+
<div style="position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;"><a href="#" onclick="javascript:this.parentNode.parentNode.style.display="none"; return false;"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg" style="border: none;" alt="Close this notice"/></a></div>
|
55
|
+
<div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;">
|
56
|
+
<div style="width: 75px; float: left;"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg" alt="Warning!"/></div>
|
57
|
+
<div style="width: 275px; float: left; font-family: Arial, sans-serif;">
|
58
|
+
<div style="font-size: 14px; font-weight: bold; margin-top: 12px;">You are using an outdated browser</div>
|
59
|
+
<div style="font-size: 12px; margin-top: 6px; line-height: 12px;">For a better experience using this site, please upgrade to a modern web browser.</div>
|
60
|
+
</div>
|
61
|
+
<div style="width: 75px; float: left;"><a href="http://getfirefox.com/" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg" style="border: none;" alt="Get Firefox 3.5"/></a></div>
|
62
|
+
<div style="width: 75px; float: left;"><a href="http://www.browserforthebetter.com/download.html" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg" style="border: none;" alt="Get Internet Explorer 8"/></a></div>
|
63
|
+
<div style="width: 73px; float: left;"><a href="http://www.apple.com/safari/download/" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg" style="border: none;" alt="Get Safari 4"/></a></div>
|
64
|
+
<div style="float: left;"><a href="http://www.google.com/chrome" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg" style="border: none;" alt="Get Google Chrome"/></a></div>
|
65
|
+
</div>
|
66
|
+
</div>
|
67
|
+
<![endif]-->
|
68
|
+
|
69
|
+
|
70
|
+
=== Configuration Options
|
71
|
+
|
72
|
+
* <tt>:locale</tt> => Locale (Default = :en)
|
73
|
+
|
74
|
+
* <tt>:img_host</tt> => The URL to the ie6nomore images (Default = http://www.ie6nomore.com/files/theme). <b>NB!</b> No trailing slash
|
75
|
+
|
76
|
+
* <tt>:border</tt> => The div border color. (Default = "1px solid #F7941D")
|
77
|
+
|
78
|
+
* <tt>:background</tt> => The div background color. (Default = "#FEEFDA")
|
79
|
+
|
80
|
+
* <tt>:text_color</tt> => The div text color. (Default = "black")
|
81
|
+
|
82
|
+
=== Localizations
|
83
|
+
|
84
|
+
Currently supported localizations are:
|
85
|
+
|
86
|
+
* English (en)
|
87
|
+
* Spanish (es)
|
88
|
+
* French (fr)
|
89
|
+
* Portugese (br)
|
90
|
+
* Italian (it)
|
91
|
+
* Japanese (jp)
|
92
|
+
* Swedish (se)
|
93
|
+
|
94
|
+
|
95
|
+
== TODOs
|
96
|
+
|
97
|
+
* Rake task to harvest all IE6NoMore images and store them on local server.
|
98
|
+
* Further localizations
|
99
|
+
|
100
|
+
|
101
|
+
== Copyright
|
102
|
+
|
103
|
+
Copyright (c) 2009 kematzy. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "sinatra-ie6nomore"
|
8
|
+
gem.summary = %Q{'IE6 No More' Sinatra Extension to make the eradication of IE6 easier}
|
9
|
+
gem.email = "kematzy@gmail.com"
|
10
|
+
gem.homepage = "http://github.com/kematzy/sinatra-ie6nomore"
|
11
|
+
gem.authors = ["kematzy"]
|
12
|
+
gem.add_dependency('sinatra', '>= 0.9.2')
|
13
|
+
gem.add_development_dependency('spec', '>= 1.2.7')
|
14
|
+
gem.add_development_dependency('rspec_hpricot_matchers', '>= 1.0.0')
|
15
|
+
|
16
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
|
+
end
|
18
|
+
|
19
|
+
rescue LoadError
|
20
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
21
|
+
end
|
22
|
+
|
23
|
+
require 'spec/rake/spectask'
|
24
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
25
|
+
spec.libs << 'lib' << 'spec'
|
26
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
27
|
+
end
|
28
|
+
|
29
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
30
|
+
spec.libs << 'lib' << 'spec'
|
31
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
32
|
+
spec.rcov = true
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
namespace :spec do
|
37
|
+
|
38
|
+
desc "Run all specifications verbosely"
|
39
|
+
Spec::Rake::SpecTask.new(:verbose) do |t|
|
40
|
+
t.libs << "lib"
|
41
|
+
t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
|
42
|
+
end
|
43
|
+
|
44
|
+
desc "Run specific spec verbosely (SPEC=/path/2/file)"
|
45
|
+
Spec::Rake::SpecTask.new(:select) do |t|
|
46
|
+
t.libs << "lib"
|
47
|
+
t.spec_files = [ENV["SPEC"]]
|
48
|
+
t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
task :default => :spec
|
54
|
+
|
55
|
+
require 'rake/rdoctask'
|
56
|
+
Rake::RDocTask.new do |rdoc|
|
57
|
+
if File.exist?('VERSION.yml')
|
58
|
+
config = YAML.load(File.read('VERSION.yml'))
|
59
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
60
|
+
else
|
61
|
+
version = ""
|
62
|
+
end
|
63
|
+
|
64
|
+
rdoc.rdoc_dir = 'rdoc'
|
65
|
+
rdoc.title = "sinatra-ie6nomore #{version}"
|
66
|
+
rdoc.rdoc_files.include('README*')
|
67
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
68
|
+
end
|
69
|
+
|
70
|
+
desc 'Build the rdoc HTML Files'
|
71
|
+
task :docs do
|
72
|
+
if File.exist?('VERSION')
|
73
|
+
version = File.read('VERSION')
|
74
|
+
else
|
75
|
+
version = "undefined"
|
76
|
+
end
|
77
|
+
|
78
|
+
sh "sdoc -N --title 'Sinatra::IE6NoMore v#{version}' lib/sinatra README.rdoc"
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
namespace :docs do
|
83
|
+
|
84
|
+
desc 'Remove rdoc products'
|
85
|
+
task :remove => [:clobber_rdoc]
|
86
|
+
|
87
|
+
desc 'Force a rebuild of the RDOC files'
|
88
|
+
task :rebuild => [:rerdoc]
|
89
|
+
|
90
|
+
desc 'Build docs, and open in browser for viewing (specify BROWSER)'
|
91
|
+
task :open => [:docs] do
|
92
|
+
browser = ENV["BROWSER"] || "safari"
|
93
|
+
sh "open -a #{browser} doc/index.html"
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,206 @@
|
|
1
|
+
## IE6 NO MORE Localizations File
|
2
|
+
##
|
3
|
+
##
|
4
|
+
##
|
5
|
+
|
6
|
+
# ENGLISH
|
7
|
+
en:
|
8
|
+
header: "You are using an outdated browser"
|
9
|
+
sub: "For a better experience using this site, please upgrade to a modern web browser."
|
10
|
+
close: "Close this notice"
|
11
|
+
get: Get
|
12
|
+
ie_url: "http://www.browserforthebetter.com/download.html"
|
13
|
+
ff_url: "http://getfirefox.com/"
|
14
|
+
safari_url: "http://www.apple.com/safari/download/"
|
15
|
+
chrome_url: "http://www.google.com/chrome"
|
16
|
+
|
17
|
+
# SPANISH
|
18
|
+
es:
|
19
|
+
header: "Usted está usando un navegador obsoleto."
|
20
|
+
sub: "Para navegar mejor por este sitio, por favor, actualice su navegador."
|
21
|
+
close: "Cierra este aviso"
|
22
|
+
get: Consiga
|
23
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=es"
|
24
|
+
ff_url: "http://www.mozilla-europe.org/es/firefox/"
|
25
|
+
safari_url: "http://www.apple.com/es/safari/download/"
|
26
|
+
chrome_url: "http://www.google.com/chrome?hl=es"
|
27
|
+
|
28
|
+
# French
|
29
|
+
fr:
|
30
|
+
header: "Vous utilisez un navigateur dépassé depuis près de 8 ans!"
|
31
|
+
sub: "Pour une meilleure expérience web, prenez le temps de mettre votre navigateur à jour."
|
32
|
+
close: "Fermez cette notification"
|
33
|
+
get: Obtenez
|
34
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=fr"
|
35
|
+
ff_url: "http://fr.www.mozilla.com/fr/"
|
36
|
+
safari_url: "http://www.apple.com/fr/safari/download/"
|
37
|
+
chrome_url: "http://www.google.com/chrome?hl=fr"
|
38
|
+
|
39
|
+
# Portugese
|
40
|
+
br:
|
41
|
+
header: "Você está usando um navegador desatualizado"
|
42
|
+
sub: "Para navegar melhor neste site, por favor, atualize seu navegador."
|
43
|
+
close: "Feche esta observação"
|
44
|
+
get: Obtenha
|
45
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=pt-br"
|
46
|
+
ff_url: "http://pt-br.www.mozilla.com/pt-BR/"
|
47
|
+
safari_url: "http://www.apple.com/br/safari/download/"
|
48
|
+
chrome_url: "http://www.google.com/chrome?hl=pt-BR"
|
49
|
+
|
50
|
+
# Italian
|
51
|
+
it:
|
52
|
+
header: "Stai usando un browser obsoleto"
|
53
|
+
sub: "Per una migliore navigazione su questo sito, per cortesia passa ad un browser di ultima generazione."
|
54
|
+
close: "Chiuda questo avviso"
|
55
|
+
get: Ottenga
|
56
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=it"
|
57
|
+
ff_url: "http://www.mozilla-europe.org/it/"
|
58
|
+
safari_url: "http://www.apple.com/it/safari/download/"
|
59
|
+
chrome_url: "http://www.google.com/chrome?hl=it"
|
60
|
+
|
61
|
+
# Japanese
|
62
|
+
jp:
|
63
|
+
header: ">あなたは旧式ブラウザをご利用中です"
|
64
|
+
sub: "このウェブサイトを快適に閲覧するにはブラウザをアップグレードしてください。"
|
65
|
+
close: "この注意を閉じなさい"
|
66
|
+
get: Get
|
67
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=ja"
|
68
|
+
ff_url: "http://www.mozilla.jp/"
|
69
|
+
safari_url: "http://www.apple.com/jp/safari/download/"
|
70
|
+
chrome_url: "http://www.google.com/chrome?hl=ja"
|
71
|
+
|
72
|
+
# Swedish
|
73
|
+
se:
|
74
|
+
header: "Du använder en föråldrad webbläsare"
|
75
|
+
sub: "För en bättre upplevelse på denna webbplats, vänligen byt till en modern webbläsare."
|
76
|
+
close: "Stäng denna notering"
|
77
|
+
get: "Ladda ner"
|
78
|
+
ie_url: "http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=sv-SE"
|
79
|
+
ff_url: "http://sv-se.www.mozilla.com/sv-SE/"
|
80
|
+
safari_url: "http://www.apple.com/se/safari/download/"
|
81
|
+
chrome_url: "http://www.google.com/chrome?hl=sv-SE"
|
82
|
+
|
83
|
+
## AWAITING TRANSLATIONS::
|
84
|
+
#
|
85
|
+
# # Thai
|
86
|
+
# th:
|
87
|
+
# header: ""
|
88
|
+
# sub: ""
|
89
|
+
# close: ""
|
90
|
+
# get: ""
|
91
|
+
# ie_url: ""
|
92
|
+
# ff_url: ""
|
93
|
+
# safari_url: ""
|
94
|
+
# chrome_url: ""
|
95
|
+
#
|
96
|
+
# # Chinese
|
97
|
+
# ch:
|
98
|
+
# header: ""
|
99
|
+
# sub: ""
|
100
|
+
# close: ""
|
101
|
+
# get: ""
|
102
|
+
# ie_url: ""
|
103
|
+
# ff_url: ""
|
104
|
+
# safari_url: ""
|
105
|
+
# chrome_url: ""
|
106
|
+
#
|
107
|
+
# # Hungarian
|
108
|
+
# hu:
|
109
|
+
# header: ""
|
110
|
+
# sub: ""
|
111
|
+
# close: ""
|
112
|
+
# get: ""
|
113
|
+
# ie_url: ""
|
114
|
+
# ff_url: ""
|
115
|
+
# safari_url: ""
|
116
|
+
# chrome_url: ""
|
117
|
+
#
|
118
|
+
# # Dutch
|
119
|
+
# nl:
|
120
|
+
# header: ""
|
121
|
+
# sub: ""
|
122
|
+
# close: ""
|
123
|
+
# get: ""
|
124
|
+
# ie_url: ""
|
125
|
+
# ff_url: ""
|
126
|
+
# safari_url: ""
|
127
|
+
# chrome_url: ""
|
128
|
+
#
|
129
|
+
# # Polish
|
130
|
+
# po:
|
131
|
+
# header: ""
|
132
|
+
# sub: ""
|
133
|
+
# close: ""
|
134
|
+
# get: ""
|
135
|
+
# ie_url: ""
|
136
|
+
# ff_url: ""
|
137
|
+
# safari_url: ""
|
138
|
+
# chrome_url: ""
|
139
|
+
#
|
140
|
+
# # Danish
|
141
|
+
# da:
|
142
|
+
# header: ""
|
143
|
+
# sub: ""
|
144
|
+
# close: ""
|
145
|
+
# get: ""
|
146
|
+
# ie_url: ""
|
147
|
+
# ff_url: ""
|
148
|
+
# safari_url: ""
|
149
|
+
# chrome_url: ""
|
150
|
+
#
|
151
|
+
# # German
|
152
|
+
# de:
|
153
|
+
# header: ""
|
154
|
+
# sub: ""
|
155
|
+
# close: ""
|
156
|
+
# get: ""
|
157
|
+
# ie_url: ""
|
158
|
+
# ff_url: ""
|
159
|
+
# safari_url: ""
|
160
|
+
# chrome_url: ""
|
161
|
+
#
|
162
|
+
# # Russian
|
163
|
+
# ru:
|
164
|
+
# header: ""
|
165
|
+
# sub: ""
|
166
|
+
# close: ""
|
167
|
+
# get: ""
|
168
|
+
# ie_url: ""
|
169
|
+
# ff_url: ""
|
170
|
+
# safari_url: ""
|
171
|
+
# chrome_url: ""
|
172
|
+
#
|
173
|
+
# # Arabic
|
174
|
+
# arabic:
|
175
|
+
# header: ""
|
176
|
+
# sub: ""
|
177
|
+
# close: ""
|
178
|
+
# get: ""
|
179
|
+
# ie_url: ""
|
180
|
+
# ff_url: ""
|
181
|
+
# safari_url: ""
|
182
|
+
# chrome_url: ""
|
183
|
+
#
|
184
|
+
# # Farsi
|
185
|
+
# farsi:
|
186
|
+
# header: ""
|
187
|
+
# sub: ""
|
188
|
+
# close: ""
|
189
|
+
# get: ""
|
190
|
+
# ie_url: ""
|
191
|
+
# ff_url: ""
|
192
|
+
# safari_url: ""
|
193
|
+
# chrome_url: ""
|
194
|
+
#
|
195
|
+
# # Hebrew
|
196
|
+
# he:
|
197
|
+
# header: ""
|
198
|
+
# sub: ""
|
199
|
+
# close: ""
|
200
|
+
# get: ""
|
201
|
+
# ie_url: ""
|
202
|
+
# ff_url: ""
|
203
|
+
# safari_url: ""
|
204
|
+
# chrome_url: ""
|
205
|
+
#
|
206
|
+
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module Sinatra
|
5
|
+
|
6
|
+
# = Sinatra::IE6NoMore Extension
|
7
|
+
#
|
8
|
+
# A simple extension in support of the IE6 No More[www.ie6nomore.com] campaign to rid the world of
|
9
|
+
# the nasty bug ridden monstrosity called IE6.
|
10
|
+
#
|
11
|
+
# Check the IE6 No More[www.ie6nomore.com] site for more information.
|
12
|
+
#
|
13
|
+
# === Install
|
14
|
+
#
|
15
|
+
#
|
16
|
+
# sudo gem install kematzy-sinatra-ie6nomore
|
17
|
+
#
|
18
|
+
# === Usage
|
19
|
+
#
|
20
|
+
# Three steps
|
21
|
+
#
|
22
|
+
# ==== Step 1
|
23
|
+
#
|
24
|
+
# Require the Sinatra::IE6NoMore gem
|
25
|
+
#
|
26
|
+
# require 'sinatra/base'
|
27
|
+
#
|
28
|
+
# require 'sinatra/ie6nomore'
|
29
|
+
#
|
30
|
+
# ==== Step 2
|
31
|
+
#
|
32
|
+
# Include in your app.
|
33
|
+
#
|
34
|
+
# class MyApp < Sinatra::Application
|
35
|
+
#
|
36
|
+
# helpers Sinatra::IE6NoMore
|
37
|
+
#
|
38
|
+
# <snip...>
|
39
|
+
#
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
#
|
43
|
+
# ==== Step 3
|
44
|
+
#
|
45
|
+
# Add this to your <tt>/views/layout.erb</tt> file.
|
46
|
+
#
|
47
|
+
# <html>
|
48
|
+
# <body>
|
49
|
+
#
|
50
|
+
# <%= ie6nomore %>
|
51
|
+
#
|
52
|
+
# </body>
|
53
|
+
# </html>
|
54
|
+
#
|
55
|
+
# And in your HTML you'll see an output like this:
|
56
|
+
#
|
57
|
+
# <!--[if lt IE 7]>
|
58
|
+
# <div style="border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative;">
|
59
|
+
# <div style="position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;"><a href="#" onclick="javascript:this.parentNode.parentNode.style.display="none"; return false;"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg" style="border: none;" alt="Close this notice"/></a></div>
|
60
|
+
# <div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;">
|
61
|
+
# <div style="width: 75px; float: left;"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg" alt="Warning!"/></div>
|
62
|
+
# <div style="width: 275px; float: left; font-family: Arial, sans-serif;">
|
63
|
+
# <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">You are using an outdated browser</div>
|
64
|
+
# <div style="font-size: 12px; margin-top: 6px; line-height: 12px;">For a better experience using this site, please upgrade to a modern web browser.</div>
|
65
|
+
# </div>
|
66
|
+
# <div style="width: 75px; float: left;"><a href="http://getfirefox.com/" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg" style="border: none;" alt="Get Firefox 3.5"/></a></div>
|
67
|
+
# <div style="width: 75px; float: left;"><a href="http://www.browserforthebetter.com/download.html" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg" style="border: none;" alt="Get Internet Explorer 8"/></a></div>
|
68
|
+
# <div style="width: 73px; float: left;"><a href="http://www.apple.com/safari/download/" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg" style="border: none;" alt="Get Safari 4"/></a></div>
|
69
|
+
# <div style="float: left;"><a href="http://www.google.com/chrome" target="_blank"><img src="http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg" style="border: none;" alt="Get Google Chrome"/></a></div>
|
70
|
+
# </div>
|
71
|
+
# </div>
|
72
|
+
# <![endif]-->
|
73
|
+
#
|
74
|
+
#
|
75
|
+
# See documentation below for further usage examples.
|
76
|
+
#
|
77
|
+
#
|
78
|
+
module IE6NoMore
|
79
|
+
|
80
|
+
VERSION = '0.1.0' unless const_defined?(:VERSION)
|
81
|
+
def self.version; "Sinatra::IE6NoMore v#{VERSION}"; end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Outputs the "IE6 No More" banner.
|
85
|
+
#
|
86
|
+
# ==== Params
|
87
|
+
#
|
88
|
+
# * options [Hash] => Optional configurations options
|
89
|
+
# * <tt>:locale</tt> => Locale (Default = :en)
|
90
|
+
# * <tt>:img_host</tt> => The URL to the ie6nomore images (Default = http://www.ie6nomore.com/files/theme). <b>NB!</b> No trailing slash
|
91
|
+
# * <tt>:border</tt> => The div border color. (Default = "1px solid #F7941D")
|
92
|
+
# * <tt>:background</tt> => The div background color. (Default = "#FEEFDA")
|
93
|
+
# * <tt>:text_color</tt> => The div text color. (Default = "black")
|
94
|
+
#
|
95
|
+
# ==== Examples
|
96
|
+
#
|
97
|
+
# ie6_no_more(:locale => :es ) => Spanish version
|
98
|
+
#
|
99
|
+
# ie6_no_more(:img_host => "http://www.example.com/images/ie6") => different image host
|
100
|
+
#
|
101
|
+
# ie6_no_more(:border => "2px dashed green", :background => 'black', :text_color => 'white' )
|
102
|
+
# => different color scheme for text, border & background colors
|
103
|
+
#
|
104
|
+
# @api public
|
105
|
+
def ie6_no_more(options = {})
|
106
|
+
o = {
|
107
|
+
:locale => :en,
|
108
|
+
:img_host => "http://www.ie6nomore.com/files/theme",
|
109
|
+
:border => "1px solid #F7941D",
|
110
|
+
:background => "#FEEFDA",
|
111
|
+
:text_color => "black",
|
112
|
+
}.merge(options)
|
113
|
+
|
114
|
+
localizations = load_i18n
|
115
|
+
# set the localisation
|
116
|
+
i18n = localizations[o[:locale].to_s]
|
117
|
+
|
118
|
+
html = %Q[<!--[if lt IE 7]>\n]
|
119
|
+
html << %Q[<div style="border: #{o[:border]}; background: #{o[:background]}; text-align: center; clear: both; height: 75px; position: relative;">\n]
|
120
|
+
html << %Q[ <div style="position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;"><a href="#" onclick="javascript:this.parentNode.parentNode.style.display="none"; return false;"><img src="#{o[:img_host]}/ie6nomore-cornerx.jpg" style="border: none;" alt="#{i18n['close']}"/></a></div>\n]
|
121
|
+
html << %Q[ <div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: #{o[:text_color]};">\n]
|
122
|
+
html << %Q[ <div style="width: 75px; float: left;"><img src="#{o[:img_host]}/ie6nomore-warning.jpg" alt="Warning!"/></div>\n]
|
123
|
+
html << %Q[ <div style="width: 275px; float: left; font-family: Arial, sans-serif;">\n]
|
124
|
+
html << %Q[ <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">#{i18n['header']}</div>\n]
|
125
|
+
html << %Q[ <div style="font-size: 12px; margin-top: 6px; line-height: 12px;">#{i18n['sub']}</div>\n]
|
126
|
+
html << %Q[ </div>\n]
|
127
|
+
html << %Q[ <div style="width: 75px; float: left;"><a href="#{i18n['ff_url']}" target="_blank"><img src="#{o[:img_host]}/ie6nomore-firefox.jpg" style="border: none;" alt="#{i18n['get']} Firefox 3.5"/></a></div>\n]
|
128
|
+
html << %Q[ <div style="width: 75px; float: left;"><a href="#{i18n['ie_url']}" target="_blank"><img src="#{o[:img_host]}/ie6nomore-ie8.jpg" style="border: none;" alt="#{i18n['get']} Internet Explorer 8"/></a></div>\n]
|
129
|
+
html << %Q[ <div style="width: 73px; float: left;"><a href="#{i18n['safari_url']}" target="_blank"><img src="#{o[:img_host]}/ie6nomore-safari.jpg" style="border: none;" alt="#{i18n['get']} Safari 4"/></a></div>\n]
|
130
|
+
html << %Q[ <div style="float: left;"><a href="#{i18n['chrome_url']}" target="_blank"><img src="#{o[:img_host]}/ie6nomore-chrome.jpg" style="border: none;" alt="#{i18n['get']} Google Chrome"/></a></div>\n]
|
131
|
+
html << %Q[ </div>\n]
|
132
|
+
html << %Q[</div>\n<![endif]-->\n]
|
133
|
+
html
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
private
|
138
|
+
|
139
|
+
##
|
140
|
+
# Loads the i18n.yml localizations file and returns a Hash
|
141
|
+
#
|
142
|
+
# ==== Examples
|
143
|
+
#
|
144
|
+
# localizations = load_i18n
|
145
|
+
#
|
146
|
+
# @api private
|
147
|
+
def load_i18n
|
148
|
+
res = YAML.load_file(File.join(File.dirname(__FILE__), 'ie6nomore.i18n.yml'))
|
149
|
+
end
|
150
|
+
|
151
|
+
|
152
|
+
end #/ IE6NoMore
|
153
|
+
|
154
|
+
helpers IE6NoMore
|
155
|
+
|
156
|
+
end #/ Sinatra
|
@@ -0,0 +1,280 @@
|
|
1
|
+
require "#{File.dirname(File.dirname(File.expand_path(__FILE__)))}/spec_helper"
|
2
|
+
|
3
|
+
describe "Sinatra" do
|
4
|
+
|
5
|
+
describe "IE6NoMore" do
|
6
|
+
|
7
|
+
def remove_enclosing_html_comments(markup)
|
8
|
+
return markup.sub('<!--[if lt IE 7]>', '').sub('<![endif]-->','')
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "ie6_no_more" do
|
12
|
+
|
13
|
+
describe "with defaults" do
|
14
|
+
|
15
|
+
it "should return the expected HTML" do
|
16
|
+
erb_app %Q[<%= ie6_no_more %>]
|
17
|
+
markup = last_response.body
|
18
|
+
# markup.should have_tag('debug')
|
19
|
+
# test the comments first before removing
|
20
|
+
markup.should match(/<!--\[if lt IE 7\]/)
|
21
|
+
markup.should match(/<!\[endif\]-->$/)
|
22
|
+
|
23
|
+
# remove the comments so we can test the code output
|
24
|
+
markup = remove_enclosing_html_comments(markup)
|
25
|
+
# markup.should have_tag('debug')
|
26
|
+
|
27
|
+
# we get the border and background through OK
|
28
|
+
markup.should match(/<div style="border: 1px solid #F7941D; background: #FEEFDA;/)
|
29
|
+
|
30
|
+
# we have a warning image
|
31
|
+
markup.should have_tag('div[@style=width: 75px; float: left;] > img') do |img|
|
32
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg'
|
33
|
+
end
|
34
|
+
|
35
|
+
markup.should have_tag('img[@src=http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg]')
|
36
|
+
|
37
|
+
# text
|
38
|
+
markup.should have_tag('img[@alt=Close this notice]')
|
39
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','You are using an outdated browser')
|
40
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','For a better experience using this site, please upgrade to a modern web browser.')
|
41
|
+
|
42
|
+
# browsers
|
43
|
+
markup.should have_tag('div > a[@href=http://getfirefox.com/] > img') do |img|
|
44
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg'
|
45
|
+
img.attributes['alt'].should == 'Get Firefox 3.5'
|
46
|
+
end
|
47
|
+
markup.should have_tag('div > a[@href=http://www.browserforthebetter.com/download.html] > img') do |img|
|
48
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg'
|
49
|
+
img.attributes['alt'].should == 'Get Internet Explorer 8'
|
50
|
+
end
|
51
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/safari/download/] > img') do |img|
|
52
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg'
|
53
|
+
img.attributes['alt'].should == 'Get Safari 4'
|
54
|
+
end
|
55
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome] > img') do |img|
|
56
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg'
|
57
|
+
img.attributes['alt'].should == 'Get Google Chrome'
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end #/ with defaults
|
63
|
+
|
64
|
+
describe "with options" do
|
65
|
+
|
66
|
+
before(:each) do
|
67
|
+
erb_app %Q[<%= ie6_no_more(:img_host => "http://example.com/images", :background => 'yellow', :border => '10px dashed #fff', :text_color => 'red' ) %>]
|
68
|
+
# remove the comments so we can test the code output
|
69
|
+
@markup = remove_enclosing_html_comments(last_response.body)
|
70
|
+
# @markup.should have_tag('debug')
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should set the border style attribute" do
|
74
|
+
@markup.should match(/<div style="border: 10px dashed #fff; background: yellow;/)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should set the background style attribute" do
|
78
|
+
@markup.should match(/<div style="(.*)background: yellow;/)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should set the text color style attribute" do
|
82
|
+
@markup.should match(/<div style="(.*)color: red;/)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should set the image src attributes to the value given by img_host" do
|
86
|
+
@markup.should have_tag('img[@src=http://example.com/images/ie6nomore-cornerx.jpg]')
|
87
|
+
end
|
88
|
+
|
89
|
+
end #/ with options
|
90
|
+
|
91
|
+
|
92
|
+
describe "with localizations" do
|
93
|
+
|
94
|
+
it "should have Spanish version" do
|
95
|
+
erb_app %Q[<%= ie6_no_more(:locale => :es ) %>]
|
96
|
+
# remove the comments so we can test the code output
|
97
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
98
|
+
# markup.should have_tag('debug')
|
99
|
+
|
100
|
+
# text
|
101
|
+
markup.should have_tag('img[@alt=Cierra este aviso]')
|
102
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','Usted está usando un navegador obsoleto.')
|
103
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','Para navegar mejor por este sitio, por favor, actualice su navegador.')
|
104
|
+
|
105
|
+
# browsers
|
106
|
+
markup.should have_tag('div > a[@href=http://www.mozilla-europe.org/es/firefox/] > img') do |img|
|
107
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg'
|
108
|
+
img.attributes['alt'].should == 'Consiga Firefox 3.5'
|
109
|
+
end
|
110
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=es] > img') do |img|
|
111
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg'
|
112
|
+
img.attributes['alt'].should == 'Consiga Internet Explorer 8'
|
113
|
+
end
|
114
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/es/safari/download/] > img') do |img|
|
115
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg'
|
116
|
+
img.attributes['alt'].should == 'Consiga Safari 4'
|
117
|
+
end
|
118
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=es] > img') do |img|
|
119
|
+
img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg'
|
120
|
+
img.attributes['alt'].should == 'Consiga Google Chrome'
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should have French version" do
|
125
|
+
erb_app %Q[<%= ie6_no_more(:locale => :fr ) %>]
|
126
|
+
# remove the comments so we can test the code output
|
127
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
128
|
+
# markup.should have_tag('debug')
|
129
|
+
|
130
|
+
# text
|
131
|
+
markup.should have_tag('img[@alt=Fermez cette notification]')
|
132
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','Vous utilisez un navigateur dépassé depuis près de 8 ans!')
|
133
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','Pour une meilleure expérience web, prenez le temps de mettre votre navigateur à jour.')
|
134
|
+
|
135
|
+
# browsers
|
136
|
+
markup.should have_tag('div > a[@href=http://fr.www.mozilla.com/fr/] > img') do |img|
|
137
|
+
img.attributes['alt'].should == 'Obtenez Firefox 3.5'
|
138
|
+
end
|
139
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=fr] > img') do |img|
|
140
|
+
img.attributes['alt'].should == 'Obtenez Internet Explorer 8'
|
141
|
+
end
|
142
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/fr/safari/download/] > img') do |img|
|
143
|
+
img.attributes['alt'].should == 'Obtenez Safari 4'
|
144
|
+
end
|
145
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=fr] > img') do |img|
|
146
|
+
img.attributes['alt'].should == 'Obtenez Google Chrome'
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should have Portugese version" do
|
151
|
+
erb_app %Q[<%= ie6_no_more(:locale => :br ) %>]
|
152
|
+
# remove the comments so we can test the code output
|
153
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
154
|
+
# markup.should have_tag('debug')
|
155
|
+
|
156
|
+
# text
|
157
|
+
markup.should have_tag('img[@alt=Feche esta observação]')
|
158
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','Você está usando um navegador desatualizado')
|
159
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','Para navegar melhor neste site, por favor, atualize seu navegador.')
|
160
|
+
|
161
|
+
# browsers
|
162
|
+
markup.should have_tag('div > a[@href=http://pt-br.www.mozilla.com/pt-BR/] > img') do |img|
|
163
|
+
img.attributes['alt'].should == 'Obtenha Firefox 3.5'
|
164
|
+
end
|
165
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=pt-br] > img') do |img|
|
166
|
+
img.attributes['alt'].should == 'Obtenha Internet Explorer 8'
|
167
|
+
end
|
168
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/br/safari/download/] > img') do |img|
|
169
|
+
img.attributes['alt'].should == 'Obtenha Safari 4'
|
170
|
+
end
|
171
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=pt-BR] > img') do |img|
|
172
|
+
img.attributes['alt'].should == 'Obtenha Google Chrome'
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should have Italian version" do
|
177
|
+
erb_app %Q[<%= ie6_no_more(:locale => :it ) %>]
|
178
|
+
# remove the comments so we can test the code output
|
179
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
180
|
+
# markup.should have_tag('debug')
|
181
|
+
|
182
|
+
# text
|
183
|
+
markup.should have_tag('img[@alt=Chiuda questo avviso]')
|
184
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','Stai usando un browser obsoleto')
|
185
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','Per una migliore navigazione su questo sito, per cortesia passa ad un browser di ultima generazione.')
|
186
|
+
|
187
|
+
# browsers
|
188
|
+
markup.should have_tag('div > a[@href=http://www.mozilla-europe.org/it/] > img') do |img|
|
189
|
+
img.attributes['alt'].should == 'Ottenga Firefox 3.5'
|
190
|
+
end
|
191
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=it] > img') do |img|
|
192
|
+
img.attributes['alt'].should == 'Ottenga Internet Explorer 8'
|
193
|
+
end
|
194
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/it/safari/download/] > img') do |img|
|
195
|
+
img.attributes['alt'].should == 'Ottenga Safari 4'
|
196
|
+
end
|
197
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=it] > img') do |img|
|
198
|
+
img.attributes['alt'].should == 'Ottenga Google Chrome'
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should have Japanese version" do
|
203
|
+
erb_app %Q[<%= ie6_no_more(:locale => :jp ) %>]
|
204
|
+
# remove the comments so we can test the code output
|
205
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
206
|
+
# markup.should have_tag('debug')
|
207
|
+
|
208
|
+
# text
|
209
|
+
markup.should have_tag('img[@alt=この注意を閉じなさい]')
|
210
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','>あなたは旧式ブラウザをご利用中です')
|
211
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','このウェブサイトを快適に閲覧するにはブラウザをアップグレードしてください。')
|
212
|
+
|
213
|
+
# browsers
|
214
|
+
markup.should have_tag('div > a[@href=http://www.mozilla.jp/] > img') do |img|
|
215
|
+
img.attributes['alt'].should == 'Get Firefox 3.5'
|
216
|
+
end
|
217
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=ja] > img') do |img|
|
218
|
+
img.attributes['alt'].should == 'Get Internet Explorer 8'
|
219
|
+
end
|
220
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/jp/safari/download/] > img') do |img|
|
221
|
+
img.attributes['alt'].should == 'Get Safari 4'
|
222
|
+
end
|
223
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=ja] > img') do |img|
|
224
|
+
img.attributes['alt'].should == 'Get Google Chrome'
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should have Swedish version" do
|
229
|
+
erb_app %Q[<%= ie6_no_more(:locale => :se ) %>]
|
230
|
+
# remove the comments so we can test the code output
|
231
|
+
markup = remove_enclosing_html_comments(last_response.body)
|
232
|
+
# markup.should have_tag('debug')
|
233
|
+
|
234
|
+
# text
|
235
|
+
markup.should have_tag('img[@alt=Stäng denna notering]')
|
236
|
+
markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','Du använder en föråldrad webbläsare')
|
237
|
+
markup.should have_tag('div[@style=font-size: 12px; margin-top: 6px; line-height: 12px;]','För en bättre upplevelse på denna webbplats, vänligen byt till en modern webbläsare.')
|
238
|
+
|
239
|
+
# browsers
|
240
|
+
markup.should have_tag('div > a[@href=http://sv-se.www.mozilla.com/sv-SE/] > img') do |img|
|
241
|
+
img.attributes['alt'].should == 'Ladda ner Firefox 3.5'
|
242
|
+
end
|
243
|
+
markup.should have_tag('div > a[@href=http://www.microsoft.com/downloads/details.aspx?FamilyID=341c2ad5-8c3d-4347-8c03-08cdecd8852b&DisplayLang=sv-SE] > img') do |img|
|
244
|
+
img.attributes['alt'].should == 'Ladda ner Internet Explorer 8'
|
245
|
+
end
|
246
|
+
markup.should have_tag('div > a[@href=http://www.apple.com/se/safari/download/] > img') do |img|
|
247
|
+
img.attributes['alt'].should == 'Ladda ner Safari 4'
|
248
|
+
end
|
249
|
+
markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=sv-SE] > img') do |img|
|
250
|
+
img.attributes['alt'].should == 'Ladda ner Google Chrome'
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should have further localizations" do
|
255
|
+
pending "awaiting translations from www.ie6nomore.com"
|
256
|
+
end
|
257
|
+
|
258
|
+
end #/ with localizations
|
259
|
+
|
260
|
+
end #/ ie6_no_more
|
261
|
+
|
262
|
+
describe "#load_i18n" do
|
263
|
+
|
264
|
+
module Sinatra::IE6NoMore
|
265
|
+
public :load_i18n
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should return a Hash" do
|
269
|
+
app.load_i18n.should be_a_kind_of(Hash)
|
270
|
+
end
|
271
|
+
|
272
|
+
it "should have further tests" do
|
273
|
+
pending "energy and time to fix this...."
|
274
|
+
end
|
275
|
+
|
276
|
+
end #/ #load_i18n
|
277
|
+
|
278
|
+
end #/ IE6NoMore
|
279
|
+
|
280
|
+
end #/ Sinatra
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
require 'spec/interop/test'
|
4
|
+
require 'rack/test'
|
5
|
+
require 'rspec_hpricot_matchers'
|
6
|
+
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
require 'sinatra/ie6nomore'
|
10
|
+
|
11
|
+
Spec::Runner.configure do |config|
|
12
|
+
config.include RspecHpricotMatchers
|
13
|
+
end
|
14
|
+
|
15
|
+
class MyTestApp < Sinatra::Base
|
16
|
+
|
17
|
+
helpers Sinatra::IE6NoMore
|
18
|
+
|
19
|
+
get '/tests' do
|
20
|
+
case params[:engine]
|
21
|
+
when 'erb'
|
22
|
+
erb(params[:view], :layout => params[:layout] )
|
23
|
+
when 'haml'
|
24
|
+
haml(params[:view], :layout => params[:layout] )
|
25
|
+
else
|
26
|
+
params.inspect
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end #/class MyTestApp
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
class Test::Unit::TestCase
|
35
|
+
include Rack::Test::Methods
|
36
|
+
|
37
|
+
def setup
|
38
|
+
Sinatra::Base.set :environment, :test
|
39
|
+
end
|
40
|
+
|
41
|
+
def app
|
42
|
+
MyTestApp.new
|
43
|
+
end
|
44
|
+
|
45
|
+
def erb_app(view, options = {})
|
46
|
+
options = {:layout => '<%= yield %>', :url => '/tests' }.merge(options)
|
47
|
+
get options[:url], :view => view, :layout => options[:layout], :engine => :erb
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
metadata
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sinatra-ie6nomore
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kematzy
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-08-18 00:00:00 +08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: sinatra
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.9.2
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: spec
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.7
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rspec_hpricot_matchers
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.0
|
44
|
+
version:
|
45
|
+
description:
|
46
|
+
email: kematzy@gmail.com
|
47
|
+
executables: []
|
48
|
+
|
49
|
+
extensions: []
|
50
|
+
|
51
|
+
extra_rdoc_files:
|
52
|
+
- LICENSE
|
53
|
+
- README.rdoc
|
54
|
+
files:
|
55
|
+
- .document
|
56
|
+
- .gitignore
|
57
|
+
- LICENSE
|
58
|
+
- README.rdoc
|
59
|
+
- Rakefile
|
60
|
+
- VERSION
|
61
|
+
- lib/sinatra/ie6nomore.i18n.yml
|
62
|
+
- lib/sinatra/ie6nomore.rb
|
63
|
+
- spec/sinatra-ie6nomore_spec.rb
|
64
|
+
- spec/sinatra/ie6nomore_spec.rb
|
65
|
+
- spec/spec_helper.rb
|
66
|
+
has_rdoc: true
|
67
|
+
homepage: http://github.com/kematzy/sinatra-ie6nomore
|
68
|
+
licenses: []
|
69
|
+
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options:
|
72
|
+
- --charset=UTF-8
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
version:
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: "0"
|
86
|
+
version:
|
87
|
+
requirements: []
|
88
|
+
|
89
|
+
rubyforge_project:
|
90
|
+
rubygems_version: 1.3.5
|
91
|
+
signing_key:
|
92
|
+
specification_version: 3
|
93
|
+
summary: "'IE6 No More' Sinatra Extension to make the eradication of IE6 easier"
|
94
|
+
test_files:
|
95
|
+
- spec/sinatra/ie6nomore_spec.rb
|
96
|
+
- spec/sinatra-ie6nomore_spec.rb
|
97
|
+
- spec/spec_helper.rb
|