Class: Tilia::CardDav::AddressBookRoot

Inherits:
DavAcl::AbstractPrincipalCollection show all
Defined in:
lib/tilia/card_dav/address_book_root.rb

Overview

AddressBook rootnode

This object lists a collection of users, which can contain addressbooks.

Instance Attribute Summary

Attributes inherited from DavAcl::AbstractPrincipalCollection

#disable_listing

Instance Method Summary collapse

Methods inherited from DavAcl::AbstractPrincipalCollection

#child, #children, #find_by_uri, #search_principals

Methods included from DavAcl::IPrincipalCollection

#find_by_uri, #search_principals

Methods included from Dav::ICollection

#child, #child_exists, #children, #create_directory, #create_file

Methods included from Dav::INode

#delete, #last_modified, #name=

Methods inherited from Dav::Collection

#child, #child_exists, #create_directory, #create_file

Methods inherited from Dav::Node

#delete, #last_modified, #name=

Constructor Details

#initialize(principal_backend, carddav_backend, principal_prefix = 'principals') ⇒ AddressBookRoot

Constructor

This constructor needs both a principal and a carddav backend.

By default this class will show a list of addressbook collections for principals in the ‘principals’ collection. If your main principals are actually located in a different path, use the principal_prefix argument to override this.

Parameters:

  • DAVACL\PrincipalBackend\BackendInterface

    principal_backend

  • Backend\BackendInterface

    carddav_backend

  • string

    principal_prefix



33
34
35
36
# File 'lib/tilia/card_dav/address_book_root.rb', line 33

def initialize(principal_backend, carddav_backend, principal_prefix = 'principals')
  @carddav_backend = carddav_backend
  super(principal_backend, principal_prefix)
end

Instance Method Details

#child_for_principal(principal) ⇒ Object

This method returns a node for a principal.

The passed array contains principal information, and is guaranteed to at least contain a uri item. Other properties may or may not be supplied by the authentication backend.

Parameters:

  • array

    principal

Returns:

  • SabreDAVINode



53
54
55
# File 'lib/tilia/card_dav/address_book_root.rb', line 53

def child_for_principal(principal)
  AddressBookHome.new(@carddav_backend, principal['uri'])
end

#nameObject

Returns the name of the node

Returns:

  • string



41
42
43
# File 'lib/tilia/card_dav/address_book_root.rb', line 41

def name
  Plugin::ADDRESSBOOK_ROOT
end