Sha256: afe17b27ef83cbf213b7e35afd03f7bad2b68bf9f758520e1ba932705aecbca2

Contents?: true

Size: 933 Bytes

Versions: 3

Compression:

Stored size: 933 Bytes

Contents

module FlexibleAccessibility
  class Permission
    attr_reader :resource
    attr_reader :actions

    def initialize(args={})
      @resource = args[:resource]
      @actions = args[:actions]
    end

    def controller
    	ApplicationResource.new(self.resource).controller
    end

    def namespace
    	ApplicationResource.new(self.resource).namespace
    end

		# TODO: this function may be recursive because nesting may be existed
    class << self
  	  def all
  			permissions = []
  			Utils.new.app_controllers.each do |scope|
  				namespace = scope.first.to_s
  			  scope.last.each do |resource|
  			  	resource = "#{namespace}/#{resource}" unless namespace == 'default'
  			  	permissions << Permission.new(:resource => resource.gsub(/_controller/, ''), :actions => ApplicationResource.new(resource).klass.instance_variable_get(:@_verifiable_routes))
  			  end
  			end
  			permissions
    	end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
flexible_accessibility-0.3.7 lib/flexible_accessibility/permission.rb
flexible_accessibility-0.3.4 lib/flexible_accessibility/permission.rb
flexible_accessibility-0.3.3 lib/flexible_accessibility/permission.rb