Sha256: db0e77e16ca3c2115461ae05ab405f08cb9965b3703f1cbfa122f4b63096dd0d

Contents?: true

Size: 839 Bytes

Versions: 21

Compression:

Stored size: 839 Bytes

Contents

module CanTango
  class PermissionEngine < Engine
    class Permission
      # rules is a Hashie, a Hash where keys can also be accessed as method calls
      attr_accessor :name, :static_rules, :compiled_rules

      def initialize name
        @name = name
        @static_rules = Hashie::Mash.new
        @compiled_rules = Hashie::Mash.new
      end

      def key
        name.to_s
      end

      def to_hash
        {key => static_rules.to_hash}
      end

      def to_compiled_hash
        {key => compiled_rules}
      end

      def compiled_rules
        compile_rules!
        @compiled_rules
      end

      def compile_rules!
        compiler.compile! self
        @compiled_rules = compiler.to_hashie
      end

      def compiler
        @compiler ||= CanTango::PermissionEngine::Compiler.new
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
cantango-0.9.4.7 lib/cantango/permission_engine/permission.rb
cantango-0.9.4.6 lib/cantango/permission_engine/permission.rb
cantango-0.9.4.5 lib/cantango/permission_engine/permission.rb
cantango-0.9.4.3 lib/cantango/permission_engine/permission.rb
cantango-0.9.4.2 lib/cantango/permission_engine/permission.rb
cantango-0.9.4.1 lib/cantango/permission_engine/permission.rb
cantango-0.9.4 lib/cantango/permission_engine/permission.rb
cantango-0.9.3.2 lib/cantango/permission_engine/permission.rb
cantango-0.8.9.5 lib/cantango/permission_engine/permission.rb
cantango-0.8.9.4 lib/cantango/permission_engine/permission.rb
cantango-0.8.9.3 lib/cantango/permission_engine/permission.rb
cantango-0.8.9.2 lib/cantango/permission_engine/permission.rb
cantango-0.8.9.1 lib/cantango/permission_engine/permission.rb
cantango-0.8.9 lib/cantango/permission_engine/permission.rb
cantango-0.8.8.1 lib/cantango/permission_engine/permission.rb
cantango-0.8.8 lib/cantango/permission_engine/permission.rb
cantango-0.8.7 lib/cantango/permission_engine/permission.rb
cantango-0.8.6.2 lib/cantango/permission_engine/permission.rb
cantango-0.8.6.1 lib/cantango/permission_engine/permission.rb
cantango-0.8.6 lib/cantango/permission_engine/permission.rb