html_namespacing 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/html_namespacing/plugin/rails.rb +59 -14
- metadata +3 -3
@@ -10,7 +10,11 @@ module HtmlNamespacing
|
|
10
10
|
module Rails
|
11
11
|
def self.install(options = {})
|
12
12
|
@options = options
|
13
|
-
|
13
|
+
if ::Rails::VERSION::MAJOR == 3
|
14
|
+
install_rails_3(options)
|
15
|
+
else
|
16
|
+
install_rails_2_3(options)
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
# Called by ActionView
|
@@ -47,7 +51,7 @@ module HtmlNamespacing
|
|
47
51
|
end
|
48
52
|
|
49
53
|
def self.template_formats
|
50
|
-
@formats ||= Set.new(@options[:template_formats] || [
|
54
|
+
@formats ||= Set.new((@options[:template_formats] || [:html]).collect(&:to_sym))
|
51
55
|
end
|
52
56
|
|
53
57
|
module Helpers
|
@@ -58,7 +62,8 @@ module HtmlNamespacing
|
|
58
62
|
def html_namespacing_javascript_tag(framework, options = {})
|
59
63
|
js = html_namespacing_javascript(framework, options)
|
60
64
|
unless js.blank?
|
61
|
-
"<script type=\"text/javascript\"><!--//--><![CDATA[//><!--\n#{js}//--><!]]></script>"
|
65
|
+
s = "<script type=\"text/javascript\"><!--//--><![CDATA[//><!--\n#{js}//--><!]]></script>"
|
66
|
+
s.respond_to?(:html_safe) && s.html_safe || s
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
@@ -90,7 +95,8 @@ module HtmlNamespacing
|
|
90
95
|
css = html_namespacing_styles(options)
|
91
96
|
unless css.blank?
|
92
97
|
attribute_string = style_tag_attributes.map{|k,v| " #{k}=\"#{v}\""}.join
|
93
|
-
"<style type=\"text/css\"#{attribute_string}>#{css}</style>"
|
98
|
+
s = "<style type=\"text/css\"#{attribute_string}>#{css}</style>"
|
99
|
+
s.respond_to?(:html_safe) && s.html_safe || s
|
94
100
|
end
|
95
101
|
end
|
96
102
|
|
@@ -150,7 +156,7 @@ module HtmlNamespacing
|
|
150
156
|
|
151
157
|
private
|
152
158
|
|
153
|
-
def self.
|
159
|
+
def self.install_rails_all_versions(options)
|
154
160
|
if options[:javascript]
|
155
161
|
::ActionView::Base.class_eval do
|
156
162
|
attr_writer(:html_namespacing_rendered_paths)
|
@@ -161,12 +167,16 @@ module HtmlNamespacing
|
|
161
167
|
end
|
162
168
|
|
163
169
|
::ActionView::Template.class_eval do
|
164
|
-
def render_with_html_namespacing(
|
165
|
-
html = render_without_html_namespacing(
|
170
|
+
def render_with_html_namespacing(*args, &block)
|
171
|
+
html = render_without_html_namespacing(*args, &block)
|
166
172
|
|
167
|
-
view
|
173
|
+
view = args.first
|
168
174
|
|
169
|
-
if
|
175
|
+
if view.respond_to?(:html_namespacing_rendered_paths)
|
176
|
+
view.html_namespacing_rendered_paths << html_namespacing_key
|
177
|
+
end
|
178
|
+
|
179
|
+
if HtmlNamespacing::Plugin::Rails.template_formats.include?(html_namespacing_format)
|
170
180
|
add_namespace_to_html(html, view)
|
171
181
|
else
|
172
182
|
html
|
@@ -177,14 +187,49 @@ module HtmlNamespacing
|
|
177
187
|
private
|
178
188
|
|
179
189
|
def add_namespace_to_html(html, view)
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
190
|
+
ret = begin
|
191
|
+
HtmlNamespacing::add_namespace_to_html(html, html_namespace)
|
192
|
+
rescue ArgumentError => e
|
193
|
+
HtmlNamespacing::Plugin::Rails.handle_exception(e, self, view)
|
194
|
+
html # unless handle_exception() raised something
|
195
|
+
end
|
196
|
+
ret.respond_to?(:html_safe) && ret.html_safe || ret
|
184
197
|
end
|
185
198
|
|
186
199
|
def html_namespace
|
187
|
-
HtmlNamespacing::Plugin::Rails.path_to_namespace(
|
200
|
+
HtmlNamespacing::Plugin::Rails.path_to_namespace(html_namespacing_key)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
def self.install_rails_3(options = {})
|
206
|
+
self.install_rails_all_versions(options)
|
207
|
+
|
208
|
+
::ActionView::Template.class_eval do
|
209
|
+
private
|
210
|
+
|
211
|
+
def html_namespacing_key
|
212
|
+
virtual_path
|
213
|
+
end
|
214
|
+
|
215
|
+
def html_namespacing_format
|
216
|
+
formats.first
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
def self.install_rails_2_3(options = {})
|
222
|
+
self.install_rails_all_versions(options)
|
223
|
+
|
224
|
+
::ActionView::Template.class_eval do
|
225
|
+
private
|
226
|
+
|
227
|
+
def html_namespacing_key
|
228
|
+
path_without_format_and_extension
|
229
|
+
end
|
230
|
+
|
231
|
+
def html_namespacing_format
|
232
|
+
format.to_sym
|
188
233
|
end
|
189
234
|
end
|
190
235
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html_namespacing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- adamh
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-04-08 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -70,5 +70,5 @@ signing_key:
|
|
70
70
|
specification_version: 3
|
71
71
|
summary: Automatic HTML namespacing
|
72
72
|
test_files:
|
73
|
-
- spec/c_extension_spec.rb
|
74
73
|
- spec/spec_helper.rb
|
74
|
+
- spec/c_extension_spec.rb
|