Skip to content

Commit

Permalink
added a deprecation warning for :selected/:checked/:default -- they'l…
Browse files Browse the repository at this point in the history
…l be gone in 1.0 in favor of after_initialize or controller set-ups
  • Loading branch information
justinfrench committed Mar 13, 2010
1 parent 33262f4 commit f4f6d33
Show file tree
Hide file tree
Showing 9 changed files with 134 additions and 58 deletions.
8 changes: 8 additions & 0 deletions lib/formtastic.rb
Expand Up @@ -77,6 +77,14 @@ class SemanticFormBuilder < ActionView::Helpers::FormBuilder
# <% end %>
#
def input(method, options = {})
if options.key?(:selected) || options.key?(:checked) || options.key?(:default)
::ActiveSupport::Deprecation.warn(
"The :selected, :checked (and :default) options are deprecated in Formtastic and will be removed from 1.0. " <<
"Please set default values in your models (using an after_initialize callback) or in your controller set-up. " <<
"See http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html for more information.", caller)
end


options[:required] = method_required?(method) unless options.key?(:required)
options[:as] ||= default_input_type(method, options)

Expand Down
14 changes: 9 additions & 5 deletions spec/inputs/boolean_input_spec.rb
Expand Up @@ -65,8 +65,10 @@
before do
@new_post.stub!(:allow_comments).and_return(true)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:allow_comments, :as => :boolean, :selected => false))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:allow_comments, :as => :boolean, :selected => false))
end
end
end

Expand All @@ -78,9 +80,11 @@
describe "selected" do
before do
@new_post.stub!(:allow_comments).and_return(false)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:allow_comments, :as => :boolean, :selected => true))

with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:allow_comments, :as => :boolean, :selected => true))
end
end
end

Expand Down
32 changes: 25 additions & 7 deletions spec/inputs/check_boxes_input_spec.rb
Expand Up @@ -115,8 +115,10 @@
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => nil))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => nil))
end
end
end

Expand All @@ -129,8 +131,10 @@
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => @fred.id))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => @fred.id))
end
end
end

Expand All @@ -144,9 +148,11 @@
describe "multiple selected items" do
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => [@bob.id, @fred.id]))

with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => [@bob.id, @fred.id]))
end
end
end

Expand All @@ -160,8 +166,20 @@
end

end

it 'should warn about :selected deprecation' do
with_deprecation_silenced do
::ActiveSupport::Deprecation.should_receive(:warn).any_number_of_times
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :check_boxes, :selected => @bob.id))
end
end
end


end



end

26 changes: 17 additions & 9 deletions spec/inputs/date_input_spec.rb
Expand Up @@ -52,8 +52,10 @@
it "should select the object value (ignoring :default)" do
output_buffer.replace ''
@new_post.stub!(:created_at => Time.mktime(2012))
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Time.mktime(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Time.mktime(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='2012'][@selected]", :count => 1)
Expand All @@ -64,8 +66,10 @@
it "should select the :default if provided as a Date" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Date.new(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Date.new(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='1999'][@selected]", :count => 1)
Expand All @@ -74,8 +78,10 @@
it "should select the :default if provided as a Time" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Time.mktime(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => Time.mktime(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='1999'][@selected]", :count => 1)
Expand All @@ -84,8 +90,10 @@
it "should not select an option if the :default is provided as nil" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => nil))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :default => nil))
end
end
output_buffer.should_not have_tag("form li ol li select#post_created_at_1i option[@selected]")
end
Expand Down Expand Up @@ -133,7 +141,7 @@

it 'should warn about :selected deprecation' do
with_deprecation_silenced do
::ActiveSupport::Deprecation.should_receive(:warn)
::ActiveSupport::Deprecation.should_receive(:warn).any_number_of_times
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :selected => Date.new(1999)))
end
Expand Down
28 changes: 18 additions & 10 deletions spec/inputs/datetime_input_spec.rb
Expand Up @@ -158,8 +158,10 @@
it "should select the object value (ignoring :default)" do
output_buffer.replace ''
@new_post.stub!(:created_at => Time.mktime(2012))
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Time.mktime(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Time.mktime(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='2012'][@selected]", :count => 1)
Expand All @@ -170,8 +172,10 @@
it "should select the :default if provided as a Date" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Date.new(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Date.new(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='1999'][@selected]", :count => 1)
Expand All @@ -180,8 +184,10 @@
it "should select the :default if provided as a Time" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Time.mktime(1999)))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => Time.mktime(1999)))
end
end
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@selected]", :count => 1)
output_buffer.should have_tag("form li ol li select#post_created_at_1i option[@value='1999'][@selected]", :count => 1)
Expand All @@ -190,8 +196,10 @@
it "should not select an option if the :default is provided as nil" do
output_buffer.replace ''
@new_post.stub!(:created_at => nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => nil))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :default => nil))
end
end
output_buffer.should_not have_tag("form li ol li select#post_created_at_1i option[@selected]")
end
Expand All @@ -210,7 +218,7 @@

it 'should warn about :selected deprecation' do
with_deprecation_silenced do
::ActiveSupport::Deprecation.should_receive(:warn)
::ActiveSupport::Deprecation.should_receive(:warn).any_number_of_times
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :date, :selected => Time.mktime(1999)))
end
Expand Down Expand Up @@ -248,7 +256,7 @@

it 'should warn about :selected deprecation' do
with_deprecation_silenced do
::ActiveSupport::Deprecation.should_receive(:warn)
::ActiveSupport::Deprecation.should_receive(:warn).any_number_of_times
semantic_form_for(@new_post) do |builder|
concat(builder.input(:created_at, :as => :datetime, :selected => Time.mktime(1999)))
end
Expand Down
15 changes: 9 additions & 6 deletions spec/inputs/radio_input_spec.rb
Expand Up @@ -120,9 +120,11 @@
describe "no selected items" do
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :radio, :selected => nil))

with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :radio, :selected => nil))
end
end
end

Expand All @@ -134,9 +136,10 @@
describe "single selected item" do
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :radio, :selected => @fred.id))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :radio, :selected => @fred.id))
end
end
end

Expand Down
43 changes: 31 additions & 12 deletions spec/inputs/select_input_spec.rb
Expand Up @@ -354,7 +354,7 @@
end
end
end

describe 'when :selected is set' do
before do
@output_buffer = ''
Expand All @@ -363,11 +363,13 @@
describe "no selected items" do
before do
@new_post.stub!(:author_id).and_return(nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:author, :as => :select, :selected => nil))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:author, :as => :select, :selected => nil))
end
end
end

it 'should not have any selected item(s)' do
output_buffer.should_not have_tag("form li select option[@selected='selected']")
end
Expand All @@ -376,8 +378,10 @@
describe "single selected item" do
before do
@new_post.stub!(:author_id).and_return(nil)
semantic_form_for(@new_post) do |builder|
concat(builder.input(:author, :as => :select, :selected => @bob.id))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:author, :as => :select, :selected => @bob.id))
end
end
end

Expand All @@ -394,8 +398,10 @@
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :select, :selected => [@bob.id, @fred.id], :multiple => false))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :select, :selected => [@bob.id, @fred.id], :multiple => false))
end
end
end

Expand All @@ -410,8 +416,10 @@
before do
@new_post.stub!(:author_ids).and_return(nil)

semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :select, :selected => [@bob.id, @fred.id]))
with_deprecation_silenced do
semantic_form_for(@new_post) do |builder|
concat(builder.input(:authors, :as => :select, :selected => [@bob.id, @fred.id]))
end
end
end

Expand All @@ -427,7 +435,7 @@
end

end

describe "enum" do
before do
@output_buffer = ''
Expand Down Expand Up @@ -466,5 +474,16 @@
end
end
end


it 'should warn about :selected deprecation' do
with_deprecation_silenced do
::ActiveSupport::Deprecation.should_receive(:warn).any_number_of_times
semantic_form_for(@new_post) do |builder|
concat(builder.input(:author_id, :as => :select, :selected => @bob.id))
end
end
end



end

0 comments on commit f4f6d33

Please sign in to comment.