Don't use attr_accessible if StrongParameters is included in the application.

This commit is contained in:
Peter M. Goldstein 2013-09-22 10:54:25 -07:00
parent 6ff77290f2
commit 67acf817d2
2 changed files with 21 additions and 5 deletions

View File

@ -1,20 +1,24 @@
module Impressionist
# Responsability
# Responsibility
# Toggles between rails > 3.1 < 4
# In order to make attr_accessible available in a rails app < 4
class RailsToggle
# decides where or not to include attr_accessible
def should_include?
ask_rails || false
supported_by_rails? && (not using_strong_parameters?)
end
private
def using_strong_parameters?
defined?(StrongParameters)
end
# returns false if rails >= 4
# true if rails < 4
def ask_rails
::Rails::VERSION::MAJOR.to_i >= 4 ? false : true
def supported_by_rails?
::Rails::VERSION::MAJOR.to_i < 4
end
end

View File

@ -15,12 +15,24 @@ module Impressionist
# see your_minitest_path/lib/minitest/mock.rb
it "must not include attr_accessible" do
@toggle.stub :ask_rails, false do
@toggle.stub :supported_by_rails?, false do
refute @toggle.should_include?
end
end
end
describe "Strong Parameters" do
# see your_minitest_path/lib/minitest/mock.rb
it "must not include attr_accessible" do
@toggle.stub :supported_by_rails?, true do
@toggle.stub :using_strong_parameters?, true do
refute @toggle.should_include?
end
end
end
end
end
end