Class: Aker::Group

Inherits:
Tree::TreeNode
  • Object
show all
Defined in:
lib/aker/group.rb

Overview

The authority-independent representation of a group.

Groups can be related in a tree. If so, a membership in an ancestor group implies membership in all its descendents.

Instance Method Summary collapse

Constructor Details

#initialize(name, *args) ⇒ Group

Creates a new group with the given name. You can add children using <<.

Parameters:

  • name (#to_s)

    the desired name

  • args (Array, nil)

    additional arguments. Included for marshalling compatibility with the base class.



21
22
23
# File 'lib/aker/group.rb', line 21

def initialize(name, *args)
  super # overridden to attach docs
end

Instance Method Details

#include?(other) ⇒ Boolean

Determines whether this group or any of its children matches the given parameter for authorization purposes.

Parameters:

  • other (#to_s, Group)

    the thing to compare this group to

Returns:

  • (Boolean)

    true if the name of this group or any of its children is a case-insensitive match for the other.



33
34
35
36
37
38
39
40
# File 'lib/aker/group.rb', line 33

def include?(other)
  other_name =
    case other
    when Group; other.name;
    else other.to_s;
    end
  self.find { |g| g.name.downcase == other_name.downcase }
end