def set_descendant_roles(descendant_role, ancestor_role = nil)
      role = ancestor_role || descendant_role
      return unless role[:is]

      role[:is].each do |role_name|
        (@roles[role_name][:descendants] ||= []) << descendant_role[:name]
        set_descendant_roles(descendant_role, @roles[role_name])
      end
    end
def set_descendant_roles(descendant_role, ancestor_role = nil)
      role = ancestor_role || descendant_role
      return unless role[:is]

      role[:is].each do |role_name|
        (@roles[role_name][:descendants] ||= []) << descendant_role[:name]
        set_descendant_roles(descendant_role, @roles[role_name])
      end
    end
Set the descendant_role as a descendant of the ancestor