sinatra-ie6nomore 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|