Sha256: 22cafc4dee3bb9dca631eec8c09e3aa1e02872b6b5ff89d1a2331d7711066450
Contents?: true
Size: 869 Bytes
Versions: 3
Compression:
Stored size: 869 Bytes
Contents
module SimpleRoles module Many module Persistence class << self def included base base.class_eval %{ has_many :user_roles has_many :roles, :through => :user_roles } end end def roles super.map(&:name).map(&:to_sym) end def roles= *rolez rolez = rolez.flatten.map(&:to_sym) super retrieve_roles(rolez) end private def retrieve_roles rolez raise "Not a valid role!" if (rolez - config.valid_roles).size > 0 rolez.map do |rolle| begin Role.find_by_name! rolle.to_s rescue raise "Couldn't find Role for #{rolle}. Maybe you need to re-run migrations?" end end end def config SimpleRoles::Configuration end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
simple_roles-0.0.12 | lib/simple_roles/many/persistence.rb |
simple_roles-0.0.11 | lib/simple_roles/many/persistence.rb |
simple_roles-0.0.10 | lib/simple_roles/many/persistence.rb |