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 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.0
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 = @template.submit_tag(caption, options)
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
@@ -2,6 +2,7 @@
2
2
 
3
3
  unless String.method_defined?(:titleize)
4
4
  require 'active_support/inflector'
5
+ require 'active_support/core_ext/blank'
5
6
  end
6
7
 
7
8
  unless Hash.method_defined?(:reverse_merge!)
data/sinatra_more.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_more}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Esquenazi"]
@@ -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', :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' }
@@ -45,5 +45,6 @@
45
45
  <% end %>
46
46
  <% field_set_tag(:class => 'buttons') do %>
47
47
  <%= submit_tag "Login" %>
48
+ <%= image_submit_tag "buttons/submit.png" %>
48
49
  <% end %>
49
50
  <% end %>
@@ -35,4 +35,5 @@
35
35
  %p
36
36
  = check_box_tag :remember_me, :value => "1", :checked => true
37
37
  - field_set_tag(:class => 'buttons') do
38
- = submit_tag "Login"
38
+ = submit_tag "Login"
39
+ = image_submit_tag "buttons/submit.png"
data/test/helper.rb CHANGED
@@ -13,6 +13,7 @@ require 'sinatra_more'
13
13
  class Test::Unit::TestCase
14
14
  include SinatraMore::OutputHelpers
15
15
  include SinatraMore::TagHelpers
16
+ include SinatraMore::AssetTagHelpers
16
17
  include Rack::Test::Methods
17
18
  include Webrat::Methods
18
19
  include Webrat::Matchers
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_more
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Esquenazi