sinatra_more 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -0
- data/VERSION +1 -1
- data/lib/sinatra_more/markup_plugin/asset_tag_helpers.rb +6 -6
- data/lib/sinatra_more/markup_plugin/form_builder/abstract_form_builder.rb +5 -0
- data/lib/sinatra_more/markup_plugin/form_builder/standard_form_builder.rb +8 -2
- data/lib/sinatra_more/markup_plugin/form_helpers.rb +7 -0
- data/lib/sinatra_more/support_lite.rb +1 -0
- data/sinatra_more.gemspec +1 -1
- data/test/fixtures/markup_app/views/form_for.erb +3 -1
- data/test/fixtures/markup_app/views/form_for.haml +4 -1
- data/test/fixtures/markup_app/views/form_tag.erb +1 -0
- data/test/fixtures/markup_app/views/form_tag.haml +2 -1
- data/test/helper.rb +1 -0
- data/test/markup_plugin/test_asset_tag_helpers.rb +3 -0
- data/test/markup_plugin/test_form_builder.rb +41 -0
- data/test/markup_plugin/test_form_helpers.rb +22 -0
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -173,6 +173,9 @@ methods should be very familiar to anyone who has used rails view helpers.
|
|
173
173
|
* <tt>submit_tag(caption, options={})</tt>
|
174
174
|
* Constructs a submit button from the given options
|
175
175
|
* <tt>submit_tag "Create", :class => 'success'</tt>
|
176
|
+
* <tt>image_submit_tag(source, options={})</tt>
|
177
|
+
* Constructs an image submit button from the given options
|
178
|
+
* <tt>image_submit_tag "submit.png", :class => 'success'</tt>
|
176
179
|
|
177
180
|
A form_tag might look like:
|
178
181
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -48,6 +48,12 @@ module SinatraMore
|
|
48
48
|
sources.collect { |script| javascript_tag(script, options) }.join("\n")
|
49
49
|
end
|
50
50
|
|
51
|
+
# Returns the path to the image, either relative or absolute
|
52
|
+
def image_path(src)
|
53
|
+
src.gsub!(/\s/, '')
|
54
|
+
src =~ %r{^\s*(/|http)} ? src : File.join('/images', src)
|
55
|
+
end
|
56
|
+
|
51
57
|
protected
|
52
58
|
|
53
59
|
# stylesheet_tag('style', :media => 'screen')
|
@@ -62,12 +68,6 @@ module SinatraMore
|
|
62
68
|
tag(:script, options)
|
63
69
|
end
|
64
70
|
|
65
|
-
# Returns the path to the image, either relative or absolute
|
66
|
-
def image_path(src)
|
67
|
-
src.gsub!(/\s/, '')
|
68
|
-
src =~ %r{^\s*/} ? src : File.join('/images', src)
|
69
|
-
end
|
70
|
-
|
71
71
|
def javascript_path(source)
|
72
72
|
return source if source =~ /^http/
|
73
73
|
result_path = "/javascripts/#{File.basename(source, '.js')}.js"
|
@@ -70,6 +70,11 @@ class AbstractFormBuilder
|
|
70
70
|
@template.submit_tag caption, options
|
71
71
|
end
|
72
72
|
|
73
|
+
# f.simage_submitubmit "buttons/submit.png", :class => 'large'
|
74
|
+
def image_submit(source, options={})
|
75
|
+
@template.image_submit_tag source, options
|
76
|
+
end
|
77
|
+
|
73
78
|
protected
|
74
79
|
|
75
80
|
# Returns the known field types for a formbuilder
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class StandardFormBuilder < AbstractFormBuilder
|
2
|
-
|
2
|
+
|
3
3
|
# text_field_block(:username, { :class => 'long' }, { :class => 'wide-label' })
|
4
4
|
# text_area_block(:username, { :class => 'long' }, { :class => 'wide-label' })
|
5
5
|
# password_field_block(:username, { :class => 'long' }, { :class => 'wide-label' })
|
@@ -17,7 +17,13 @@ class StandardFormBuilder < AbstractFormBuilder
|
|
17
17
|
|
18
18
|
# submit_block("Update")
|
19
19
|
def submit_block(caption, options={})
|
20
|
-
submit_html =
|
20
|
+
submit_html = self.submit(caption, options)
|
21
|
+
@template.content_tag(:p, submit_html)
|
22
|
+
end
|
23
|
+
|
24
|
+
# image_submit_block("submit.png")
|
25
|
+
def image_submit_block(source, options={})
|
26
|
+
submit_html = self.image_submit(source, options)
|
21
27
|
@template.content_tag(:p, submit_html)
|
22
28
|
end
|
23
29
|
end
|
@@ -110,6 +110,13 @@ module SinatraMore
|
|
110
110
|
input_tag(:submit, options)
|
111
111
|
end
|
112
112
|
|
113
|
+
# Constructs a submit button from the given options
|
114
|
+
# submit_tag "Create", :class => 'success'
|
115
|
+
def image_submit_tag(source, options={})
|
116
|
+
options.reverse_merge!(:src => image_path(source))
|
117
|
+
input_tag(:image, options)
|
118
|
+
end
|
119
|
+
|
113
120
|
protected
|
114
121
|
|
115
122
|
# returns the hidden method field for 'put' and 'delete' forms
|
data/sinatra_more.gemspec
CHANGED
@@ -30,6 +30,7 @@
|
|
30
30
|
<%= f.check_box :remember_me, :value => '1' %>
|
31
31
|
</p>
|
32
32
|
<p><%= f.submit "Create", :class => 'success', :id => 'demo-button' %></p>
|
33
|
+
<p><%= f.image_submit "buttons/post.png", :class => 'success', :id => 'image-button' %></p>
|
33
34
|
<% end %>
|
34
35
|
|
35
36
|
<% form_for MarkupUser.new, '/another_demo', :id => 'demo2', :method => 'get' do |f| %>
|
@@ -39,5 +40,6 @@
|
|
39
40
|
<%= f.password_field_block :code, { :class => 'input' } %>
|
40
41
|
<%= f.text_area_block :about, { :class => 'textarea' } %>
|
41
42
|
<%= f.file_field_block :photo, { :class => 'upload' } %>
|
42
|
-
<%= f.submit_block "Create", { :class => 'button'
|
43
|
+
<%= f.submit_block "Create", { :class => 'button' } %>
|
44
|
+
<%= f.image_submit_block "buttons/ok.png", { :class => 'image' } %>
|
43
45
|
<% end %>
|
@@ -24,6 +24,8 @@
|
|
24
24
|
= f.check_box :remember_me, :value => "1"
|
25
25
|
%p
|
26
26
|
= f.submit "Create", :class => 'success', :id => 'demo-button'
|
27
|
+
%p
|
28
|
+
= f.image_submit "buttons/post.png", :class => 'success', :id => 'image-button'
|
27
29
|
|
28
30
|
- form_for MarkupUser.new, '/another_demo', :id => 'demo2', :method => 'get' do |f|
|
29
31
|
= f.error_messages :header_message => "custom MarkupUser cannot be saved!"
|
@@ -32,4 +34,5 @@
|
|
32
34
|
= f.password_field_block :code, { :class => 'input' }
|
33
35
|
= f.text_area_block :about, { :class => 'textarea' }
|
34
36
|
= f.file_field_block :photo, { :class => 'upload' }
|
35
|
-
= f.submit_block "Create", { :class => 'button' }
|
37
|
+
= f.submit_block "Create", { :class => 'button' }
|
38
|
+
= f.image_submit_block "buttons/ok.png", { :class => 'image' }
|
data/test/helper.rb
CHANGED
@@ -53,6 +53,9 @@ class TestAssetTagHelpers < Test::Unit::TestCase
|
|
53
53
|
should "display image tag relative link with options" do
|
54
54
|
assert_has_tag('img.photo', :src => "/images/relative/pic.gif") { image_tag('relative/pic.gif', :class => 'photo') }
|
55
55
|
end
|
56
|
+
should "display image tag uri link with options" do
|
57
|
+
assert_has_tag('img.photo', :src => "http://demo.org/pic.gif") { image_tag('http://demo.org/pic.gif', :class => 'photo') }
|
58
|
+
end
|
56
59
|
should "display image tag relative link with incorrect spacing" do
|
57
60
|
assert_has_tag('img.photo', :src => "/images/relative/pic.gif") { image_tag(' relative/ pic.gif ', :class => 'photo') }
|
58
61
|
end
|
@@ -316,6 +316,30 @@ class TestFormBuilder < Test::Unit::TestCase
|
|
316
316
|
end
|
317
317
|
end
|
318
318
|
|
319
|
+
context 'for #image_submit method' do
|
320
|
+
should "display correct image submit button html with no options" do
|
321
|
+
actual_html = standard_builder.image_submit('buttons/ok.png')
|
322
|
+
assert_has_tag('input[type=image]', :src => "/images/buttons/ok.png") { actual_html }
|
323
|
+
end
|
324
|
+
|
325
|
+
should "display correct image submit button html" do
|
326
|
+
actual_html = standard_builder.image_submit('/system/ok.png', :class => 'large')
|
327
|
+
assert_has_tag('input.large[type=image]', :src => "/system/ok.png") { actual_html }
|
328
|
+
end
|
329
|
+
|
330
|
+
should "display correct image submit button in haml" do
|
331
|
+
visit '/haml/form_for'
|
332
|
+
assert_have_selector '#demo input', :type => 'image', :id => 'image-button', :src => '/images/buttons/post.png'
|
333
|
+
assert_have_selector '#demo2 input', :type => 'image', :class => 'image', :src => "/images/buttons/ok.png"
|
334
|
+
end
|
335
|
+
|
336
|
+
should "display correct image submit button in erb" do
|
337
|
+
visit '/erb/form_for'
|
338
|
+
assert_have_selector '#demo input', :type => 'image', :id => 'image-button', :src => '/images/buttons/post.png'
|
339
|
+
assert_have_selector '#demo2 input', :type => 'image', :class => 'image', :src => "/images/buttons/ok.png"
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
319
343
|
# ===========================
|
320
344
|
# StandardFormBuilder
|
321
345
|
# ===========================
|
@@ -416,4 +440,21 @@ class TestFormBuilder < Test::Unit::TestCase
|
|
416
440
|
assert_have_selector '#demo2 p input', :type => 'submit', :class => 'button'
|
417
441
|
end
|
418
442
|
end
|
443
|
+
|
444
|
+
context 'for #image_submit_block method' do
|
445
|
+
should "display correct image submit block html" do
|
446
|
+
actual_html = standard_builder.image_submit_block("buttons/ok.png", :class => 'large')
|
447
|
+
assert_has_tag('p input.large[type=image]', :src => '/images/buttons/ok.png') { actual_html }
|
448
|
+
end
|
449
|
+
|
450
|
+
should "display correct image submit block in haml" do
|
451
|
+
visit '/haml/form_for'
|
452
|
+
assert_have_selector '#demo2 p input', :type => 'image', :class => 'image', :src => '/images/buttons/ok.png'
|
453
|
+
end
|
454
|
+
|
455
|
+
should "display correct image submit block in erb" do
|
456
|
+
visit '/erb/form_for'
|
457
|
+
assert_have_selector '#demo2 p input', :type => 'image', :class => 'image', :src => '/images/buttons/ok.png'
|
458
|
+
end
|
459
|
+
end
|
419
460
|
end
|
@@ -308,4 +308,26 @@ class TestFormHelpers < Test::Unit::TestCase
|
|
308
308
|
end
|
309
309
|
end
|
310
310
|
|
311
|
+
context 'for #image_submit_tag method' do
|
312
|
+
should "display image submit tag in ruby with relative path" do
|
313
|
+
actual_html = image_submit_tag('buttons/ok.png', :class => 'success')
|
314
|
+
assert_has_tag(:input, :type => 'image', :class => "success", :src => '/images/buttons/ok.png') { actual_html }
|
315
|
+
end
|
316
|
+
|
317
|
+
should "display image submit tag in ruby with absolute path" do
|
318
|
+
actual_html = image_submit_tag('/system/ok.png', :class => 'success')
|
319
|
+
assert_has_tag(:input, :type => 'image', :class => "success", :src => '/system/ok.png') { actual_html }
|
320
|
+
end
|
321
|
+
|
322
|
+
should "display image submit tag in erb" do
|
323
|
+
visit '/erb/form_tag'
|
324
|
+
assert_have_selector 'form.advanced-form input[type=image]', :count => 1, :src => "/images/buttons/submit.png"
|
325
|
+
end
|
326
|
+
|
327
|
+
should "display image submit tag in haml" do
|
328
|
+
visit '/haml/form_tag'
|
329
|
+
assert_have_selector 'form.advanced-form input[type=image]', :count => 1, :src => "/images/buttons/submit.png"
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
311
333
|
end
|