Sha256: ebd24f416f6b66587d22f506841b91ea8b1d59d2400cc4420b3d285080763a33
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
module SimpleRoles module Configuration extend self attr_writer :strategy, :user_models def user_models @user_models ||= [] end def valid_roles *vr if vr.any? self.valid_roles = vr.flatten end @valid_roles ||= default_roles end def valid_roles= vr check_roles(vr) @valid_roles = vr distribute_methods end def default_roles [:user, :admin] end def strategy st = nil if st self.strategy = st end @strategy ||= default_strategy end def strategy= st check_strategy st @strategy = st end def available_strategies strategies.keys end def strategy_class _strategy = nil strategies[_strategy || strategy] end def strategies { :one => SimpleRoles::One, :many => SimpleRoles::Many } end private def distribute_methods user_models.each(&:register_dynamic_methods) end def check_strategy strategy raise "Wrong strategy!" unless available_strategies.include? strategy end def check_roles rolez = valid_roles raise "There should be an array of valid roles" unless rolez.kind_of?(Array) rolez.map do |rolle| begin Role.find_by_name! rolle.to_s rescue puts "SimpleRoles warning: Couldn't find Role for #{rolle}. Maybe you need to re-run migrations?" end end if strategy == :many end def default_strategy :one end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simple_roles-0.0.12 | lib/simple_roles/configuration.rb |