module ActsAsRole::Role::ClassMethods
Public Instance Methods
acts_as_role(column, options={})
click to toggle source
# File lib/acts_as_role.rb, line 14 def acts_as_role column, options={} options.symbolize_keys! define_method "setup_roles_for_#{column}" do self.setup_roles self.send(column), options, column end define_method "save_roles" do self.send("#{column}=",@rolez.join("_")) if @rolez end options[:values].each do |role| define_method "is_#{role}?" do @rolez && @rolez.include?(role.to_sym) end end define_method "add_#{column.to_s.pluralize}" do |*roles| roles.each {|x| @rolez << x if not @rolez.include?(x) } save_roles end define_method "remove_#{column.to_s.pluralize}" do |*roles| roles.each {|x| @rolez.delete(x) } save_roles end define_method "has_#{column.to_s.pluralize}?" do |*roles| @rolez && roles.flatten.map { |r| r.to_sym }.all? { |r| @rolez.include?(r) } end define_method "has_#{column.to_s.singularize}?" do |role| @rolez && @rolez.include?(role) end define_method "list_#{column.to_s.pluralize}" do @rolez end define_method "available_#{column.to_s.pluralize}" do "#{options[:values].to_a}" end after_initialize "setup_roles_for_#{column}".to_sym validates "#{column}".to_sym, :roles => { :roles => options[:values], :message => options[:message] } end