Class: MailManager::Lib

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

Overview

:nodoc:all

Instance Method Summary collapse

Instance Method Details

#add_member(list, member) ⇒ Object



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

def add_member(list, member)
  withlist_command(:AddMember, list, member)
end

#add_moderator(list, email) ⇒ Object



102
103
104
105
106
107
# File 'lib/mailmanager/lib.rb', line 102

def add_moderator(list, email)
  if moderators(list)['return'].include?(email)
    raise ModeratorAlreadyExistsError, "#{email} is already a moderator of #{list.name}"
  end
  withlist_command('moderator.append', list, email)
end

#approved_add_member(list, member) ⇒ Object



86
87
88
# File 'lib/mailmanager/lib.rb', line 86

def approved_add_member(list, member)
  withlist_command(:ApprovedAddMember, list, member)
end

#approved_delete_member(list, email) ⇒ Object



94
95
96
# File 'lib/mailmanager/lib.rb', line 94

def approved_delete_member(list, email)
  withlist_command(:ApprovedDeleteMember, list, email)
end

#create_list(params) ⇒ Object

Raises:

  • (ArgumentError)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mailmanager/lib.rb', line 34

def create_list(params)
  raise ArgumentError, "Missing :name param" if params[:name].nil?
  list_name = params[:name]
  raise ListNameConflictError, "List \"#{list_name}\" already exists" if list_names.include?(list_name)
  cmd = :newlist
  # create the list
  out = command(cmd, params)
  # get the new list
  begin
    get_list(list_name)
  rescue ListNotFoundError
    raise MailmanExecuteError, "List creation failed: #{out}"
  end
end

#delete_list(params) ⇒ Object

Raises:



54
55
56
57
58
59
60
# File 'lib/mailmanager/lib.rb', line 54

def delete_list(params)
  params = {:name => params} unless params.respond_to?(:has_key?)
  raise ListNotFoundError, "#{params[:name]} does not exist" unless list_names.include?(params[:name])
  cmd = :rmlist
  out = command(cmd, params)
  parse_output(cmd, out)
end

#delete_member(list, email) ⇒ Object



90
91
92
# File 'lib/mailmanager/lib.rb', line 90

def delete_member(list, email)
  withlist_command(:DeleteMember, list, email)
end

#delete_moderator(list, email) ⇒ Object



109
110
111
112
113
114
# File 'lib/mailmanager/lib.rb', line 109

def delete_moderator(list, email)
  unless moderators(list)['return'].include?(email)
    raise ModeratorNotFoundError, "#{email} is not a moderator of #{list.name}"
  end
  withlist_command('moderator.remove', list, email)
end

#description(list) ⇒ Object



124
125
126
# File 'lib/mailmanager/lib.rb', line 124

def description(list)
  withlist_command(:description, list)
end

#digest_members(list) ⇒ Object



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

def digest_members(list)
  withlist_command(:getDigestMemberKeys, list)
end

#get_list(list_name) ⇒ Object

Raises:



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

def get_list(list_name)
  raise ListNotFoundError, "#{list_name} does not exist" unless list_names.include?(list_name)
  MailManager::List.new(list_name)
end

#host_name(list) ⇒ Object



140
141
142
# File 'lib/mailmanager/lib.rb', line 140

def host_name(list)
  withlist_command(:host_name, list)
end

#inject(list, message, queue = nil) ⇒ Object



62
63
64
65
66
67
68
# File 'lib/mailmanager/lib.rb', line 62

def inject(list, message, queue=nil)
  cmd = :inject
  params = {:listname => list.name, :stdin => message}
  params[:queue] = queue unless queue.nil?
  command(cmd, params)
  {'result' => 'success'}
end

#list_address(list) ⇒ Object



70
71
72
# File 'lib/mailmanager/lib.rb', line 70

def list_address(list)
  withlist_command(:getListAddress, list)
end

#list_namesObject



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

def list_names
  lists.map { |list| list.name }
end

#listsObject



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

def lists
  cmd = :list_lists
  out = command(cmd)
  parse_output(cmd, out)
end

#mailmanagerObject



20
21
22
# File 'lib/mailmanager/lib.rb', line 20

def mailmanager
  MailManager::Base.instance
end

#moderators(list) ⇒ Object



98
99
100
# File 'lib/mailmanager/lib.rb', line 98

def moderators(list)
  withlist_command(:moderator, list)
end

#regular_members(list) ⇒ Object



74
75
76
# File 'lib/mailmanager/lib.rb', line 74

def regular_members(list)
  withlist_command(:getRegularMemberKeys, list)
end

#request_email(list) ⇒ Object



120
121
122
# File 'lib/mailmanager/lib.rb', line 120

def request_email(list)
  withlist_command(:GetRequestEmail, list)
end

#set_description(list, desc) ⇒ Object



128
129
130
# File 'lib/mailmanager/lib.rb', line 128

def set_description(list, desc)
  withlist_command(:description, list, desc)
end

#set_host_name(list, host_name) ⇒ Object



144
145
146
# File 'lib/mailmanager/lib.rb', line 144

def set_host_name(list, host_name)
  withlist_command(:host_name, list, host_name)
end

#set_subject_prefix(list, sp) ⇒ Object



136
137
138
# File 'lib/mailmanager/lib.rb', line 136

def set_subject_prefix(list, sp)
  withlist_command(:subject_prefix, list, sp)
end

#subject_prefix(list) ⇒ Object



132
133
134
# File 'lib/mailmanager/lib.rb', line 132

def subject_prefix(list)
  withlist_command(:subject_prefix, list)
end

#web_page_url(list) ⇒ Object



116
117
118
# File 'lib/mailmanager/lib.rb', line 116

def web_page_url(list)
  withlist_command('web_page_url', list)
end