Class: MailManager::List

Inherits:
Object
  • Object
show all
Defined in:
lib/mailmanager/list.rb

Overview

The List class represents mailing lists in Mailman. Typically you get them by doing one of these things: mm = MailManager.init(‘/mailman/root’) mylist = mm.get_list(‘list_name’) OR mylist = mm.create_list(:name => ‘list_name’, :admin_email => ‘[email protected]’, :admin_password => ‘supersecret’)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ List

This doesn’t do any checking to see whether or not the requested list exists or not. Better to use MailManager::Base#get_list instead.



18
19
20
# File 'lib/mailmanager/list.rb', line 18

def initialize(name)
  @name = name
end

Instance Attribute Details

#nameObject (readonly)

The name of the list



14
15
16
# File 'lib/mailmanager/list.rb', line 14

def name
  @name
end

Class Method Details

.create(params) ⇒ Object

:nodoc:



34
35
36
# File 'lib/mailmanager/list.rb', line 34

def self.create(params) #:nodoc:
  lib.create_list(params)
end

.libObject

:nodoc:



30
31
32
# File 'lib/mailmanager/list.rb', line 30

def self.lib #:nodoc:
  MailManager::Lib.new
end

Instance Method Details

#add_member(email, name = '') ⇒ Object

Adds a new list member, subject to the list’s subscription rules



62
63
64
# File 'lib/mailmanager/list.rb', line 62

def add_member(email, name='')
  add_member_using(:add_member, email, name)
end

#add_moderator(email) ⇒ Object

Adds a new moderator to the list



88
89
90
91
# File 'lib/mailmanager/list.rb', line 88

def add_moderator(email)
  result = lib.add_moderator(self, email)
  result['result'].to_sym
end

#addressObject

Returns the list’s email address



39
40
41
42
# File 'lib/mailmanager/list.rb', line 39

def address
  result = lib.list_address(self)
  result['return']
end

#approved_add_member(email, name = '') ⇒ Object

Adds a new list member, bypassing the list’s subscription rules



67
68
69
# File 'lib/mailmanager/list.rb', line 67

def approved_add_member(email, name='')
  add_member_using(:approved_add_member, email, name)
end

#approved_delete_member(email, name = '') ⇒ Object

Deletes a list member, bypassing the list’s unsubscription rules



77
78
79
# File 'lib/mailmanager/list.rb', line 77

def approved_delete_member(email, name='')
  delete_member_using(:approved_delete_member, email)
end

#delete_member(email) ⇒ Object

Deletes a list member, subject to the list’s unsubscription rules



72
73
74
# File 'lib/mailmanager/list.rb', line 72

def delete_member(email)
  delete_member_using(:delete_member, email)
end

#delete_moderator(email) ⇒ Object

Deletes a moderator from the list. Will raise an exception if the moderator doesn’t exist yet.



95
96
97
98
# File 'lib/mailmanager/list.rb', line 95

def delete_moderator(email)
  result = lib.delete_moderator(self, email)
  result['result'].to_sym
end

#digest_membersObject

Returns just the digest list members (no regular members) as an array



56
57
58
59
# File 'lib/mailmanager/list.rb', line 56

def digest_members
  result = lib.digest_members(self)
  result['return']
end

#info_urlObject

Returns the info URL for the list



113
114
115
116
117
118
# File 'lib/mailmanager/list.rb', line 113

def info_url
  result = lib.web_page_url(self)
  root = result['return']
  root += "/" unless root[-1,1] == '/'
  "#{root}listinfo/#{name}"
end

#inject(from, subject, message) ⇒ Object

Injects a message into the list.



101
102
103
104
105
106
107
108
109
110
# File 'lib/mailmanager/list.rb', line 101

def inject(from, subject, message)
  inject_message =<<EOF
From: #{from}
To: #{address}
Subject: #{subject}

#{message}
EOF
  lib.inject(self, inject_message)
end

#libObject

:nodoc:



26
27
28
# File 'lib/mailmanager/list.rb', line 26

def lib #:nodoc:
  self.class.lib
end

#membersObject

Returns all list members (regular & digest) as an array



45
46
47
# File 'lib/mailmanager/list.rb', line 45

def members
  regular_members + digest_members
end

#moderatorsObject

Returns the list of moderators as an array of email addresses



82
83
84
85
# File 'lib/mailmanager/list.rb', line 82

def moderators
  result = lib.moderators(self)
  result['return']
end

#regular_membersObject

Returns just the regular list members (no digest members) as an array



50
51
52
53
# File 'lib/mailmanager/list.rb', line 50

def regular_members
  result = lib.regular_members(self)
  result['return']
end

#to_sObject

:nodoc:



22
23
24
# File 'lib/mailmanager/list.rb', line 22

def to_s #:nodoc:
  @name
end