Sha256: f5b21461b6db2ea917cb190c6da9aa9746fe7001d21aec08d63ecc87fbd44c17

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

module SimpleRoles
  module One
    module RolesMethods
      include SimpleRoles::One::Persistence

      class << self
        def included base
          base.extend DynamicMethods
        end
      end

      def set_role r
        self.role= r
        save!
      end

      module DynamicMethods
        class << self
          def extended base
            base.register_dynamic_methods
          end
        end

        def register_dynamic_methods
          SimpleRoles.config.valid_roles.each do |r|
            scope :"#{r}s", where(:role => r.to_s)
            
            define_method :"#{r}?" do
              role == r
            end

            alias_method :"is_#{r}?", :"#{r}?"
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_roles-0.0.6 lib/simple_roles/one/roles_methods.rb