sinatra_more 0.2.0 → 0.2.1

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/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