sinatra_more 0.3.27 → 0.3.28

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.27
1
+ 0.3.28
@@ -38,6 +38,14 @@ module SinatraMore
38
38
  link_to (caption || email), mail_href, html_options
39
39
  end
40
40
 
41
+ # Creates a meta element with the content and given options
42
+ # meta_tag "weblog,news", :name => "keywords" => <meta name="keywords" content="weblog,news">
43
+ # meta_tag "text/html; charset=UTF-8", :http-equiv => "Content-Type" => <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44
+ def meta_tag(content, options={})
45
+ options.reverse_merge!("content" => content)
46
+ content_tag(:meta, '', options)
47
+ end
48
+
41
49
  # Creates an image element with given url and options
42
50
  # image_tag('icons/avatar.png')
43
51
  def image_tag(url, options={})
@@ -15,7 +15,7 @@ class AbstractFormBuilder
15
15
 
16
16
  # f.label :username, :caption => "Nickname"
17
17
  def label(field, options={})
18
- options.reverse_merge!(:caption => field.to_s.titleize)
18
+ options.reverse_merge!(:caption => "#{field.to_s.titleize}: ")
19
19
  @template.label_tag(field_id(field), options)
20
20
  end
21
21
 
@@ -55,8 +55,8 @@ module SinatraMore
55
55
  # label_tag :username, :class => 'long-label'
56
56
  # label_tag :username, :class => 'long-label' do ... end
57
57
  def label_tag(name, options={}, &block)
58
- options.reverse_merge!(:caption => name.to_s.titleize, :for => name)
59
- caption_text = options.delete(:caption) + ": "
58
+ options.reverse_merge!(:caption => "#{name.to_s.titleize}: ", :for => name)
59
+ caption_text = options.delete(:caption)
60
60
  if block_given? # label with inner content
61
61
  label_content = caption_text + capture_html(&block)
62
62
  concat_content(content_tag(:label, label_content, options))
@@ -80,10 +80,10 @@ module SinatraMore
80
80
  end
81
81
 
82
82
  # Constructs a text area input from the given options
83
- # text_area_tag :username, :class => 'long'
83
+ # text_area_tag :username, :class => 'long', :value => "Demo?"
84
84
  def text_area_tag(name, options={})
85
- options.reverse_merge!(:name => name)
86
- content_tag(:textarea, '', options)
85
+ options.reverse_merge!(:name => name, :value => '')
86
+ content_tag(:textarea, options.delete(:value), options)
87
87
  end
88
88
 
89
89
  # Constructs a password field input from the given options
@@ -32,14 +32,16 @@ module SinatraMore
32
32
  raise "WardenPlugin::Error - Install warden with 'sudo gem install warden' to use plugin!" unless Warden && Warden::Manager
33
33
  app.use Warden::Manager do |manager|
34
34
  manager.default_strategies :password
35
+ manager.default_serializers :session, :cookie
35
36
  manager.failure_app = app
37
+ manager.serializers.update(:session) do
38
+ def serialize(user); user.nil? ? nil : user.id; end
39
+ def deserialize(id); id.nil? ? nil : PasswordStrategy.user_class.find(id); end
40
+ end
36
41
  end
37
42
  app.helpers SinatraMore::OutputHelpers
38
43
  app.helpers SinatraMore::WardenHelpers
39
-
40
44
  Warden::Manager.before_failure { |env,opts| env['REQUEST_METHOD'] = "POST" }
41
- Warden::Manager.serialize_into_session { |user| user.nil? ? nil : user.id }
42
- Warden::Manager.serialize_from_session { |id| id.nil? ? nil : PasswordStrategy.user_class.find(id) }
43
45
  Warden::Strategies.add(:password, PasswordStrategy)
44
46
  PasswordStrategy.user_class = User if defined?(User)
45
47
  end
data/sinatra_more.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_more}
8
- s.version = "0.3.27"
8
+ s.version = "0.3.28"
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"]
12
- s.date = %q{2009-12-21}
12
+ s.date = %q{2009-12-22}
13
13
  s.default_executable = %q{sinatra_gen}
14
14
  s.description = %q{Expands sinatra with standard helpers and tools to allow for complex applications}
15
15
  s.email = %q{nesquena@gmail.com}
@@ -116,6 +116,8 @@ Gem::Specification.new do |s|
116
116
  "test/fixtures/markup_app/views/link_to.haml",
117
117
  "test/fixtures/markup_app/views/mail_to.erb",
118
118
  "test/fixtures/markup_app/views/mail_to.haml",
119
+ "test/fixtures/markup_app/views/meta_tag.erb",
120
+ "test/fixtures/markup_app/views/meta_tag.haml",
119
121
  "test/fixtures/render_app/app.rb",
120
122
  "test/fixtures/render_app/views/erb/test.erb",
121
123
  "test/fixtures/render_app/views/haml/test.haml",
@@ -2,7 +2,7 @@
2
2
  <%= f.error_messages(:header_message => "custom MarkupUser cannot be saved!") %>
3
3
  <%= f.hidden_field :session_id %>
4
4
  <p>
5
- <%= f.label :username, :caption => "Login", :class => 'user-label' %>
5
+ <%= f.label :username, :caption => "Login: ", :class => 'user-label' %>
6
6
  <%= f.text_field :username, :class => 'user-text', :value => "John" %>
7
7
  </p>
8
8
  <p>
@@ -18,11 +18,11 @@
18
18
  <%= f.file_field :photo, :class => 'user-photo' %>
19
19
  </p>
20
20
  <p>
21
- <%= f.label :about, :caption => "About Me" %>
21
+ <%= f.label :about, :caption => "About Me: " %>
22
22
  <%= f.text_area :about, :class => 'user-about' %>
23
23
  </p>
24
24
  <p>
25
- <%= f.label :gender, :caption => "Your gender:" %>
25
+ <%= f.label :gender, :caption => "Your gender: " %>
26
26
  <%= f.radio_button :gender, :value => 'male' %>
27
27
  <%= f.radio_button :gender, :value => 'female' %>
28
28
  </p>
@@ -41,7 +41,7 @@
41
41
  <% form_for MarkupUser.new, '/another_demo', :id => 'demo2', :method => 'get' do |f| %>
42
42
  <%= f.error_messages :header_message => "custom MarkupUser cannot be saved!" %>
43
43
  <%= f.hidden_field :session_id %>
44
- <%= f.text_field_block :username, { :class => 'input' }, { :caption => 'Nickname', :class => 'label' } %>
44
+ <%= f.text_field_block :username, { :class => 'input' }, { :caption => 'Nickname: ', :class => 'label' } %>
45
45
  <%= f.password_field_block :code, { :class => 'input' } %>
46
46
  <%= f.text_area_block :about, { :class => 'textarea' } %>
47
47
  <%= f.file_field_block :photo, { :class => 'upload' } %>
@@ -2,7 +2,7 @@
2
2
  = f.error_messages(:header_message => "custom MarkupUser cannot be saved!")
3
3
  = f.hidden_field :session_id
4
4
  %p
5
- = f.label :username, :caption => "Login", :class => 'user-label'
5
+ = f.label :username, :caption => "Login: ", :class => 'user-label'
6
6
  = f.text_field :username, :class => 'user-text', :value => "John"
7
7
  %p
8
8
  = f.label :email, :caption => "Email", :class => 'user-email'
@@ -14,10 +14,10 @@
14
14
  = f.label :photo
15
15
  = f.file_field :photo, :class => 'user-photo'
16
16
  %p
17
- = f.label :about, :caption => "About Me"
17
+ = f.label :about, :caption => "About Me: "
18
18
  = f.text_area :about, :class => 'user-about'
19
19
  %p
20
- = f.label :gender, :caption => "Your gender"
20
+ = f.label :gender, :caption => "Your gender: "
21
21
  = f.radio_button :gender, :value => 'male'
22
22
  = f.radio_button :gender, :value => 'female'
23
23
  %p
@@ -34,7 +34,7 @@
34
34
  - form_for MarkupUser.new, '/another_demo', :id => 'demo2', :method => 'get' do |f|
35
35
  = f.error_messages :header_message => "custom MarkupUser cannot be saved!"
36
36
  = f.hidden_field :session_id
37
- = f.text_field_block :username, { :class => 'input' }, { :caption => 'Nickname', :class => 'label' }
37
+ = f.text_field_block :username, { :class => 'input' }, { :caption => 'Nickname: ', :class => 'label' }
38
38
  = f.password_field_block :code, { :class => 'input' }
39
39
  = f.text_area_block :about, { :class => 'textarea' }
40
40
  = f.file_field_block :photo, { :class => 'upload' }
@@ -0,0 +1,3 @@
1
+ <%= meta_tag "weblog,news", :name => "keywords" %>
2
+
3
+ <%= meta_tag "text/html; charset=UTF-8", :"http-equiv" => "Content-Type" %>
@@ -0,0 +1,3 @@
1
+ = meta_tag "weblog,news", :name => "keywords"
2
+
3
+ = meta_tag "text/html; charset=UTF-8", :"http-equiv" => "Content-Type"
@@ -145,4 +145,27 @@ class TestAssetTagHelpers < Test::Unit::TestCase
145
145
  assert_has_tag('script', :src => "http://google.com/lib.js") { actual_html }
146
146
  end
147
147
  end
148
+
149
+ context 'for #meta_tag method' do
150
+ should "display meta tag with given content and name" do
151
+ actual_html = meta_tag("weblog,news", :name => "keywords")
152
+ assert_has_tag("meta", :name => "keywords", "content" => "weblog,news") { actual_html }
153
+ end
154
+ should "display meta tag with given content and http-equiv" do
155
+ actual_html = meta_tag("text/html; charset=UTF-8", :"http-equiv" => "Content-Type")
156
+ assert_has_tag("meta", :"http-equiv" => "Content-Type", "content" => "text/html; charset=UTF-8") { actual_html }
157
+ end
158
+ should "display meta tag element in haml" do
159
+ visit '/haml/meta_tag'
160
+ assert_have_selector 'meta', "content" => "weblog,news", :name => "keywords"
161
+ assert_have_selector 'meta', "content" => "text/html; charset=UTF-8", :"http-equiv" => "Content-Type"
162
+ end
163
+ should "display meta tag element in erb" do
164
+ visit '/erb/meta_tag'
165
+ assert_have_selector 'meta', "content" => "weblog,news", :name => "keywords"
166
+ assert_have_selector 'meta', "content" => "text/html; charset=UTF-8", :"http-equiv" => "Content-Type"
167
+ end
168
+
169
+ end
170
+
148
171
  end
@@ -148,7 +148,7 @@ class TestFormBuilder < Test::Unit::TestCase
148
148
 
149
149
  context 'for #label method' do
150
150
  should "display correct label html" do
151
- actual_html = standard_builder.label(:first_name, :class => 'large', :caption => "F. Name")
151
+ actual_html = standard_builder.label(:first_name, :class => 'large', :caption => "F. Name: ")
152
152
  assert_has_tag('label', :class => 'large', :for => 'user_first_name', :content => "F. Name: ") { actual_html }
153
153
  end
154
154
 
@@ -300,6 +300,11 @@ class TestFormBuilder < Test::Unit::TestCase
300
300
  actual_html = standard_builder.text_area(:about, :class => 'large')
301
301
  assert_has_tag('textarea.large', :id => 'user_about', :name => 'user[about]') { actual_html }
302
302
  end
303
+
304
+ should "display correct text_area html and content" do
305
+ actual_html = standard_builder.text_area(:about, :value => "Demo")
306
+ assert_has_tag('textarea', :id => 'user_about', :content => 'Demo') { actual_html }
307
+ end
303
308
 
304
309
  should "display correct text_area in haml" do
305
310
  visit '/haml/form_for'
@@ -454,19 +459,19 @@ class TestFormBuilder < Test::Unit::TestCase
454
459
  context 'for #text_field_block method' do
455
460
  should "display correct text field block html" do
456
461
  actual_html = standard_builder.text_field_block(:first_name, :class => 'large', :caption => "FName")
457
- assert_has_tag('p label', :for => 'user_first_name', :content => "FName: ") { actual_html }
462
+ assert_has_tag('p label', :for => 'user_first_name', :content => "FName") { actual_html }
458
463
  assert_has_tag('p input.large[type=text]', :value => "Joe", :id => 'user_first_name', :name => 'user[first_name]') { actual_html }
459
464
  end
460
465
 
461
466
  should "display correct text field block in haml" do
462
467
  visit '/haml/form_for'
463
- assert_have_selector '#demo2 p label', :for => 'markup_user_username', :content => "Nickname: ", :class => 'label'
468
+ assert_have_selector '#demo2 p label', :for => 'markup_user_username', :content => "Nickname", :class => 'label'
464
469
  assert_have_selector '#demo2 p input', :type => 'text', :name => 'markup_user[username]', :id => 'markup_user_username'
465
470
  end
466
471
 
467
472
  should "display correct text field block in erb" do
468
473
  visit '/erb/form_for'
469
- assert_have_selector '#demo2 p label', :for => 'markup_user_username', :content => "Nickname: ", :class => 'label'
474
+ assert_have_selector '#demo2 p label', :for => 'markup_user_username', :content => "Nickname", :class => 'label'
470
475
  assert_have_selector '#demo2 p input', :type => 'text', :name => 'markup_user[username]', :id => 'markup_user_username'
471
476
  end
472
477
  end
@@ -474,7 +479,7 @@ class TestFormBuilder < Test::Unit::TestCase
474
479
  context 'for #text_area_block method' do
475
480
  should "display correct text area block html" do
476
481
  actual_html = standard_builder.text_area_block(:about, :class => 'large', :caption => "About Me")
477
- assert_has_tag('p label', :for => 'user_about', :content => "About Me: ") { actual_html }
482
+ assert_has_tag('p label', :for => 'user_about', :content => "About Me") { actual_html }
478
483
  assert_has_tag('p textarea', :id => 'user_about', :name => 'user[about]') { actual_html }
479
484
  end
480
485
 
@@ -493,7 +498,7 @@ class TestFormBuilder < Test::Unit::TestCase
493
498
 
494
499
  context 'for #password_field_block method' do
495
500
  should "display correct password field block html" do
496
- actual_html = standard_builder.password_field_block(:keycode, :class => 'large', :caption => "Code")
501
+ actual_html = standard_builder.password_field_block(:keycode, :class => 'large', :caption => "Code: ")
497
502
  assert_has_tag('p label', :for => 'user_keycode', :content => "Code: ") { actual_html }
498
503
  assert_has_tag('p input.large[type=password]', :id => 'user_keycode', :name => 'user[keycode]') { actual_html }
499
504
  end
@@ -513,7 +518,7 @@ class TestFormBuilder < Test::Unit::TestCase
513
518
 
514
519
  context 'for #file_field_block method' do
515
520
  should "display correct file field block html" do
516
- actual_html = standard_builder.file_field_block(:photo, :class => 'large', :caption => "Photo")
521
+ actual_html = standard_builder.file_field_block(:photo, :class => 'large', :caption => "Photo: ")
517
522
  assert_has_tag('p label', :for => 'user_photo', :content => "Photo: ") { actual_html }
518
523
  assert_has_tag('p input.large[type=file]', :id => 'user_photo', :name => 'user[photo]') { actual_html }
519
524
  end
@@ -533,8 +538,8 @@ class TestFormBuilder < Test::Unit::TestCase
533
538
 
534
539
  context 'for #check_box_block method' do
535
540
  should "display correct check box block html" do
536
- actual_html = standard_builder.check_box_block(:remember_me, :class => 'large', :caption => "Remember session")
537
- assert_has_tag('p label', :for => 'user_remember_me', :content => "Remember session: ") { actual_html }
541
+ actual_html = standard_builder.check_box_block(:remember_me, :class => 'large', :caption => "Remember session?")
542
+ assert_has_tag('p label', :for => 'user_remember_me', :content => "Remember session?") { actual_html }
538
543
  assert_has_tag('p input.large[type=checkbox]', :id => 'user_remember_me', :name => 'user[remember_me]') { actual_html }
539
544
  end
540
545
 
@@ -554,7 +559,7 @@ class TestFormBuilder < Test::Unit::TestCase
554
559
  context 'for #select_block method' do
555
560
  should "display correct select_block block html" do
556
561
  actual_html = standard_builder.select_block(:country, :options => ['USA', 'Canada'], :class => 'large', :caption => "Your country")
557
- assert_has_tag('p label', :for => 'user_country', :content => "Your country: ") { actual_html }
562
+ assert_has_tag('p label', :for => 'user_country', :content => "Your country") { actual_html }
558
563
  assert_has_tag('p select', :id => 'user_country', :name => 'user[country]') { actual_html }
559
564
  assert_has_tag('p select option', :content => 'USA') { actual_html }
560
565
  assert_has_tag('p select option', :content => 'Canada') { actual_html }
@@ -108,7 +108,7 @@ class TestFormHelpers < Test::Unit::TestCase
108
108
  context 'for #label_tag method' do
109
109
  should "display label tag in ruby" do
110
110
  actual_html = label_tag(:username, :class => 'long-label', :caption => "Nickname")
111
- assert_has_tag(:label, :for => 'username', :class => 'long-label', :content => "Nickname: ") { actual_html }
111
+ assert_has_tag(:label, :for => 'username', :class => 'long-label', :content => "Nickname") { actual_html }
112
112
  end
113
113
 
114
114
  should "display label tag in erb for simple form" do
@@ -187,7 +187,12 @@ class TestFormHelpers < Test::Unit::TestCase
187
187
  context 'for #text_area_tag method' do
188
188
  should "display text area in ruby" do
189
189
  actual_html = text_area_tag(:about, :class => 'long')
190
- assert_has_tag(:textarea, :class => "long", :name => 'about') { actual_html }
190
+ assert_has_tag(:textarea, :class => "long", :content => '', :name => 'about') { actual_html }
191
+ end
192
+
193
+ should "display text area in ruby with specified content" do
194
+ actual_html = text_area_tag(:about, :value => "a test")
195
+ assert_has_tag(:textarea, :content => "a test", :name => 'about') { actual_html }
191
196
  end
192
197
 
193
198
  should "display text area in erb" do
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.3.27
4
+ version: 0.3.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Esquenazi
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-21 00:00:00 -08:00
12
+ date: 2009-12-22 00:00:00 -08:00
13
13
  default_executable: sinatra_gen
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -219,6 +219,8 @@ files:
219
219
  - test/fixtures/markup_app/views/link_to.haml
220
220
  - test/fixtures/markup_app/views/mail_to.erb
221
221
  - test/fixtures/markup_app/views/mail_to.haml
222
+ - test/fixtures/markup_app/views/meta_tag.erb
223
+ - test/fixtures/markup_app/views/meta_tag.haml
222
224
  - test/fixtures/render_app/app.rb
223
225
  - test/fixtures/render_app/views/erb/test.erb
224
226
  - test/fixtures/render_app/views/haml/test.haml