markaby 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +21 -0
- data/{spec/spec.opts → .rspec} +0 -0
- data/Gemfile +8 -0
- data/Markaby.gemspec +20 -105
- data/README.rdoc +12 -94
- data/Rakefile +19 -50
- data/lib/markaby.rb +1 -5
- data/lib/markaby/builder.rb +15 -1
- data/lib/markaby/builder_tags.rb +22 -2
- data/lib/markaby/kernel_method.rb +1 -0
- data/lib/markaby/tags.rb +91 -2
- data/lib/markaby/version.rb +3 -0
- data/spec/markaby/{css_proxy_test.rb → css_proxy_spec.rb} +12 -17
- data/spec/markaby/{fragment_test.rb → fragment_spec.rb} +0 -0
- data/spec/markaby/html5_spec.rb +100 -0
- data/spec/markaby/markaby_spec.rb +1 -1
- data/spec/markaby/{markaby_test.rb → markaby_test_unit_spec.rb} +1 -1
- data/spec/spec_helper.rb +0 -5
- metadata +70 -76
- data/garlic.rb +0 -29
- data/init.rb +0 -6
- data/lib/markaby/rails.rb +0 -75
- data/lib/markaby/rails/current.rb +0 -85
- data/lib/markaby/rails/deprecated.rb +0 -124
- data/lib/markaby/rails/rails_builder.rb +0 -91
- data/lib/markaby/sinatra.rb +0 -18
- data/lib/markaby/tilt.rb +0 -8
- data/spec/markaby/markaby_other_static.mab +0 -1
- data/spec/markaby/rails/spec_helper.rb +0 -29
- data/spec/markaby/rails/views/layouts/layout.mab +0 -11
- data/spec/markaby/rails/views/markaby/_a_partial.mab +0 -3
- data/spec/markaby/rails/views/markaby/_form_for_with_body_in_erb.erb +0 -1
- data/spec/markaby/rails/views/markaby/_partial_child_with_locals.mab +0 -1
- data/spec/markaby/rails/views/markaby/access_to_helpers.mab +0 -1
- data/spec/markaby/rails/views/markaby/broken.mab +0 -7
- data/spec/markaby/rails/views/markaby/commented_out_template.mab +0 -1
- data/spec/markaby/rails/views/markaby/correct_template_values.mab +0 -5
- data/spec/markaby/rails/views/markaby/double_output.mab +0 -8
- data/spec/markaby/rails/views/markaby/form_for.mab +0 -2
- data/spec/markaby/rails/views/markaby/form_for_with_fields.mab +0 -3
- data/spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab +0 -4
- data/spec/markaby/rails/views/markaby/no_values_passed.mab +0 -3
- data/spec/markaby/rails/views/markaby/partial_parent.mab +0 -1
- data/spec/markaby/rails/views/markaby/partial_parent_with_locals.mab +0 -7
- data/spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb +0 -1
- data/spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab +0 -0
- data/spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab +0 -3
- data/spec/markaby/rails/views/markaby/render_with_ivar.mab +0 -3
- data/spec/markaby/rails/views/markaby/renders_erb.rhtml +0 -1
- data/spec/markaby/rails/views/markaby/renders_form_for_with_erb_body.mab +0 -3
- data/spec/markaby/rails/views/markaby/routes.mab +0 -1
- data/spec/markaby/rails/views/markaby/yielding.mab +0 -3
- data/spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab +0 -5
- data/spec/markaby/rails/views/markaby/yielding_two.mab +0 -7
- data/spec/markaby/rails/views/markaby/yielding_with_content_for.mab +0 -3
- data/spec/markaby/rails_test.rb +0 -380
- data/spec/markaby/rails_version_spec.rb +0 -37
- data/spec/markaby/sinatra/app.rb +0 -49
- data/spec/markaby/sinatra/sinatra_spec.rb +0 -67
- data/spec/markaby/sinatra/views/helpers.mab +0 -1
- data/spec/markaby/sinatra/views/layout.mab +0 -7
- data/spec/markaby/sinatra/views/markaby_template.mab +0 -0
- data/spec/markaby/sinatra/views/scope_instance_variables.mab +0 -3
- data/spec/markaby/sinatra/views/simple_html.mab +0 -4
- data/spec/markaby/sinatra/views/variables.mab +0 -3
- data/spec/markaby/tilt/erb.erb +0 -1
- data/spec/markaby/tilt/locals.mab +0 -1
- data/spec/markaby/tilt/markaby.mab +0 -1
- data/spec/markaby/tilt/markaby_other_static.mab +0 -1
- data/spec/markaby/tilt/render_twice.mab +0 -1
- data/spec/markaby/tilt/scope.mab +0 -1
- data/spec/markaby/tilt/yielding.mab +0 -2
- data/spec/markaby/tilt_spec.rb +0 -75
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
unless defined?(RUNNING_RAILS)
|
4
|
-
MARKABY_ROOT = File.join(File.dirname(__FILE__), "..", "..", "..")
|
5
|
-
rails_root = File.join(MARKABY_ROOT, "..", "..", "..")
|
6
|
-
RAILS_BOOT_FILE = File.join(rails_root, "config", "boot.rb")
|
7
|
-
|
8
|
-
RUNNING_RAILS = File.exists?(RAILS_BOOT_FILE) ? true : false
|
9
|
-
end
|
10
|
-
|
11
|
-
if RUNNING_RAILS
|
12
|
-
ENV["RAILS_ENV"] ||= "test"
|
13
|
-
require RAILS_BOOT_FILE
|
14
|
-
Rails::Initializer.run
|
15
|
-
require 'action_controller/test_process'
|
16
|
-
|
17
|
-
$:.unshift MARKABY_ROOT
|
18
|
-
require 'init'
|
19
|
-
|
20
|
-
ActionController::Routing::Routes.draw do |map|
|
21
|
-
map.new_user "/users/new", :controller => "users", :action => "new"
|
22
|
-
|
23
|
-
# default routes
|
24
|
-
map.connect ':controller/:action/:id.:format'
|
25
|
-
map.connect ':controller/:action/:id'
|
26
|
-
end
|
27
|
-
else
|
28
|
-
warn "Skipping rails specific tests"
|
29
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= f.text_field :foo %>
|
@@ -1 +0,0 @@
|
|
1
|
-
li author
|
@@ -1 +0,0 @@
|
|
1
|
-
link_to "bar", "/foo"
|
@@ -1 +0,0 @@
|
|
1
|
-
# <!-- raise an ruby error -->
|
@@ -1 +0,0 @@
|
|
1
|
-
render :partial => "a_partial"
|
@@ -1 +0,0 @@
|
|
1
|
-
hello, from erb
|
File without changes
|
@@ -1 +0,0 @@
|
|
1
|
-
Hello, from erb!
|
@@ -1 +0,0 @@
|
|
1
|
-
link_to("Foo", new_user_path)
|
data/spec/markaby/rails_test.rb
DELETED
@@ -1,380 +0,0 @@
|
|
1
|
-
require File.expand_path('../rails/spec_helper', __FILE__)
|
2
|
-
|
3
|
-
if RUNNING_RAILS
|
4
|
-
class NonSpecificTestController < ActionController::Base
|
5
|
-
VIEW_PATH = File.expand_path(File.join(File.dirname(__FILE__), 'rails', 'views'))
|
6
|
-
|
7
|
-
around_filter :catch_exceptions
|
8
|
-
|
9
|
-
attr_reader :last_exception
|
10
|
-
|
11
|
-
def catch_exceptions
|
12
|
-
yield
|
13
|
-
rescue Exception => @last_exception
|
14
|
-
raise @last_exception
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
if Markaby::Rails.deprecated_rails_version?
|
19
|
-
class ActionController::TestCase < Test::Unit::TestCase; end
|
20
|
-
|
21
|
-
class TestController < NonSpecificTestController
|
22
|
-
self.template_root = VIEW_PATH
|
23
|
-
end
|
24
|
-
else
|
25
|
-
class TestController < NonSpecificTestController
|
26
|
-
append_view_path(VIEW_PATH)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class MarkabyController < TestController
|
31
|
-
def renders_nothing
|
32
|
-
render :text => ""
|
33
|
-
end
|
34
|
-
|
35
|
-
def renders_erb_with_explicit_template
|
36
|
-
render :template => "markaby/renders_erb"
|
37
|
-
end
|
38
|
-
|
39
|
-
def render_inline_content
|
40
|
-
mab_content = mab do
|
41
|
-
ul do
|
42
|
-
li "Scott"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
render :inline => mab_content
|
47
|
-
end
|
48
|
-
|
49
|
-
def render_explicit_but_empty_markaby_layout
|
50
|
-
render :template => "markaby/render_explicit_but_empty_markaby_layout.mab"
|
51
|
-
end
|
52
|
-
|
53
|
-
def no_values_passed
|
54
|
-
render :template => "markaby/no_values_passed"
|
55
|
-
end
|
56
|
-
|
57
|
-
def correct_template_values
|
58
|
-
render :template => "markaby/correct_template_values"
|
59
|
-
end
|
60
|
-
|
61
|
-
def render_erb_without_explicit_render_call
|
62
|
-
end
|
63
|
-
|
64
|
-
def render_mab_without_explicit_render_call
|
65
|
-
end
|
66
|
-
|
67
|
-
def render_with_ivar
|
68
|
-
@user = "smtlaissezfaire"
|
69
|
-
render :template => "markaby/render_with_ivar"
|
70
|
-
end
|
71
|
-
|
72
|
-
def access_to_helpers
|
73
|
-
render :template => "markaby/access_to_helpers"
|
74
|
-
end
|
75
|
-
|
76
|
-
def renders_partial
|
77
|
-
render :template => "markaby/partial_parent"
|
78
|
-
end
|
79
|
-
|
80
|
-
def renders_partial_with_locals
|
81
|
-
render :template => "markaby/partial_parent_with_locals"
|
82
|
-
end
|
83
|
-
|
84
|
-
def render_which_raises_error
|
85
|
-
render :template => "markaby/broken"
|
86
|
-
end
|
87
|
-
|
88
|
-
def renders_form_for
|
89
|
-
@obj = Object.new
|
90
|
-
render :template => "markaby/form_for"
|
91
|
-
end
|
92
|
-
|
93
|
-
def render_form_for_with_fields
|
94
|
-
@obj = Object.new
|
95
|
-
def @obj.foo
|
96
|
-
"bar"
|
97
|
-
end
|
98
|
-
|
99
|
-
render :template => "markaby/form_for_with_fields"
|
100
|
-
end
|
101
|
-
|
102
|
-
def render_form_for_with_multiple_fields
|
103
|
-
@obj = Object.new
|
104
|
-
|
105
|
-
def @obj.foo
|
106
|
-
"bar"
|
107
|
-
end
|
108
|
-
|
109
|
-
def @obj.baz
|
110
|
-
"quxx"
|
111
|
-
end
|
112
|
-
|
113
|
-
render :template => "markaby/form_for_with_multiple_fields"
|
114
|
-
end
|
115
|
-
|
116
|
-
def routes
|
117
|
-
end
|
118
|
-
|
119
|
-
def commented_out_template
|
120
|
-
end
|
121
|
-
|
122
|
-
def render_with_yielding
|
123
|
-
render :layout => "layout.mab",
|
124
|
-
:template => "markaby/yielding"
|
125
|
-
end
|
126
|
-
|
127
|
-
def render_with_yielding_where_template_has_two_elements
|
128
|
-
render :layout => "layout.mab",
|
129
|
-
:template => "markaby/yielding_two"
|
130
|
-
end
|
131
|
-
|
132
|
-
def render_with_yielding_content_for_block
|
133
|
-
render :layout => "layout.mab",
|
134
|
-
:template => "markaby/yielding_with_content_for"
|
135
|
-
end
|
136
|
-
|
137
|
-
def render_content_for_with_block_helper
|
138
|
-
@obj = Object.new
|
139
|
-
def @obj.foo
|
140
|
-
"bar"
|
141
|
-
end
|
142
|
-
|
143
|
-
render :layout => "layout.mab",
|
144
|
-
:template => "markaby/yielding_content_for_with_block_helper"
|
145
|
-
end
|
146
|
-
|
147
|
-
def renders_content_for_with_form_for_without_double_render
|
148
|
-
@obj = Object.new
|
149
|
-
def @obj.foo
|
150
|
-
"bar"
|
151
|
-
end
|
152
|
-
|
153
|
-
render :layout => "layout.mab",
|
154
|
-
:template => "markaby/double_output"
|
155
|
-
end
|
156
|
-
|
157
|
-
def renders_form_for_with_erb_body
|
158
|
-
@obj = Object.new
|
159
|
-
|
160
|
-
def @obj.foo
|
161
|
-
"bar"
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
class MarkabyOnRailsTest < ActionController::TestCase
|
167
|
-
def setup
|
168
|
-
Markaby::Builder.restore_defaults!
|
169
|
-
|
170
|
-
@request = ActionController::TestRequest.new
|
171
|
-
@response = ActionController::TestResponse.new
|
172
|
-
@controller = MarkabyController.new
|
173
|
-
end
|
174
|
-
|
175
|
-
def test_renders_nothing
|
176
|
-
get :renders_nothing
|
177
|
-
assert_response :success
|
178
|
-
end
|
179
|
-
|
180
|
-
def test_renders_erb_with_explicit_template
|
181
|
-
get :renders_erb_with_explicit_template
|
182
|
-
assert_response :success
|
183
|
-
# TODO: - fix this test environment issue so that assert_template works
|
184
|
-
# correctly in these tests
|
185
|
-
# assert_template "renders_erb.erb"
|
186
|
-
end
|
187
|
-
|
188
|
-
def test_renders_explicit_but_empty_markaby_layout
|
189
|
-
get :render_explicit_but_empty_markaby_layout
|
190
|
-
assert_response :success
|
191
|
-
|
192
|
-
assert_equal "", @response.body
|
193
|
-
# TODO:
|
194
|
-
# assert_template "markaby/render_explicit_but_empty_markaby_layout"
|
195
|
-
end
|
196
|
-
|
197
|
-
def test_renders_inline_markaby_content
|
198
|
-
get :render_inline_content
|
199
|
-
assert_response :success
|
200
|
-
assert_equal "<ul><li>Scott</li></ul>", @response.body
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_renders_mab_template_with_no_values_passed
|
204
|
-
get :no_values_passed
|
205
|
-
assert_response :success
|
206
|
-
assert_equal "<ul><li>Scott</li></ul>", @response.body
|
207
|
-
end
|
208
|
-
|
209
|
-
def test_renders_mab_template_with_correct_values
|
210
|
-
get :correct_template_values
|
211
|
-
assert_response :success
|
212
|
-
|
213
|
-
assert_equal "<ul><li>smt</li><li>joho</li><li>spox</li></ul>", @response.body
|
214
|
-
end
|
215
|
-
|
216
|
-
def test_renders_without_explicit_render_call
|
217
|
-
get :render_mab_without_explicit_render_call
|
218
|
-
assert_response :success
|
219
|
-
|
220
|
-
assert_equal @response.body, "<ul><li>smtlaissezfaire</li></ul>"
|
221
|
-
end
|
222
|
-
|
223
|
-
def test_renders_with_ivar
|
224
|
-
get :render_with_ivar
|
225
|
-
assert_response :success
|
226
|
-
|
227
|
-
assert_equal "<ul><li>smtlaissezfaire</li></ul>", @response.body
|
228
|
-
end
|
229
|
-
|
230
|
-
def test_access_to_helpers
|
231
|
-
get :access_to_helpers
|
232
|
-
assert_response :success
|
233
|
-
|
234
|
-
assert_equal '<a href="/foo">bar</a>', @response.body
|
235
|
-
end
|
236
|
-
|
237
|
-
def test_renders_partial_from_template
|
238
|
-
get :renders_partial
|
239
|
-
assert_response :success
|
240
|
-
|
241
|
-
assert_equal "<ul><li>smtlaissezfaire</li></ul>", @response.body
|
242
|
-
end
|
243
|
-
|
244
|
-
def test_renders_partial_with_locals
|
245
|
-
get :renders_partial_with_locals
|
246
|
-
assert_response :success
|
247
|
-
|
248
|
-
assert_equal "<ul><li>smtlaissezfaire</li></ul>", @response.body
|
249
|
-
end
|
250
|
-
|
251
|
-
def test_raises_error_when_template_raises_error
|
252
|
-
get :render_which_raises_error
|
253
|
-
|
254
|
-
assert_response :error
|
255
|
-
|
256
|
-
assert_equal ActionView::TemplateError, @controller.last_exception.class
|
257
|
-
assert %r(undefined local variable or method `supercalifragilisticexpialidocious' for #<Markaby::.*Builder.*) =~
|
258
|
-
@controller.last_exception.message.to_s
|
259
|
-
end
|
260
|
-
|
261
|
-
def test_routes_work
|
262
|
-
get :routes
|
263
|
-
assert_response :success
|
264
|
-
|
265
|
-
expected_output = '<a href="/users/new">Foo</a>'
|
266
|
-
assert_equal expected_output, @response.body
|
267
|
-
end
|
268
|
-
|
269
|
-
def test_commented_out_template_cant_raise_errors
|
270
|
-
get :commented_out_template
|
271
|
-
assert_response :success
|
272
|
-
|
273
|
-
expected_output = ""
|
274
|
-
assert_equal expected_output, @response.body
|
275
|
-
end
|
276
|
-
|
277
|
-
if Rails::VERSION::MAJOR >= 2
|
278
|
-
def test_renders_form_for_properly
|
279
|
-
get :renders_form_for
|
280
|
-
|
281
|
-
assert_response :success
|
282
|
-
|
283
|
-
assert %r(<form.*></form>) =~ @response.body
|
284
|
-
end
|
285
|
-
|
286
|
-
def test_renders_form_for_with_fields_for
|
287
|
-
get :render_form_for_with_fields
|
288
|
-
|
289
|
-
assert_response :success
|
290
|
-
|
291
|
-
assert_equal '<form action="/markaby/render_form_for_with_fields" method="post"><input id="foo_foo" name="foo[foo]" size="30" type="text" /></form>',
|
292
|
-
@response.body
|
293
|
-
end
|
294
|
-
|
295
|
-
def test_renders_form_for_with_multiple_fields
|
296
|
-
get :render_form_for_with_multiple_fields
|
297
|
-
|
298
|
-
assert_response :success
|
299
|
-
|
300
|
-
expected_output = '<form action="/markaby/render_form_for_with_multiple_fields" method="post">'
|
301
|
-
expected_output << '<input id="foo_foo" name="foo[foo]" size="30" type="text" />'
|
302
|
-
expected_output << '<input id="foo_baz" name="foo[baz]" size="30" type="text" />'
|
303
|
-
expected_output << '</form>'
|
304
|
-
|
305
|
-
assert_equal expected_output,
|
306
|
-
@response.body
|
307
|
-
end
|
308
|
-
|
309
|
-
def test_rendering_with_yield_works
|
310
|
-
get :render_with_yielding
|
311
|
-
assert_response :success
|
312
|
-
|
313
|
-
expected_output = '<div id="main"><p class="hey">hi there</p></div>'
|
314
|
-
assert_equal expected_output, @response.body
|
315
|
-
end
|
316
|
-
|
317
|
-
def test_render_with_yielding_where_template_has_two_elements
|
318
|
-
get :render_with_yielding_where_template_has_two_elements
|
319
|
-
assert_response :success
|
320
|
-
|
321
|
-
expected_output = '<div id="main"><p class="hi">hi there</p><p class="hi">hi again</p></div>'
|
322
|
-
assert_equal expected_output, @response.body
|
323
|
-
end
|
324
|
-
|
325
|
-
def test_render_with_yielding_content_for_block
|
326
|
-
get :render_with_yielding_content_for_block
|
327
|
-
assert_response :success
|
328
|
-
|
329
|
-
expected_output = '<div id="main"></div><div id="foo"><p>in foo content_for</p></div>'
|
330
|
-
assert_equal expected_output, @response.body
|
331
|
-
end
|
332
|
-
|
333
|
-
def test_render_content_for_with_block_helper
|
334
|
-
get :render_content_for_with_block_helper
|
335
|
-
assert_response :success
|
336
|
-
|
337
|
-
expected_output = '<div id="main"></div><div id="foo">'
|
338
|
-
expected_output << '<form action="/markaby/render_content_for_with_block_helper" method="post">'
|
339
|
-
expected_output << '<input id="foo_foo" name="foo[foo]" size="30" type="text" />'
|
340
|
-
expected_output << '</form>'
|
341
|
-
expected_output << '</div>'
|
342
|
-
|
343
|
-
assert_equal expected_output, @response.body
|
344
|
-
end
|
345
|
-
|
346
|
-
def test_renders_content_for_with_form_for_without_double_render
|
347
|
-
get :renders_content_for_with_form_for_without_double_render
|
348
|
-
assert_response :success
|
349
|
-
|
350
|
-
expected_output = '<div id="main"></div><div id="foo">'
|
351
|
-
expected_output << '<form action="/markaby/renders_content_for_with_form_for_without_double_render" method="post">'
|
352
|
-
expected_output << '<p class="foo">'
|
353
|
-
expected_output << '<input id="foo_foo" name="foo[foo]" size="30" type="text" />'
|
354
|
-
expected_output << '<input id="foo_submit" name="commit" type="submit" value="foo" />'
|
355
|
-
expected_output << '</p>'
|
356
|
-
expected_output << '</form>'
|
357
|
-
expected_output << '</div>'
|
358
|
-
|
359
|
-
assert_equal expected_output, @response.body
|
360
|
-
end
|
361
|
-
|
362
|
-
def test_renders_form_for_with_erb_render_in_body
|
363
|
-
get :renders_form_for_with_erb_body
|
364
|
-
assert_response :success
|
365
|
-
|
366
|
-
str = '<form action="/markaby/renders_form_for_with_erb_body" method="post">'
|
367
|
-
str << '<input id="foo_foo" name="foo[foo]" size="30" type="text" />'
|
368
|
-
str << '</form>'
|
369
|
-
|
370
|
-
assert_equal str, @response.body
|
371
|
-
end
|
372
|
-
end
|
373
|
-
end
|
374
|
-
|
375
|
-
describe "rails version" do
|
376
|
-
it "should support the current rails version" do
|
377
|
-
Markaby::Rails::SUPPORTED_RAILS_VERSIONS.should include(::Rails::VERSION::STRING)
|
378
|
-
end
|
379
|
-
end
|
380
|
-
end
|