
Untitled
By: a guest on
Aug 1st, 2012 | syntax:
None | size: 0.79 KB | hits: 10 | expires: Never
# TODO: this will fail when run on a project that uses namespaced models
desc "Show visibility of attributes"
task :attr => :environment do
require 'set'
models = Dir['**/models/**/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize }
models.each do |m|
all = Set.new m.attribute_names
accessible = Set.new m.accessible_attributes.to_a
protected_ = Set.new m.protected_attributes.to_a
if accessible.empty?
is_accessible = (all - protected_).to_a
else
is_accessible = (accessible - protected_).to_a
end
non_accessible = ((all - is_accessible) + protected_).to_a
is_accessible = "None" if is_accessible.empty?
print m.name, "\n"
print " Accessible: ", is_accessible, "\n"
print " Nonaccessible: " , non_accessible , "\n\n"
end
end