Sha256: d7bad718c3a76aa11a0cf464b74663a743437ea754e853e5c583fc4093e32abe
Contents?: true
Size: 875 Bytes
Versions: 3
Compression:
Stored size: 875 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.to_symbols!.flatten! super retrieve_roles(rolez) save! 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.8 | lib/simple_roles/many/persistence.rb |
simple_roles-0.0.7 | lib/simple_roles/many/persistence.rb |
simple_roles-0.0.6 | lib/simple_roles/many/persistence.rb |