mailmanager 1.0.10 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/.rspec +1 -0
- data/.rvmrc +31 -0
- data/Changelog +6 -1
- data/Gemfile +3 -0
- data/Gemfile.lock +45 -0
- data/Rakefile +31 -0
- data/lib/mailmanager/lib.rb +20 -3
- data/lib/mailmanager/list.rb +14 -3
- data/lib/mailmanager/version.rb +1 -1
- data/mailmanager.gemspec +29 -0
- data/spec/lib/mailmanager/lib_spec.rb +94 -28
- metadata +67 -14
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.rvmrc
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
ruby_string="ruby-1.9.2-p136"
|
4
|
+
gemset_name="mailmanager"
|
5
|
+
|
6
|
+
if rvm list strings | grep -q "${ruby_string}" ; then
|
7
|
+
|
8
|
+
# Load or create the specified environment
|
9
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
10
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}" ]] ; then
|
11
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}"
|
12
|
+
else
|
13
|
+
rvm --create "${ruby_string}@${gemset_name}"
|
14
|
+
fi
|
15
|
+
|
16
|
+
# Ensure that Bundler is installed; install it if not
|
17
|
+
if ! command -v bundle ; then
|
18
|
+
echo "Installing bundler... "
|
19
|
+
gem install bundler
|
20
|
+
fi
|
21
|
+
|
22
|
+
# Run bundler but reduce excess noise
|
23
|
+
echo "Checking your bundle... "
|
24
|
+
bundle | grep -v 'Using' | grep -v 'complete' | sed '/^$/d'
|
25
|
+
|
26
|
+
else
|
27
|
+
|
28
|
+
# Notify user to install the requested interpreter before proceeding
|
29
|
+
echo "${ruby_string} was not found, please run 'rvm install ${ruby_string}' and then cd back into this directory."
|
30
|
+
|
31
|
+
fi
|
data/Changelog
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
Current version is 1.0.
|
1
|
+
Current version is 1.0.11
|
2
|
+
|
3
|
+
changes since 1.0.8
|
4
|
+
- added more list metadata methods (see API docs)
|
5
|
+
- cleaned up test suite & added more tests
|
6
|
+
- cleaned up bundler and gemspec dependencies
|
2
7
|
|
3
8
|
changes since 1.0.7
|
4
9
|
- added documentation
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
mailmanager (1.0.11)
|
5
|
+
json (~> 1.4.6)
|
6
|
+
open4 (~> 1.0.1)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
ZenTest (4.4.2)
|
12
|
+
archive-tar-minitar (0.5.2)
|
13
|
+
columnize (0.3.2)
|
14
|
+
diff-lcs (1.1.2)
|
15
|
+
json (1.4.6)
|
16
|
+
linecache19 (0.5.11)
|
17
|
+
ruby_core_source (>= 0.1.4)
|
18
|
+
open4 (1.0.1)
|
19
|
+
rspec (2.4.0)
|
20
|
+
rspec-core (~> 2.4.0)
|
21
|
+
rspec-expectations (~> 2.4.0)
|
22
|
+
rspec-mocks (~> 2.4.0)
|
23
|
+
rspec-core (2.4.0)
|
24
|
+
rspec-expectations (2.4.0)
|
25
|
+
diff-lcs (~> 1.1.2)
|
26
|
+
rspec-mocks (2.4.0)
|
27
|
+
ruby-debug-base19 (0.11.24)
|
28
|
+
columnize (>= 0.3.1)
|
29
|
+
linecache19 (>= 0.5.11)
|
30
|
+
ruby_core_source (>= 0.1.4)
|
31
|
+
ruby-debug19 (0.11.6)
|
32
|
+
columnize (>= 0.3.1)
|
33
|
+
linecache19 (>= 0.5.11)
|
34
|
+
ruby-debug-base19 (>= 0.11.19)
|
35
|
+
ruby_core_source (0.1.4)
|
36
|
+
archive-tar-minitar (>= 0.5.2)
|
37
|
+
|
38
|
+
PLATFORMS
|
39
|
+
ruby
|
40
|
+
|
41
|
+
DEPENDENCIES
|
42
|
+
ZenTest (~> 4.4.2)
|
43
|
+
mailmanager!
|
44
|
+
rspec (~> 2.4.0)
|
45
|
+
ruby-debug19
|
data/Rakefile
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
2
|
+
require 'mailmanager/version'
|
3
|
+
require 'rake'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
|
6
|
+
desc "Build gem locally"
|
7
|
+
task :build do
|
8
|
+
system "gem build mailmanager.gemspec"
|
9
|
+
FileUtils.mkdir_p "pkg"
|
10
|
+
FileUtils.mv "mailmanager-#{MailManager::VERSION}.gem", "pkg"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Install gem locally"
|
14
|
+
task :install => :build do
|
15
|
+
system "gem install pkg/mailmanager-#{MailManager::VERSION}.gem"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Push gem to gems.dnc.org"
|
19
|
+
task :inabox => :build do
|
20
|
+
system "gem inabox pkg/mailmanager-#{MailManager::VERSION}.gem"
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Push gem to rubygems.org"
|
24
|
+
task :release => :build do
|
25
|
+
system "gem push pkg/mailmanager-#{MailManager::VERSION}.gem"
|
26
|
+
end
|
27
|
+
|
28
|
+
Rake::RDocTask.new do |rd|
|
29
|
+
rd.main = "lib/mailmanager.rb"
|
30
|
+
rd.rdoc_files.include("lib/**/*.rb")
|
31
|
+
end
|
data/lib/mailmanager/lib.rb
CHANGED
@@ -83,7 +83,9 @@ module MailManager
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def delete_moderator(list, email)
|
86
|
-
|
86
|
+
unless moderators(list)['return'].include?(email)
|
87
|
+
return {'result' => 'not_a_moderator'}
|
88
|
+
end
|
87
89
|
cmd = :withlist
|
88
90
|
out = command(cmd, :name => list.name, :wlcmd => 'moderator.remove',
|
89
91
|
:arg => email)
|
@@ -103,6 +105,18 @@ module MailManager
|
|
103
105
|
parse_json_output(out)
|
104
106
|
end
|
105
107
|
|
108
|
+
def request_email(list)
|
109
|
+
cmd = :withlist
|
110
|
+
out = command(cmd, :name => list.name, :wlcmd => :GetRequestEmail)
|
111
|
+
parse_json_output(out)
|
112
|
+
end
|
113
|
+
|
114
|
+
def description(list)
|
115
|
+
cmd = :withlist
|
116
|
+
out = command(cmd, :name => list.name, :wlcmd => :description)
|
117
|
+
parse_json_output(out)
|
118
|
+
end
|
119
|
+
|
106
120
|
def command(cmd, opts = {})
|
107
121
|
mailman_cmd = "#{mailmanager.root}/bin/#{cmd.to_s} "
|
108
122
|
# delete opts as we handle them explicitly
|
@@ -157,12 +171,15 @@ module MailManager
|
|
157
171
|
[output, process]
|
158
172
|
end
|
159
173
|
|
160
|
-
def escape(s)
|
161
|
-
# no idea what this does, stole it from the ruby-git gem
|
174
|
+
def self.escape(s)
|
162
175
|
escaped = s.to_s.gsub('\'', '\'\\\'\'')
|
163
176
|
%Q{"#{escaped}"}
|
164
177
|
end
|
165
178
|
|
179
|
+
def escape(s)
|
180
|
+
self.class.escape(s)
|
181
|
+
end
|
182
|
+
|
166
183
|
def parse_output(mailman_cmd, output)
|
167
184
|
case mailman_cmd
|
168
185
|
when :newlist
|
data/lib/mailmanager/list.rb
CHANGED
@@ -84,14 +84,15 @@ module MailManager
|
|
84
84
|
result['return']
|
85
85
|
end
|
86
86
|
|
87
|
-
# Adds a new moderator to the list
|
87
|
+
# Adds a new moderator to the list. Returns :already_a_moderator if the
|
88
|
+
# requested new moderator is already a moderator.
|
88
89
|
def add_moderator(email)
|
89
90
|
result = lib.add_moderator(self, email)
|
90
91
|
result['result'].to_sym
|
91
92
|
end
|
92
93
|
|
93
|
-
# Deletes a moderator from the list.
|
94
|
-
#
|
94
|
+
# Deletes a moderator from the list. Returns :not_a_moderator if the
|
95
|
+
# requested deletion isn't a moderator.
|
95
96
|
def delete_moderator(email)
|
96
97
|
result = lib.delete_moderator(self, email)
|
97
98
|
result['result'].to_sym
|
@@ -117,6 +118,16 @@ EOF
|
|
117
118
|
"#{root}listinfo/#{name}"
|
118
119
|
end
|
119
120
|
|
121
|
+
def request_email
|
122
|
+
result = lib.request_email(self)
|
123
|
+
result['return']
|
124
|
+
end
|
125
|
+
|
126
|
+
def description
|
127
|
+
result = lib.description(self)
|
128
|
+
result['return']
|
129
|
+
end
|
130
|
+
|
120
131
|
private
|
121
132
|
|
122
133
|
def add_member_using(method, email, name)
|
data/lib/mailmanager/version.rb
CHANGED
data/mailmanager.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$:.unshift lib unless $:.include?(lib)
|
4
|
+
|
5
|
+
require 'mailmanager/version'
|
6
|
+
|
7
|
+
spec = Gem::Specification.new do |s|
|
8
|
+
s.name = 'mailmanager'
|
9
|
+
s.version = MailManager::VERSION
|
10
|
+
s.date = Time.now.utc.strftime("%Y-%m-%d")
|
11
|
+
s.summary = "GNU Mailman wrapper for Ruby"
|
12
|
+
s.description = %{Ruby wrapper library for GNU Mailman's admin functions}
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files spec`.split("\n")
|
15
|
+
s.require_paths = ['lib']
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
21
|
+
s.authors = ["Wes Morgan"]
|
22
|
+
s.email = "MorganW@dnc.org"
|
23
|
+
s.homepage = "http://github.com/dnclabs/mailmanager"
|
24
|
+
s.add_runtime_dependency('json', '~>1.4.6')
|
25
|
+
s.add_runtime_dependency('open4', '~>1.0.1')
|
26
|
+
s.add_development_dependency('rspec', '~>2.4.0')
|
27
|
+
s.add_development_dependency('ZenTest', '~>4.4.2')
|
28
|
+
s.add_development_dependency('ruby-debug19')
|
29
|
+
end
|
@@ -92,69 +92,135 @@ EOF
|
|
92
92
|
let(:digest_members) { ['them@that.net'] }
|
93
93
|
|
94
94
|
let(:cmd) { "PYTHONPATH=#{File.expand_path('lib/mailmanager')} " +
|
95
|
+
"/usr/bin/env python " +
|
95
96
|
"#{fake_root}/bin/withlist -q -r listproxy.command \"foo\" " }
|
96
97
|
|
97
98
|
describe "#regular_members" do
|
98
99
|
it "should ask Mailman for the regular list members" do
|
99
|
-
|
100
|
-
with(cmd+"getRegularMemberKeys 2>&1", nil).
|
101
|
-
and_return([JSON.generate(regular_members),process])
|
102
|
-
subject.regular_members(list).should == regular_members
|
100
|
+
test_lib_method(:regular_members, :getRegularMemberKeys, regular_members)
|
103
101
|
end
|
104
102
|
end
|
105
103
|
|
106
104
|
describe "#digest_members" do
|
107
105
|
it "should ask Mailman for the digest list members" do
|
108
|
-
|
109
|
-
with(cmd+"getDigestMemberKeys 2>&1", nil).
|
110
|
-
and_return([JSON.generate(digest_members),process])
|
111
|
-
subject.digest_members(list).should == digest_members
|
106
|
+
test_lib_method(:digest_members, :getDigestMemberKeys, digest_members)
|
112
107
|
end
|
113
108
|
end
|
114
109
|
|
115
110
|
describe "#add_member" do
|
116
111
|
it "should ask Mailman to add the member to the list" do
|
117
112
|
new_member = 'newb@dnc.org'
|
118
|
-
|
119
|
-
subject.should_receive(:run_command).
|
120
|
-
with(cmd+"AddMember \"#{new_member}\" 2>&1", nil).
|
121
|
-
and_return([JSON.generate(result),process])
|
122
|
-
subject.add_member(list, new_member).should == result
|
113
|
+
test_lib_setter(:add_member, new_member)
|
123
114
|
end
|
124
115
|
end
|
125
116
|
|
126
117
|
describe "#approved_add_member" do
|
127
118
|
it "should ask Mailman to add the member to the list" do
|
128
119
|
new_member = 'newb@dnc.org'
|
129
|
-
|
130
|
-
subject.should_receive(:run_command).
|
131
|
-
with(cmd+"ApprovedAddMember \"#{new_member}\" 2>&1", nil).
|
132
|
-
and_return([JSON.generate(result),process])
|
133
|
-
subject.approved_add_member(list, new_member).should == result
|
120
|
+
test_lib_setter(:approved_add_member, new_member)
|
134
121
|
end
|
135
122
|
end
|
136
123
|
|
137
124
|
describe "#delete_member" do
|
138
125
|
it "should ask Mailman to delete the member from the list" do
|
139
126
|
former_member = 'oldie@ofa.org'
|
140
|
-
|
141
|
-
subject.should_receive(:run_command).
|
142
|
-
with(cmd+"DeleteMember \"#{former_member}\" 2>&1", nil).
|
143
|
-
and_return([JSON.generate(result),process])
|
144
|
-
subject.delete_member(list, former_member).should == result
|
127
|
+
test_lib_setter(:delete_member, former_member)
|
145
128
|
end
|
146
129
|
end
|
147
130
|
|
148
131
|
describe "#approved_delete_member" do
|
149
132
|
it "should ask Mailman to delete the member from the list" do
|
150
133
|
former_member = 'oldie@ofa.org'
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
134
|
+
test_lib_setter(:approved_delete_member, former_member)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "#moderators" do
|
139
|
+
it "should ask Mailman for the list's moderators" do
|
140
|
+
test_lib_method(:moderators, :moderator, ['phb@bigcorp.com', 'nhb@smallstartup.com'])
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
describe "#add_moderator" do
|
145
|
+
it "should ask Mailman to add the moderator to the list" do
|
146
|
+
subject.should_receive(:moderators).with(list).and_return({'result' => 'success', 'return' => []})
|
147
|
+
test_lib_method(:add_moderator, 'moderator.append', nil, 'foo@bar.com')
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should return 'already_a_moderator' if they already a moderator" do
|
151
|
+
result = {'result' => 'already_a_moderator'}
|
152
|
+
subject.should_receive(:moderators).with(list).and_return({'result' => 'success', 'return' => ['foo@bar.com']})
|
153
|
+
subject.add_moderator(list, 'foo@bar.com').should == result
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "#delete_moderator" do
|
158
|
+
it "should ask Mailman to delete the moderator from the list" do
|
159
|
+
subject.should_receive(:moderators).with(list).and_return({'result' => 'success', 'return' => ['foo@bar.com']})
|
160
|
+
test_lib_method(:delete_moderator, 'moderator.remove', nil, 'foo@bar.com')
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should return 'not_a_moderator' if they are not already a moderator" do
|
164
|
+
result = {'result' => 'not_a_moderator'}
|
165
|
+
subject.should_receive(:moderators).with(list).and_return({'result' => 'success', 'return' => ['other@bar.com']})
|
166
|
+
subject.delete_moderator(list, 'foo@bar.com').should == result
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe "#web_page_url" do
|
171
|
+
it "should ask Mailman for the list's web address" do
|
172
|
+
test_lib_attr(:web_page_url, "http://bar.com/mailman/listinfo/foo")
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
describe "#request_email" do
|
177
|
+
it "should ask Mailman for the request email address" do
|
178
|
+
test_lib_getter(:request_email, "foo-request@bar.com")
|
156
179
|
end
|
157
180
|
end
|
181
|
+
|
182
|
+
describe "#description" do
|
183
|
+
it "should ask Mailman for the list's description" do
|
184
|
+
test_lib_attr(:description, "this is a mailing list")
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
def test_lib_getter(lib_method, return_value, *args)
|
190
|
+
cc_mailman_method = camel_case("get_#{lib_method.to_s}")
|
191
|
+
test_lib_method(lib_method, cc_mailman_method, return_value, *args)
|
192
|
+
end
|
193
|
+
|
194
|
+
def test_lib_setter(lib_method, *args)
|
195
|
+
cc_mailman_method = camel_case(lib_method.to_s)
|
196
|
+
test_lib_method(lib_method, cc_mailman_method, nil, *args)
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_lib_attr(lib_attr, return_value)
|
200
|
+
test_lib_method(lib_attr, lib_attr, return_value)
|
201
|
+
end
|
202
|
+
|
203
|
+
def test_lib_method(lib_method, mailman_method, return_value=nil, *args)
|
204
|
+
if return_value.is_a?(Hash)
|
205
|
+
result = return_value
|
206
|
+
else
|
207
|
+
result = {"result" => "success"}
|
208
|
+
result["return"] = return_value unless return_value.nil?
|
209
|
+
end
|
210
|
+
subject.should_receive(:run_command).
|
211
|
+
with(cmd+"#{mailman_method.to_s} #{cmd_args(*args)}2>&1", nil).
|
212
|
+
and_return([JSON.generate(result),process])
|
213
|
+
subject.send(lib_method, list, *args).should == result
|
158
214
|
end
|
159
215
|
|
216
|
+
def camel_case(s)
|
217
|
+
s.gsub(/^[a-z]|[\s_]+[a-z]/) { |a| a.upcase }.gsub(/[\s_]/, '')
|
218
|
+
end
|
219
|
+
|
220
|
+
def cmd_args(*args)
|
221
|
+
arg_str = args.map { |a|
|
222
|
+
MailManager::Lib::escape(a)
|
223
|
+
}.join(' ')
|
224
|
+
arg_str += ' ' if arg_str.length > 0
|
225
|
+
end
|
160
226
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 11
|
9
|
+
version: 1.0.11
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Wes Morgan
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-25 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -47,34 +47,84 @@ dependencies:
|
|
47
47
|
version: 1.0.1
|
48
48
|
type: :runtime
|
49
49
|
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rspec
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 2
|
60
|
+
- 4
|
61
|
+
- 0
|
62
|
+
version: 2.4.0
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: ZenTest
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ~>
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 4
|
75
|
+
- 4
|
76
|
+
- 2
|
77
|
+
version: 4.4.2
|
78
|
+
type: :development
|
79
|
+
version_requirements: *id004
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: ruby-debug19
|
82
|
+
prerelease: false
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id005
|
50
93
|
description: Ruby wrapper library for GNU Mailman's admin functions
|
51
94
|
email: MorganW@dnc.org
|
52
95
|
executables: []
|
53
96
|
|
54
97
|
extensions: []
|
55
98
|
|
56
|
-
extra_rdoc_files:
|
57
|
-
|
99
|
+
extra_rdoc_files:
|
100
|
+
- README.rdoc
|
58
101
|
files:
|
102
|
+
- .gitignore
|
103
|
+
- .rspec
|
104
|
+
- .rvmrc
|
105
|
+
- Changelog
|
106
|
+
- Gemfile
|
107
|
+
- Gemfile.lock
|
108
|
+
- LICENSE
|
109
|
+
- README.rdoc
|
110
|
+
- Rakefile
|
111
|
+
- lib/mailmanager.rb
|
59
112
|
- lib/mailmanager/lib.rb
|
60
113
|
- lib/mailmanager/list.rb
|
61
|
-
- lib/mailmanager/version.rb
|
62
|
-
- lib/mailmanager.rb
|
63
114
|
- lib/mailmanager/listproxy.py
|
115
|
+
- lib/mailmanager/version.rb
|
116
|
+
- mailmanager.gemspec
|
64
117
|
- spec/lib/mailmanager/lib_spec.rb
|
65
118
|
- spec/lib/mailmanager/list_spec.rb
|
66
119
|
- spec/lib/mailmanager_spec.rb
|
67
120
|
- spec/spec_helper.rb
|
68
|
-
- Changelog
|
69
|
-
- LICENSE
|
70
|
-
- README.rdoc
|
71
121
|
has_rdoc: true
|
72
122
|
homepage: http://github.com/dnclabs/mailmanager
|
73
123
|
licenses: []
|
74
124
|
|
75
125
|
post_install_message:
|
76
|
-
rdoc_options:
|
77
|
-
|
126
|
+
rdoc_options:
|
127
|
+
- --charset=UTF-8
|
78
128
|
require_paths:
|
79
129
|
- lib
|
80
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -100,5 +150,8 @@ rubygems_version: 1.3.7
|
|
100
150
|
signing_key:
|
101
151
|
specification_version: 3
|
102
152
|
summary: GNU Mailman wrapper for Ruby
|
103
|
-
test_files:
|
104
|
-
|
153
|
+
test_files:
|
154
|
+
- spec/lib/mailmanager/lib_spec.rb
|
155
|
+
- spec/lib/mailmanager/list_spec.rb
|
156
|
+
- spec/lib/mailmanager_spec.rb
|
157
|
+
- spec/spec_helper.rb
|