formtastic 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -25,7 +25,7 @@
25
25
  # Formtastic::SemanticFormBuilder.inline_errors = :sentence
26
26
 
27
27
  # Set the method to call on label text to transform or format it for human-friendly
28
- # reading (overridden if :label or i18 used). Defaults to :humanize.
28
+ # reading when formtastic is user without object. Defaults to :humanize.
29
29
  # Formtastic::SemanticFormBuilder.label_str_method = :humanize
30
30
 
31
31
  # Set the array of methods to try calling on parent objects in :select and :radio inputs
@@ -1478,7 +1478,11 @@ module Formtastic #:nodoc:
1478
1478
  end
1479
1479
 
1480
1480
  def humanized_attribute_name(method) #:nodoc:
1481
- method.to_s.send(@@label_str_method)
1481
+ if @object && @object.class.respond_to?(:human_attribute_name)
1482
+ @object.class.human_attribute_name(method.to_s)
1483
+ else
1484
+ method.to_s.send(@@label_str_method)
1485
+ end
1482
1486
  end
1483
1487
 
1484
1488
  # Internal generic method for looking up localized values within Formtastic
@@ -400,8 +400,9 @@ describe 'SemanticFormBuilder#input' do
400
400
 
401
401
  describe 'when not provided' do
402
402
  describe 'when localized label is NOT provided' do
403
- describe 'and label_str_method is not provided' do
403
+ describe 'and object is not given' do
404
404
  it 'should default the humanized method name, passing it down to the label tag' do
405
+ ::Formtastic::SemanticFormBuilder.label_str_method = :humanize
405
406
 
406
407
  semantic_form_for(:project, :url => 'http://test.host') do |builder|
407
408
  concat(builder.input(:meta_description))
@@ -411,14 +412,16 @@ describe 'SemanticFormBuilder#input' do
411
412
  end
412
413
  end
413
414
 
414
- describe 'and label_str_method is :capitalize' do
415
- it 'should capitalize method name, passing it down to the label tag' do
416
- with_config :label_str_method, :capitalize do
417
- semantic_form_for(:project, :url => 'http://test.host') do |builder|
418
- concat(builder.input(:meta_description))
419
- end
420
- output_buffer.should have_tag("form li label", /#{'meta_description'.capitalize}/)
415
+ describe 'and object is given' do
416
+ it 'should delegate the label logic to class human attribute name and pass it down to the label tag' do
417
+ @new_post.stub!(:meta_description) # a two word method name
418
+ @new_post.class.should_receive(:human_attribute_name).with('meta_description').and_return('meta_description'.humanize)
419
+
420
+ semantic_form_for(@new_post) do |builder|
421
+ concat(builder.input(:meta_description))
421
422
  end
423
+
424
+ output_buffer.should have_tag("form li label", /#{'meta_description'.humanize}/)
422
425
  end
423
426
  end
424
427
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formtastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin French
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-03 00:00:00 +11:00
12
+ date: 2009-12-04 00:00:00 +11:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency