sinatra-ie6nomore 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,77 +1,119 @@
1
- = Sinatra::IE6NoMore Extension
1
+ = Sinatra::IE6NoMore
2
2
 
3
3
  A simple extension in support of the {"IE6 No More"}[www.ie6nomore.com] campaign to rid the world of
4
4
  the nasty bug ridden monstrosity called IE6.
5
5
 
6
6
  Check the {"IE6 No More"}[www.ie6nomore.com] site for more information.
7
7
 
8
- == Install
8
+ == Installation
9
+
10
+ # Add RubyGems.org (former Gemcutter) to your RubyGems sources
11
+ $ gem sources -a http://rubygems.org
9
12
 
13
+ $ (sudo)? gem install sinatra-ie6nomore
10
14
 
11
- sudo gem install kematzy-sinatra-ie6nomore
15
+ == Dependencies
12
16
 
13
- == Usage
17
+ This Gem depends upon the following:
14
18
 
15
- Three steps
19
+ === Runtime:
16
20
 
17
- === Step 1
21
+ * sinatra ( >= 1.0.a )
18
22
 
19
- Require the Sinatra::IE6NoMore gem
20
23
 
21
- require 'sinatra/base'
22
-
23
- require 'sinatra/ie6nomore'
24
+ === Development & Tests:
24
25
 
25
- === Step 2
26
+ * sinatra-tests (>= 0.1.6)
27
+ * rspec (>= 1.3.0 )
28
+ * rack-test (>= 0.5.3)
29
+ * rspec_hpricot_matchers (>= 0.1.0)
26
30
 
27
- Include in your app.
28
31
 
29
- class MyApp < Sinatra::Application
30
-
31
- helpers Sinatra::IE6NoMore
32
+ == Getting Started
33
+
34
+ To use this extension in your App just follow these two simple steps:
35
+
36
+ === Step 1
37
+
38
+ require 'sinatra/ie6nomore'
39
+
40
+ class YourApp < Sinatra::Base
41
+ helpers Sinatra::IE6NoMore::Helpers
42
+ # or
43
+ register(Sinatra::IE6NoMore)
32
44
 
33
45
  <snip...>
34
-
35
46
  end
36
47
 
48
+ === Step 2
37
49
 
38
- === Step 3
39
-
40
- Add this to your <tt>/views/layout.erb</tt> file.
50
+ Add this to your <tt>../views/layout.erb</tt> file.
41
51
 
42
52
  <html>
43
53
  <body>
44
54
 
45
55
  <%= ie6_no_more %>
46
56
 
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>
57
+ <snip...>
58
+
59
+
60
+ And in your HTML you'll see some output like this:
61
+
62
+ <!--[if lt IE 7]>
63
+ <div style="border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative;">
64
+ <div style="position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;">
65
+ <a href="#" onclick="javascript:this.parentNode.parentNode.style.display="none"; return false;">
66
+ <img src="/images/ie6nomore/ie6nomore-cornerx.jpg" style="border: none;" alt="Close this notice"/>
67
+ </a>
68
+ </div>
69
+ <div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;">
70
+ <div style="width: 75px; float: left;">
71
+ <img src="/images/ie6nomore/ie6nomore-warning.jpg" alt="Warning!"/>
72
+ </div>
73
+ <div style="width: 275px; float: left; font-family: Arial, sans-serif;">
74
+ <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">
75
+ You are using an outdated browser
76
+ </div>
77
+ <div style="font-size: 12px; margin-top: 6px; line-height: 12px;">
78
+ For a better experience using this site, please upgrade to a modern web browser.</div>
79
+ </div>
80
+ <div style="width: 75px; float: left;">
81
+ <a href="http://getfirefox.com/" target="_blank">
82
+ <img src="/images/ie6nomore/ie6nomore-firefox.jpg" style="border: none;" alt="Get Firefox 3.5"/>
83
+ </a>
84
+ </div>
85
+ <div style="width: 75px; float: left;">
86
+ <a href="http://www.browserforthebetter.com/download.html" target="_blank">
87
+ <img src="/images/ie6nomore/ie6nomore-ie8.jpg" style="border: none;" alt="Get Internet Explorer 8"/>
88
+ </a>
89
+ </div>
90
+ <div style="width: 73px; float: left;">
91
+ <a href="http://www.apple.com/safari/download/" target="_blank">
92
+ <img src="/images/ie6nomore/ie6nomore-safari.jpg" style="border: none;" alt="Get Safari 4"/>
93
+ </a>
94
+ </div>
95
+ <div style="float: left;">
96
+ <a href="http://www.google.com/chrome" target="_blank">
97
+ <img src="/images/ie6nomore/ie6nomore-chrome.jpg" style="border: none;" alt="Get Google Chrome"/>
98
+ </a>
99
+ </div>
60
100
  </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
101
  </div>
67
- <![endif]-->
102
+ </div>
103
+ <![endif]-->
68
104
 
69
105
 
70
- == Configuration Options
106
+ That's what it does in a nutshell.
71
107
 
72
- * <tt>:locale</tt> => Locale (Default = :en)
108
+ === Customizing options
73
109
 
74
- * <tt>:img_host</tt> => The URL to the ie6nomore images (Default = http://www.ie6nomore.com/files/theme). <b>NB!</b> No trailing slash
110
+ You can easily customize the output through the following parameters passed to the method call:
111
+
112
+
113
+ * <tt>:locale</tt> => Sets the locale for the output. (Default = :en => English)
114
+
115
+ * <tt>:img_host</tt> => The URL to the ie6nomore images (Default = /images/ie6nomore/).
116
+ <b>NB!</b> with trailing slash
75
117
 
76
118
  * <tt>:border</tt> => The div border color. (Default = "1px solid #F7941D")
77
119
 
@@ -79,11 +121,25 @@ And in your HTML you'll see an output like this:
79
121
 
80
122
  * <tt>:text_color</tt> => The div text color. (Default = "black")
81
123
 
82
- * <tt>:debug</tt> => Whether to encapsulate the code with IE Comments or not. So you can see how it looks like when developing on NON-IE 6 browsers. (Default = false)
124
+ * <tt>:debug</tt> => Whether to encapsulate the code with IE Comments or not.
125
+ So you can see how it looks like when developing on NON-IE 6 browsers. (Default = false)
126
+
127
+ <b>Examples:</b>
128
+
129
+ # to change the image host
130
+ <%= ie6_no_more(:img_host => "http://assets.example.com/images/ie6nomore/" ) %>
131
+
132
+ # to change the background colour
133
+ <%= ie6_no_more(:background => "#369" ) %>
134
+
135
+ # to check how the site looks like with the IE6NoMore banner displayed during development
136
+ <%= ie6_no_more(:debug => true) %>
137
+
138
+
83
139
 
84
140
  == Localizations
85
141
 
86
- Currently supported localizations are:
142
+ You can also localize the output text with these currently available localizations:
87
143
 
88
144
  * English (en)
89
145
  * Spanish (es)
@@ -93,27 +149,65 @@ Currently supported localizations are:
93
149
  * Japanese (jp)
94
150
  * Swedish (se)
95
151
 
152
+ Awaiting further translations from IE6NoMore website or through your fork.
96
153
 
97
- == Development Use
98
154
 
99
- When you are developing a Non-IE6 site, you might want to check how the site looks like with the IE6NoMore
100
- banner.
155
+ == GOTCHAs
101
156
 
102
- <html>
103
- <body>
104
-
105
- <%= ie6_no_more(:debug => true) %>
106
-
107
- </body>
108
- </html>
157
+ By default the image host for the images displayed in the banner is your server
158
+ [ <tt>/images/ie6nomore/</tt> ]. However upon initial inclusion of the solution,
159
+ you do not have the required images on your server.
160
+
161
+ You can remedie this by adding the following to your app's Rakefile.
162
+
163
+ # in ../Rakefile
164
+
165
+ require 'sinatra/ie6nomore/rake
166
+
167
+
168
+ Then you can fire up your CLI and use this rake task:
169
+
170
+ rake ie6nomore:copy_images
171
+
172
+ You should now have all the images locally stored on your server.
173
+
174
+ <b>NB!</b> assumes that the <tt>'../public/'</tt> directory is at the root of your app,
175
+ and that it contains an <tt>'images/'</tt> directory.
176
+
177
+
178
+ == RTFM
179
+
180
+ If the above is not clear enough, please check the Specs for a better understanding.
181
+
182
+
183
+ == Errors / Bugs
184
+
185
+ If something is not behaving intuitively, it is a bug, and should be reported.
186
+ Report it here: http://github.com/kematzy/sinatra-outputbuffer/issues
109
187
 
110
188
 
111
189
  == TODOs
112
190
 
113
- * Rake task to harvest all IE6NoMore images and store them on local server.
114
191
  * Further localizations
115
192
 
193
+ * Keep it up to date with any changes in Sinatra or IE6 No More site.
194
+
195
+ * Any other improvements you can think of.
196
+
197
+
198
+ == Note on Patches/Pull Requests
199
+
200
+ * Fork the project.
201
+ * Make your feature addition or bug fix.
202
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
203
+ * Commit, do not mess with rakefile, version, or history.
204
+ * (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
205
+ * Send me a pull request. Bonus points for topic branches.
116
206
 
117
207
  == Copyright
118
208
 
119
- Copyright (c) 2009 kematzy. See LICENSE for details.
209
+ Copyright (c) 2010 Kematzy and the guys behind {"IE6 No More"}[www.ie6nomore.com] site.
210
+
211
+ Released under the MIT License.
212
+
213
+ See LICENSE for further details.
data/Rakefile CHANGED
@@ -5,7 +5,8 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "sinatra-ie6nomore"
8
- gem.summary = %Q{'IE6 No More' Sinatra Extension to make the eradication of IE6 easier}
8
+ gem.summary = %Q{A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.}
9
+ gem.description = %Q{A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.}
9
10
  gem.email = "kematzy@gmail.com"
10
11
  gem.homepage = "http://github.com/kematzy/sinatra-ie6nomore"
11
12
  gem.authors = ["kematzy"]
@@ -15,30 +16,32 @@ begin
15
16
 
16
17
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
18
  end
18
-
19
+ Jeweler::GemcutterTasks.new
19
20
  rescue LoadError
20
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
21
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
21
22
  end
22
23
 
23
24
  require 'spec/rake/spectask'
24
25
  Spec::Rake::SpecTask.new(:spec) do |spec|
25
26
  spec.libs << 'lib' << 'spec'
27
+ spec.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
26
28
  spec.spec_files = FileList['spec/**/*_spec.rb']
27
29
  end
28
30
 
29
31
  Spec::Rake::SpecTask.new(:rcov) do |spec|
30
32
  spec.libs << 'lib' << 'spec'
33
+ spec.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
31
34
  spec.pattern = 'spec/**/*_spec.rb'
32
35
  spec.rcov = true
33
36
  end
34
37
 
35
38
 
36
39
  namespace :spec do
37
-
38
- desc "Run all specifications verbosely"
39
- Spec::Rake::SpecTask.new(:verbose) do |t|
40
+
41
+ desc "Run all specifications quietly"
42
+ Spec::Rake::SpecTask.new(:quiet) do |t|
40
43
  t.libs << "lib"
41
- t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
44
+ t.spec_opts = ["--color", "--require", "spec/spec_helper.rb"]
42
45
  end
43
46
 
44
47
  desc "Run specific spec verbosely (SPEC=/path/2/file)"
@@ -50,6 +53,8 @@ namespace :spec do
50
53
 
51
54
  end
52
55
 
56
+ task :spec => :check_dependencies
57
+
53
58
  task :default => :spec
54
59
 
55
60
  require 'rake/rdoctask'
@@ -85,6 +90,3 @@ namespace :docs do
85
90
  end
86
91
 
87
92
  end
88
-
89
-
90
-
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,16 @@
1
+ require 'rake'
2
+ require 'sinatra/ie6nomore'
3
+
4
+ namespace :ie6nomore do
5
+
6
+ desc "Copy images from gem to ../public/images/ie6nomore dir"
7
+ task :copy_images do
8
+ src_dir = "#{Sinatra::IE6NoMore.gem_root_path}/files/"
9
+ dest_dir = "#{Dir.pwd}/public/images/ie6nomore"
10
+
11
+ puts "\n Copying images from #{src_dir} to #{dest_dir}"
12
+ sh "mkdir -p #{dest_dir}" unless test(?e, dest_dir)
13
+ sh "cp -r #{src_dir} #{dest_dir}"
14
+ end
15
+
16
+ end #/ namespace ie6nomore
@@ -3,161 +3,275 @@ require 'yaml'
3
3
 
4
4
  module Sinatra
5
5
 
6
- # = Sinatra::IE6NoMore Extension
6
+ ##
7
+ # = Sinatra::IE6NoMore
7
8
  #
8
- # A simple extension in support of the IE6 No More[www.ie6nomore.com] campaign to rid the world of
9
+ # A simple extension in support of the {"IE6 No More"}[www.ie6nomore.com] campaign to rid the world of
9
10
  # the nasty bug ridden monstrosity called IE6.
10
11
  #
11
- # Check the IE6 No More[www.ie6nomore.com] site for more information.
12
+ # Check the {"IE6 No More"}[www.ie6nomore.com] site for more information.
12
13
  #
13
- # === Install
14
+ # == Installation
14
15
  #
16
+ # # Add RubyGems.org (former Gemcutter) to your RubyGems sources
17
+ # $ gem sources -a http://rubygems.org
15
18
  #
16
- # sudo gem install kematzy-sinatra-ie6nomore
19
+ # $ (sudo)? gem install sinatra-ie6nomore
17
20
  #
18
- # === Usage
21
+ # == Dependencies
19
22
  #
20
- # Three steps
23
+ # This Gem depends upon the following:
21
24
  #
22
- # ==== Step 1
25
+ # === Runtime:
23
26
  #
24
- # Require the Sinatra::IE6NoMore gem
27
+ # * sinatra ( >= 1.0.a )
28
+ #
29
+ #
30
+ # === Development & Tests:
31
+ #
32
+ # * sinatra-tests (>= 0.1.6)
33
+ # * rspec (>= 1.3.0 )
34
+ # * rack-test (>= 0.5.3)
35
+ # * rspec_hpricot_matchers (>= 0.1.0)
36
+ #
37
+ #
38
+ # == Getting Started
39
+ #
40
+ # To use this extension in your App just follow these two simple steps:
41
+ #
42
+ # === Step 1
25
43
  #
26
- # require 'sinatra/base'
27
- #
28
44
  # require 'sinatra/ie6nomore'
29
- #
30
- # ==== Step 2
31
45
  #
32
- # Include in your app.
46
+ # class YourApp < Sinatra::Base
47
+ #
48
+ # helpers Sinatra::IE6NoMore::Helpers
49
+ #
50
+ # # or
51
+ #
52
+ # register(Sinatra::IE6NoMore)
33
53
  #
34
- # class MyApp < Sinatra::Application
35
- #
36
- # helpers Sinatra::IE6NoMore
37
- #
38
54
  # <snip...>
39
- #
40
- # end
41
55
  #
56
+ # end
42
57
  #
43
- # ==== Step 3
58
+ # === Step 2
44
59
  #
45
- # Add this to your <tt>/views/layout.erb</tt> file.
60
+ # Add this to your <tt>../views/layout.erb</tt> file.
46
61
  #
47
62
  # <html>
48
63
  # <body>
49
- #
64
+ #
50
65
  # <%= ie6_no_more %>
51
- #
66
+ #
52
67
  # </body>
53
68
  # </html>
54
69
  #
55
- # And in your HTML you'll see an output like this:
70
+ # And in your HTML you'll see some output like this:
56
71
  #
57
72
  # <!--[if lt IE 7]>
58
73
  # <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>
74
+ # <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="/images/ie6nomore/ie6nomore-cornerx.jpg" style="border: none;" alt="Close this notice"/></a></div>
60
75
  # <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>
76
+ # <div style="width: 75px; float: left;"><img src="/images/ie6nomore/ie6nomore-warning.jpg" alt="Warning!"/></div>
62
77
  # <div style="width: 275px; float: left; font-family: Arial, sans-serif;">
63
78
  # <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">You are using an outdated browser</div>
64
79
  # <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
80
  # </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>
81
+ # <div style="width: 75px; float: left;"><a href="http://getfirefox.com/" target="_blank"><img src="/images/ie6nomore/ie6nomore-firefox.jpg" style="border: none;" alt="Get Firefox 3.5"/></a></div>
82
+ # <div style="width: 75px; float: left;"><a href="http://www.browserforthebetter.com/download.html" target="_blank"><img src="/images/ie6nomore/ie6nomore-ie8.jpg" style="border: none;" alt="Get Internet Explorer 8"/></a></div>
83
+ # <div style="width: 73px; float: left;"><a href="http://www.apple.com/safari/download/" target="_blank"><img src="/images/ie6nomore/ie6nomore-safari.jpg" style="border: none;" alt="Get Safari 4"/></a></div>
84
+ # <div style="float: left;"><a href="http://www.google.com/chrome" target="_blank"><img src="/images/ie6nomore/ie6nomore-chrome.jpg" style="border: none;" alt="Get Google Chrome"/></a></div>
70
85
  # </div>
71
86
  # </div>
72
87
  # <![endif]-->
73
88
  #
74
89
  #
75
- # See documentation below for further usage examples.
90
+ # That's what it does in a nutshell.
91
+ #
92
+ # === Customizing options
93
+ #
94
+ # You can easily customize the output through the following parameters passed to the method call:
95
+ #
96
+ #
97
+ # * <tt>:locale</tt> => Sets the locale for the output. (Default = :en => English)
98
+ #
99
+ # * <tt>:img_host</tt> => The URL to the ie6nomore images (Default = /images/ie6nomore).
100
+ # <b>NB!</b> No trailing slash
101
+ #
102
+ # * <tt>:border</tt> => The div border color. (Default = "1px solid #F7941D")
103
+ #
104
+ # * <tt>:background</tt> => The div background color. (Default = "#FEEFDA")
105
+ #
106
+ # * <tt>:text_color</tt> => The div text color. (Default = "black")
107
+ #
108
+ # * <tt>:debug</tt> => Whether to encapsulate the code with IE Comments or not.
109
+ # So you can see how it looks like when developing on NON-IE 6 browsers. (Default = false)
110
+ #
111
+ # <b>Examples:</b>
112
+ #
113
+ # # to change the image host
114
+ # <%= ie6_no_more(:img_host => "http://assets.example.com/images/ie6nomore/" ) %>
115
+ #
116
+ # # to change the background colour
117
+ # <%= ie6_no_more(:background => "#369" ) %>
118
+ #
119
+ # # to check how the site looks like with the IE6NoMore banner displayed during development
120
+ # <%= ie6_no_more(:debug => true) %>
121
+ #
122
+ #
123
+ #
124
+ # == Localizations
125
+ #
126
+ # You can also localize the output text with these currently available localizations:
127
+ #
128
+ # * English (en)
129
+ # * Spanish (es)
130
+ # * French (fr)
131
+ # * Portugese (br)
132
+ # * Italian (it)
133
+ # * Japanese (jp)
134
+ # * Swedish (se)
135
+ #
136
+ # Awaiting further translations from IE6NoMore website or through your fork.
76
137
  #
77
138
  #
139
+ # == GOTCHAs
140
+ #
141
+ # By default the image host for the images displayed in the banner is your server
142
+ # [ <tt>/images/ie6nomore/</tt> ]. However upon initial inclusion of the solution,
143
+ # you do not have the required images on your server.
144
+ #
145
+ # You can remedie this by adding the following to your app's Rakefile.
146
+ #
147
+ # # in ../Rakefile
148
+ #
149
+ # require 'sinatra/ie6nomore/rake
150
+ #
151
+ #
152
+ # Then you can fire up your CLI and use this rake task:
153
+ #
154
+ # rake ie6nomore:copy_images
155
+ #
156
+ # You should now have all the images locally stored on your server.
157
+ #
158
+ # <b>NB!</b> assumes that the <tt>'../public/'</tt> directory is at the root of your app,
159
+ # and that it contains an <tt>'images/'</tt> directory.
160
+ #
161
+ #
162
+ # == Copyright
163
+ #
164
+ # Copyright (c) 2010 Kematzy and the guys behind {"IE6 No More"}[www.ie6nomore.com] site.
165
+ #
166
+ # Released under the MIT License.
167
+ #
168
+ # See LICENSE for further details.
169
+ #
78
170
  module IE6NoMore
79
171
 
80
- VERSION = '0.1.1' unless const_defined?(:VERSION)
172
+ VERSION = '0.1.2' unless const_defined?(:VERSION)
81
173
  def self.version; "Sinatra::IE6NoMore v#{VERSION}"; end
82
-
174
+
83
175
  ##
84
- # Outputs the "IE6 No More" banner.
176
+ # Sets the full path to the gem_installation, used by the Rake tasks
177
+ # included in the Gem.
85
178
  #
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
- # * <tt>:debug</tt> => Whether to encapsulate the code with the IE Comments or not. (Default = false)
95
- #
96
179
  # ==== Examples
97
180
  #
98
- # ie6_no_more(:locale => :es ) => Spanish version
99
- #
100
- # ie6_no_more(:img_host => "http://www.example.com/images/ie6") => different image host
101
- #
102
- # ie6_no_more(:border => "2px dashed green", :background => 'black', :text_color => 'white' )
103
- # => different color scheme for text, border & background colors
104
- #
105
- # To see how it looks like when developing on a NON-IE 6 browsers.
181
+ # Sinatra::IE6NoMore.gem_root_path => /path/2/gems/sinatra-ie6nomore-X.X.X
106
182
  #
107
- # ie6_no_more(:debug => true) => removes the encapsulating IE comments.
108
- #
109
- # @api public
110
- def ie6_no_more(options = {})
111
- o = {
112
- :locale => :en,
113
- :img_host => "http://www.ie6nomore.com/files/theme",
114
- :border => "1px solid #F7941D",
115
- :background => "#FEEFDA",
116
- :text_color => "black",
117
- :debug => false
118
- }.merge(options)
119
-
120
- localizations = load_i18n
121
- # set the localisation
122
- i18n = localizations[o[:locale].to_s]
123
-
124
- html = ''
125
- html << %Q[<!--[if lt IE 7]>\n] unless o[:debug] # == true
126
- html << %Q[<div style="border: #{o[:border]}; background: #{o[:background]}; text-align: center; clear: both; height: 75px; position: relative;">\n]
127
- 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]
128
- html << %Q[ <div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: #{o[:text_color]};">\n]
129
- html << %Q[ <div style="width: 75px; float: left;"><img src="#{o[:img_host]}/ie6nomore-warning.jpg" alt="Warning!"/></div>\n]
130
- html << %Q[ <div style="width: 275px; float: left; font-family: Arial, sans-serif;">\n]
131
- html << %Q[ <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">#{i18n['header']}</div>\n]
132
- html << %Q[ <div style="font-size: 12px; margin-top: 6px; line-height: 12px;">#{i18n['sub']}</div>\n]
133
- html << %Q[ </div>\n]
134
- 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]
135
- 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]
136
- 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]
137
- 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]
138
- html << %Q[ </div>\n]
139
- html << %Q[</div>\n]
140
- html << %Q[<![endif]-->\n] unless o[:debug] # == true
141
- html
183
+ # @api private
184
+ def self.gem_root_path
185
+ File.expand_path(File.join(File.dirname(__FILE__), '..', '..') )
142
186
  end
143
187
 
144
- private
188
+ module Helpers
145
189
 
146
190
  ##
147
- # Loads the i18n.yml localizations file and returns a Hash
191
+ # Outputs the "IE6 No More" banner.
192
+ #
193
+ # ==== Params
194
+ #
195
+ # * options [Hash] => Optional configurations options
196
+ # * <tt>:locale</tt> => Locale (Default = :en)
197
+ # * <tt>:img_host</tt> => The URL to the ie6nomore images (Default = /images/ie6nomore/). <b>NB!</b> The trailing slash
198
+ # * <tt>:border</tt> => The div border color. (Default = "1px solid #F7941D")
199
+ # * <tt>:background</tt> => The div background color. (Default = "#FEEFDA")
200
+ # * <tt>:text_color</tt> => The div text color. (Default = "black")
201
+ # * <tt>:debug</tt> => Whether to encapsulate the code with the IE Comments or not. (Default = false)
148
202
  #
149
203
  # ==== Examples
150
204
  #
151
- # localizations = load_i18n
205
+ # ie6_no_more(:locale => :es ) => Spanish version
206
+ #
207
+ # ie6_no_more(:img_host => "http://www.example.com/images/ie6/") => different image host
208
+ #
209
+ # ie6_no_more(:border => "2px dashed green", :background => 'black', :text_color => 'white' )
210
+ # => different color scheme for text, border & background colors
211
+ #
212
+ # To see how it looks like when developing on a NON-IE 6 browsers.
152
213
  #
153
- # @api private
154
- def load_i18n
155
- res = YAML.load_file(File.join(File.dirname(__FILE__), 'ie6nomore.i18n.yml'))
214
+ # ie6_no_more(:debug => true) => removes the encapsulating IE comments.
215
+ #
216
+ # @api public
217
+ def ie6_no_more(options = {})
218
+ o = {
219
+ :locale => :en,
220
+ # :img_host => "http://www.ie6nomore.com/files/theme/",
221
+ :img_host => "/images/ie6nomore/", # NB! trailing slash
222
+ :border => "1px solid #F7941D",
223
+ :background => "#FEEFDA",
224
+ :text_color => "black",
225
+ :debug => false
226
+ }.merge(options)
227
+
228
+ localizations = load_i18n
229
+ # set the localisation
230
+ i18n = localizations[o[:locale].to_s]
231
+
232
+ html = ''
233
+ html << %Q[<!--[if lt IE 7]>\n] unless o[:debug] # == true
234
+ html << %Q[<div style="border: #{o[:border]}; background: #{o[:background]}; text-align: center; clear: both; height: 75px; position: relative;">\n]
235
+ 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]
236
+ html << %Q[ <div style="width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: #{o[:text_color]};">\n]
237
+ html << %Q[ <div style="width: 75px; float: left;"><img src="#{o[:img_host]}ie6nomore-warning.jpg" alt="Warning!"/></div>\n]
238
+ html << %Q[ <div style="width: 275px; float: left; font-family: Arial, sans-serif;">\n]
239
+ html << %Q[ <div style="font-size: 14px; font-weight: bold; margin-top: 12px;">#{i18n['header']}</div>\n]
240
+ html << %Q[ <div style="font-size: 12px; margin-top: 6px; line-height: 12px;">#{i18n['sub']}</div>\n]
241
+ html << %Q[ </div>\n]
242
+ 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]
243
+ 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]
244
+ 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]
245
+ 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]
246
+ html << %Q[ </div>\n]
247
+ html << %Q[</div>\n]
248
+ html << %Q[<![endif]-->\n] unless o[:debug] # == true
249
+ html
156
250
  end
157
251
 
158
252
 
253
+ private
254
+
255
+ ##
256
+ # Loads the i18n.yml localizations file and returns a Hash
257
+ #
258
+ # ==== Examples
259
+ #
260
+ # localizations = load_i18n
261
+ #
262
+ # @api private
263
+ def load_i18n
264
+ res = YAML.load_file(File.join(File.dirname(__FILE__), 'ie6nomore.i18n.yml'))
265
+ end
266
+
267
+ end #/ Helpers
268
+
269
+ def self.registered(app)
270
+ app.helpers Sinatra::IE6NoMore::Helpers
271
+ end
272
+
159
273
  end #/ IE6NoMore
160
274
 
161
- helpers IE6NoMore
275
+ helpers Sinatra::IE6NoMore::Helpers
162
276
 
163
- end #/ Sinatra
277
+ end #/ Sinatra
@@ -1,15 +1,16 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra-ie6nomore}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["kematzy"]
12
- s.date = %q{2009-09-14}
12
+ s.date = %q{2010-03-01}
13
+ s.description = %q{A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.}
13
14
  s.email = %q{kematzy@gmail.com}
14
15
  s.extra_rdoc_files = [
15
16
  "LICENSE",
@@ -22,8 +23,15 @@ Gem::Specification.new do |s|
22
23
  "README.rdoc",
23
24
  "Rakefile",
24
25
  "VERSION",
26
+ "files/ie6nomore-chrome.jpg",
27
+ "files/ie6nomore-cornerx.jpg",
28
+ "files/ie6nomore-firefox.jpg",
29
+ "files/ie6nomore-ie8.jpg",
30
+ "files/ie6nomore-safari.jpg",
31
+ "files/ie6nomore-warning.jpg",
25
32
  "lib/sinatra/ie6nomore.i18n.yml",
26
33
  "lib/sinatra/ie6nomore.rb",
34
+ "lib/sinatra/ie6nomore/rake.rb",
27
35
  "sinatra-ie6nomore.gemspec",
28
36
  "spec/sinatra/ie6nomore_spec.rb",
29
37
  "spec/spec_helper.rb"
@@ -31,8 +39,8 @@ Gem::Specification.new do |s|
31
39
  s.homepage = %q{http://github.com/kematzy/sinatra-ie6nomore}
32
40
  s.rdoc_options = ["--charset=UTF-8"]
33
41
  s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.5}
35
- s.summary = %q{'IE6 No More' Sinatra Extension to make the eradication of IE6 easier}
42
+ s.rubygems_version = %q{1.3.6}
43
+ s.summary = %q{A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.}
36
44
  s.test_files = [
37
45
  "spec/sinatra/ie6nomore_spec.rb",
38
46
  "spec/spec_helper.rb"
@@ -57,3 +65,4 @@ Gem::Specification.new do |s|
57
65
  s.add_dependency(%q<rspec_hpricot_matchers>, [">= 1.0.0"])
58
66
  end
59
67
  end
68
+
@@ -2,61 +2,69 @@ require "#{File.dirname(File.dirname(File.expand_path(__FILE__)))}/spec_helper"
2
2
 
3
3
  describe "Sinatra" do
4
4
 
5
+ def remove_enclosing_html_comments(markup)
6
+ return markup.sub('<!--[if lt IE 7]>', '').sub('<![endif]-->','')
7
+ end
8
+
5
9
  describe "IE6NoMore" do
6
10
 
7
- def remove_enclosing_html_comments(markup)
8
- return markup.sub('<!--[if lt IE 7]>', '').sub('<![endif]-->','')
11
+ class MyTestApp
12
+ register(Sinatra::IE6NoMore)
9
13
  end
10
14
 
11
- describe "ie6_no_more" do
15
+ # convenience shared spec that sets up MyTestApp and tests it's OK,
16
+ # without it you will get "stack level too deep" errors
17
+ it_should_behave_like "MyTestApp"
18
+
19
+ describe "#self.gem_root_path" do
20
+
21
+ it "should return the full path to the gem" do
22
+ Sinatra::IE6NoMore.gem_root_path.should == File.expand_path(File.join(File.dirname(__FILE__), '..','..'))
23
+ end
24
+
25
+ end #/ #self.gem_root_path
26
+
27
+ describe "#ie6_no_more" do
12
28
 
13
29
  describe "with defaults" do
14
30
 
15
31
  it "should return the expected HTML" do
16
32
  erb_app %Q[<%= ie6_no_more %>]
17
- markup = last_response.body
18
- # markup.should have_tag('debug')
33
+
19
34
  # test the comments first before removing
20
- markup.should match(/<!--\[if lt IE 7\]/)
21
- markup.should match(/<!\[endif\]-->$/)
35
+ body.should match(/<!--\[if lt IE 7\]/)
36
+ body.should match(/<!\[endif\]-->$/)
22
37
 
23
38
  # remove the comments so we can test the code output
24
- markup = remove_enclosing_html_comments(markup)
25
- # markup.should have_tag('debug')
26
-
39
+ markup = remove_enclosing_html_comments(body)
27
40
  # we get the border and background through OK
28
41
  markup.should match(/<div style="border: 1px solid #F7941D; background: #FEEFDA;/)
29
-
30
42
  # we have a warning image
31
43
  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'
44
+ img.attributes['src'].should == '/images/ie6nomore/ie6nomore-warning.jpg'
33
45
  end
34
-
35
- markup.should have_tag('img[@src=http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg]')
36
-
46
+ markup.should have_tag('img[@src=/images/ie6nomore/ie6nomore-cornerx.jpg]')
37
47
  # text
38
48
  markup.should have_tag('img[@alt=Close this notice]')
39
49
  markup.should have_tag('div[@style=font-size: 14px; font-weight: bold; margin-top: 12px;]','You are using an outdated browser')
40
50
  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
51
  # browsers
43
52
  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'
53
+ img.attributes['src'].should == '/images/ie6nomore/ie6nomore-firefox.jpg'
45
54
  img.attributes['alt'].should == 'Get Firefox 3.5'
46
55
  end
47
56
  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'
57
+ img.attributes['src'].should == '/images/ie6nomore/ie6nomore-ie8.jpg'
49
58
  img.attributes['alt'].should == 'Get Internet Explorer 8'
50
59
  end
51
60
  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'
61
+ img.attributes['src'].should == '/images/ie6nomore/ie6nomore-safari.jpg'
53
62
  img.attributes['alt'].should == 'Get Safari 4'
54
63
  end
55
64
  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'
65
+ img.attributes['src'].should == '/images/ie6nomore/ie6nomore-chrome.jpg'
57
66
  img.attributes['alt'].should == 'Get Google Chrome'
58
67
  end
59
-
60
68
  end
61
69
 
62
70
  end #/ with defaults
@@ -64,10 +72,9 @@ describe "Sinatra" do
64
72
  describe "with options" do
65
73
 
66
74
  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' ) %>]
75
+ erb_app %Q[<%= ie6_no_more(:img_host => "http://example.com/images/", :background => 'yellow', :border => '10px dashed #fff', :text_color => 'red' ) %>]
68
76
  # remove the comments so we can test the code output
69
77
  @markup = remove_enclosing_html_comments(last_response.body)
70
- # @markup.should have_tag('debug')
71
78
  end
72
79
 
73
80
  it "should set the border style attribute" do
@@ -86,25 +93,21 @@ describe "Sinatra" do
86
93
  @markup.should have_tag('img[@src=http://example.com/images/ie6nomore-cornerx.jpg]')
87
94
  end
88
95
 
89
- it "should show the HTML without IE comments when :debug => true " do
96
+ it "should show the HTML without IE comments when :debug => true " do
90
97
  erb_app %Q[<%= ie6_no_more(:debug => true ) %>]
91
98
  markup = last_response.body
92
- # markup.should have_tag('debug')
93
- markup.should_not match(/<!--\[if lt IE 7\]/)
94
- markup.should_not match(/<!\[endif\]-->$/)
95
-
99
+ body.should_not match(/<!--\[if lt IE 7\]/)
100
+ body.should_not match(/<!\[endif\]-->$/)
96
101
  end
97
102
 
98
103
  end #/ with options
99
104
 
100
-
101
105
  describe "with localizations" do
102
106
 
103
107
  it "should have Spanish version" do
104
108
  erb_app %Q[<%= ie6_no_more(:locale => :es ) %>]
105
109
  # remove the comments so we can test the code output
106
110
  markup = remove_enclosing_html_comments(last_response.body)
107
- # markup.should have_tag('debug')
108
111
 
109
112
  # text
110
113
  markup.should have_tag('img[@alt=Cierra este aviso]')
@@ -113,19 +116,15 @@ describe "Sinatra" do
113
116
 
114
117
  # browsers
115
118
  markup.should have_tag('div > a[@href=http://www.mozilla-europe.org/es/firefox/] > img') do |img|
116
- img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg'
117
119
  img.attributes['alt'].should == 'Consiga Firefox 3.5'
118
120
  end
119
121
  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|
120
- img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg'
121
122
  img.attributes['alt'].should == 'Consiga Internet Explorer 8'
122
123
  end
123
124
  markup.should have_tag('div > a[@href=http://www.apple.com/es/safari/download/] > img') do |img|
124
- img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg'
125
125
  img.attributes['alt'].should == 'Consiga Safari 4'
126
126
  end
127
127
  markup.should have_tag('div > a[@href=http://www.google.com/chrome?hl=es] > img') do |img|
128
- img.attributes['src'].should == 'http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg'
129
128
  img.attributes['alt'].should == 'Consiga Google Chrome'
130
129
  end
131
130
  end
@@ -134,7 +133,6 @@ describe "Sinatra" do
134
133
  erb_app %Q[<%= ie6_no_more(:locale => :fr ) %>]
135
134
  # remove the comments so we can test the code output
136
135
  markup = remove_enclosing_html_comments(last_response.body)
137
- # markup.should have_tag('debug')
138
136
 
139
137
  # text
140
138
  markup.should have_tag('img[@alt=Fermez cette notification]')
@@ -270,7 +268,7 @@ describe "Sinatra" do
270
268
 
271
269
  describe "#load_i18n" do
272
270
 
273
- module Sinatra::IE6NoMore
271
+ module Sinatra::IE6NoMore::Helpers
274
272
  public :load_i18n
275
273
  end
276
274
 
@@ -278,12 +276,24 @@ describe "Sinatra" do
278
276
  app.load_i18n.should be_a_kind_of(Hash)
279
277
  end
280
278
 
281
- it "should have further tests" do
279
+ it "should have further tests" do
282
280
  pending "energy and time to fix this...."
283
281
  end
284
282
 
285
283
  end #/ #load_i18n
286
284
 
285
+ describe "Rake Tasks" do
286
+
287
+ describe "rake ie6nomore:copy_images" do
288
+
289
+ it "should copy the images from the gem root to the app/public/images/ie6nomore directory" do
290
+ pending "TODO: need to work out how to test this functionality"
291
+ end
292
+
293
+ end #/ rake ie6nomore:copy_images
294
+
295
+ end #/ Rake Tasks
296
+
287
297
  end #/ IE6NoMore
288
298
 
289
299
  end #/ Sinatra
data/spec/spec_helper.rb CHANGED
@@ -1,50 +1,57 @@
1
- require 'rubygems'
2
- require 'spec'
3
- require 'spec/interop/test'
4
- require 'rack/test'
5
- require 'rspec_hpricot_matchers'
1
+
2
+ ::APP_ROOT = "#{File.dirname(File.expand_path(__FILE__))}/fixtures"
6
3
 
7
4
  $LOAD_PATH.unshift(File.dirname(__FILE__))
8
5
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
9
- require 'sinatra/ie6nomore'
6
+
7
+ ENV['RACK_ENV'] = 'test'
8
+
9
+ #--
10
+ # DEPENDENCIES
11
+ #++
12
+ %w(
13
+ sinatra/base
14
+ ).each {|lib| require lib }
15
+
16
+ #--
17
+ ## SINATRA EXTENSIONS
18
+ #++
19
+ %w(
20
+ sinatra/tests
21
+ sinatra/ie6nomore
22
+ ).each {|ext| require ext }
23
+
10
24
 
11
25
  Spec::Runner.configure do |config|
12
26
  config.include RspecHpricotMatchers
27
+ config.include Sinatra::Tests::TestCase
28
+ config.include Sinatra::Tests::RSpec::SharedSpecs
29
+ end
30
+
31
+
32
+ # quick convenience methods..
33
+
34
+ def fixtures_path
35
+ "#{File.dirname(File.expand_path(__FILE__))}/fixtures"
36
+ end
37
+
38
+ def public_fixtures_path
39
+ "#{fixtures_path}/public"
13
40
  end
14
41
 
15
42
  class MyTestApp < Sinatra::Base
16
43
 
17
- helpers Sinatra::IE6NoMore
44
+ set :app_dir, "#{APP_ROOT}/app"
45
+ set :public, "#{fixtures_path}/public"
46
+ set :views, "#{app_dir}/views"
18
47
 
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
48
+ register(Sinatra::Tests)
49
+
50
+ enable :raise_errors
29
51
 
30
52
  end #/class MyTestApp
31
53
 
32
54
 
33
-
34
55
  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
-
56
+ Sinatra::Base.set :environment, :test
50
57
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-ie6nomore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 2
9
+ version: 0.1.2
5
10
  platform: ruby
6
11
  authors:
7
12
  - kematzy
@@ -9,40 +14,52 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-09-14 00:00:00 +08:00
17
+ date: 2010-03-01 00:00:00 +08:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: sinatra
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 9
30
+ - 4
23
31
  version: 0.9.4
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: spec
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 2
44
+ - 7
33
45
  version: 1.2.7
34
- version:
46
+ type: :development
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: rspec_hpricot_matchers
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 1
57
+ - 0
58
+ - 0
43
59
  version: 1.0.0
44
- version:
45
- description:
60
+ type: :development
61
+ version_requirements: *id003
62
+ description: A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.
46
63
  email: kematzy@gmail.com
47
64
  executables: []
48
65
 
@@ -58,8 +75,15 @@ files:
58
75
  - README.rdoc
59
76
  - Rakefile
60
77
  - VERSION
78
+ - files/ie6nomore-chrome.jpg
79
+ - files/ie6nomore-cornerx.jpg
80
+ - files/ie6nomore-firefox.jpg
81
+ - files/ie6nomore-ie8.jpg
82
+ - files/ie6nomore-safari.jpg
83
+ - files/ie6nomore-warning.jpg
61
84
  - lib/sinatra/ie6nomore.i18n.yml
62
85
  - lib/sinatra/ie6nomore.rb
86
+ - lib/sinatra/ie6nomore/rake.rb
63
87
  - sinatra-ie6nomore.gemspec
64
88
  - spec/sinatra/ie6nomore_spec.rb
65
89
  - spec/spec_helper.rb
@@ -76,21 +100,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
100
  requirements:
77
101
  - - ">="
78
102
  - !ruby/object:Gem::Version
103
+ segments:
104
+ - 0
79
105
  version: "0"
80
- version:
81
106
  required_rubygems_version: !ruby/object:Gem::Requirement
82
107
  requirements:
83
108
  - - ">="
84
109
  - !ruby/object:Gem::Version
110
+ segments:
111
+ - 0
85
112
  version: "0"
86
- version:
87
113
  requirements: []
88
114
 
89
115
  rubyforge_project:
90
- rubygems_version: 1.3.5
116
+ rubygems_version: 1.3.6
91
117
  signing_key:
92
118
  specification_version: 3
93
- summary: "'IE6 No More' Sinatra Extension to make the eradication of IE6 easier"
119
+ summary: A Sinatra Extension that shows an 'IE6 No More' div on the page for IE6 browsers, making the eradication of IE6 easier.
94
120
  test_files:
95
121
  - spec/sinatra/ie6nomore_spec.rb
96
122
  - spec/spec_helper.rb