Class: MailManager::List
- Inherits:
-
Object
- Object
- MailManager::List
- 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
-
#name ⇒ Object
readonly
The name of the list.
Class Method Summary collapse
-
.create(params) ⇒ Object
:nodoc:.
-
.lib ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#add_member(email, name = '') ⇒ Object
Adds a new list member, subject to the list’s subscription rules.
-
#add_moderator(email) ⇒ Object
Adds a new moderator to the list.
-
#address ⇒ Object
Returns the list’s email address.
-
#approved_add_member(email, name = '') ⇒ Object
Adds a new list member, bypassing the list’s subscription rules.
-
#approved_delete_member(email, name = '') ⇒ Object
Deletes a list member, bypassing the list’s unsubscription rules.
-
#delete_member(email) ⇒ Object
Deletes a list member, subject to the list’s unsubscription rules.
-
#delete_moderator(email) ⇒ Object
Deletes a moderator from the list.
-
#digest_members ⇒ Object
Returns just the digest list members (no regular members) as an array.
-
#info_url ⇒ Object
Returns the info URL for the list.
-
#initialize(name) ⇒ List
constructor
This doesn’t do any checking to see whether or not the requested list exists or not.
-
#inject(from, subject, message) ⇒ Object
Injects a message into the list.
-
#lib ⇒ Object
:nodoc:.
-
#members ⇒ Object
Returns all list members (regular & digest) as an array.
-
#moderators ⇒ Object
Returns the list of moderators as an array of email addresses.
-
#regular_members ⇒ Object
Returns just the regular list members (no digest members) as an array.
-
#to_s ⇒ Object
:nodoc:.
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
#name ⇒ Object (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 |
.lib ⇒ Object
: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 |
#address ⇒ Object
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_members ⇒ Object
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_url ⇒ Object
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, ) =<<EOF From: #{from} To: #{address} Subject: #{subject} #{} EOF lib.inject(self, ) end |
#lib ⇒ Object
:nodoc:
26 27 28 |
# File 'lib/mailmanager/list.rb', line 26 def lib #:nodoc: self.class.lib end |
#members ⇒ Object
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 |
#moderators ⇒ Object
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_members ⇒ Object
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_s ⇒ Object
:nodoc:
22 23 24 |
# File 'lib/mailmanager/list.rb', line 22 def to_s #:nodoc: @name end |