postfix_admin 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/postfix_admin/cli.rb +16 -12
- data/lib/postfix_admin/runner.rb +16 -6
- data/lib/postfix_admin/version.rb +1 -1
- data/postfix_admin.gemspec +1 -1
- data/spec/cli_spec.rb +15 -19
- data/spec/runner_spec.rb +48 -38
- data/spec/spec_helper.rb +16 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59fef8b37f476a21d64574f49a2175c75ea36e36
|
4
|
+
data.tar.gz: 402c21e2842ad6eab990ecfed2bd6ea98c3b4c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e2312e795f876059fe65f7907bc19a2d45c9619e713756a19a3a363cd827bc26c4d31f9207b0c66d8965e70686d718d34ae4a75f4f9bac2297c4ef0aeaa00f8
|
7
|
+
data.tar.gz: eee17cbc79654a56a6fefd9eea01daf7340a62108c60c2b11000527ed6b704608f5546e3bc1ecd53527e3823f095b13fa9b20e182253ae703b65ef83030ff4d1
|
data/lib/postfix_admin/cli.rb
CHANGED
@@ -63,6 +63,7 @@ module PostfixAdmin
|
|
63
63
|
puts "Mailboxes : %4d / %4s" % [domain.mailboxes.count, max_str(domain.maxmailboxes)]
|
64
64
|
puts "Aliases : %4d / %4s" % [domain.num_total_aliases, max_str(domain.maxaliases)]
|
65
65
|
puts "Max Quota : %4d MB" % domain.maxquota
|
66
|
+
puts "Active : %3s" % domain.active_str
|
66
67
|
else
|
67
68
|
puts "Domains : %4d" % Domain.all_without_special_domain.count
|
68
69
|
puts "Admins : %4d" % Admin.count
|
@@ -101,6 +102,8 @@ module PostfixAdmin
|
|
101
102
|
report("Admin") do
|
102
103
|
puts "Name : %s" % admin.username
|
103
104
|
puts "Password : %s" % admin.password
|
105
|
+
puts "Domains : %s" % (admin.super_admin? ? "ALL" : admin.domains.count)
|
106
|
+
puts "Role : %s" % (admin.super_admin? ? "Super admin" : "Admin")
|
104
107
|
puts "Active : %s" % admin.active_str
|
105
108
|
end
|
106
109
|
end
|
@@ -137,18 +140,6 @@ module PostfixAdmin
|
|
137
140
|
puts_registered(domain_name, "a domain")
|
138
141
|
end
|
139
142
|
|
140
|
-
def super_admin(user_name, disable)
|
141
|
-
admin_check(user_name)
|
142
|
-
|
143
|
-
if disable
|
144
|
-
Admin.find(user_name).super_admin = false
|
145
|
-
puts "Successfully disabled super admin flag of #{user_name}"
|
146
|
-
else
|
147
|
-
Admin.find(user_name).super_admin = true
|
148
|
-
puts "Successfully enabled super admin flag of #{user_name}"
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
143
|
def change_admin_password(user_name, password)
|
153
144
|
change_password(Admin, user_name, password)
|
154
145
|
end
|
@@ -157,12 +148,24 @@ module PostfixAdmin
|
|
157
148
|
change_password(Mailbox, user_name, password)
|
158
149
|
end
|
159
150
|
|
151
|
+
def edit_admin(admin_name, options)
|
152
|
+
admin_check(admin_name)
|
153
|
+
admin = Admin.find(admin_name)
|
154
|
+
admin.super_admin = options[:super] unless options[:super].nil?
|
155
|
+
admin.active = options[:active] unless options[:active].nil?
|
156
|
+
admin.save or raise "Could not save Admin"
|
157
|
+
|
158
|
+
puts "Successfully updated #{admin_name}"
|
159
|
+
show_admin_details(admin_name)
|
160
|
+
end
|
161
|
+
|
160
162
|
def edit_domain(domain_name, options)
|
161
163
|
domain_check(domain_name)
|
162
164
|
domain = Domain.find(domain_name)
|
163
165
|
domain.maxaliases = options[:aliases] if options[:aliases]
|
164
166
|
domain.maxmailboxes = options[:mailboxes] if options[:mailboxes]
|
165
167
|
domain.maxquota = options[:maxquota] if options[:maxquota]
|
168
|
+
domain.active = options[:active] unless options[:active].nil?
|
166
169
|
domain.save or raise "Could not save Domain"
|
167
170
|
|
168
171
|
puts "Successfully updated #{domain_name}"
|
@@ -277,6 +280,7 @@ module PostfixAdmin
|
|
277
280
|
mailbox = Mailbox.find(address)
|
278
281
|
mailbox.name = options[:name] if options[:name]
|
279
282
|
mailbox.quota = options[:quota] * KB_TO_MB if options[:quota]
|
283
|
+
mailbox.active = options[:active] unless options[:active].nil?
|
280
284
|
mailbox.save or raise "Could not save Mailbox"
|
281
285
|
|
282
286
|
puts "Successfully updated #{address}"
|
data/lib/postfix_admin/runner.rb
CHANGED
@@ -30,12 +30,6 @@ module PostfixAdmin
|
|
30
30
|
runner{ @cli.setup_domain(domain_name, password) }
|
31
31
|
end
|
32
32
|
|
33
|
-
desc "super_admin admin@example.com", "Enable super admin flag of an admin"
|
34
|
-
method_option :disable, :type => :boolean, :aliases => "-d", :desc => "Disable super admin flag"
|
35
|
-
def super_admin(user_name)
|
36
|
-
runner{ @cli.super_admin(user_name, options[:disable]) }
|
37
|
-
end
|
38
|
-
|
39
33
|
desc "admin_passwd admin@example.com new_password", "Change password of admin"
|
40
34
|
def admin_passwd(user_name, password)
|
41
35
|
runner{ @cli.change_admin_password(user_name, password) }
|
@@ -55,6 +49,7 @@ module PostfixAdmin
|
|
55
49
|
method_option :aliases, :type => :numeric, :aliases => "-a", :desc => "Edit aliases limitation"
|
56
50
|
method_option :mailboxes, :type => :numeric, :aliases => "-m", :desc => "Edit mailboxes limitation"
|
57
51
|
method_option :maxquota, :type => :numeric, :aliases => "-q", :desc => "Edit max quota limitation"
|
52
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
58
53
|
def edit_domain(domain_name)
|
59
54
|
runner do
|
60
55
|
if options.size == 0
|
@@ -103,6 +98,7 @@ module PostfixAdmin
|
|
103
98
|
desc "edit_account user@example.com", "Edit an account"
|
104
99
|
method_option :quota, :type => :numeric, :aliases => "-q", :desc => "quota limitation"
|
105
100
|
method_option :name, :type => :string, :aliases => "-n", :desc => "full name"
|
101
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
106
102
|
def edit_account(address)
|
107
103
|
runner do
|
108
104
|
if options.size == 0
|
@@ -119,6 +115,20 @@ module PostfixAdmin
|
|
119
115
|
end
|
120
116
|
end
|
121
117
|
|
118
|
+
desc "edit_admin admin@example.com", "Edit an admin user"
|
119
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
120
|
+
method_option :super, type: :boolean, desc: "Update super admin status"
|
121
|
+
def edit_admin(user_name)
|
122
|
+
runner do
|
123
|
+
if options.size == 0
|
124
|
+
warn "Use one or more options."
|
125
|
+
help('edit_admin')
|
126
|
+
else
|
127
|
+
@cli.edit_admin(user_name, options)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
122
132
|
desc "add_admin admin@example.com password", "Add an admin user"
|
123
133
|
method_option :super, :type => :boolean, :aliases => "-S", :desc => "register as a super admin"
|
124
134
|
method_option :scheme, :type => :string, :aliases => "-s", :desc => "password scheme"
|
data/postfix_admin.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../lib/postfix_admin/version', __FILE__)
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
|
-
gem.add_dependency 'thor'
|
4
|
+
gem.add_dependency 'thor', '~> 0.19.1'
|
5
5
|
gem.add_dependency 'data_mapper'
|
6
6
|
gem.add_dependency 'do_mysql', '>= 0.10.17'
|
7
7
|
gem.add_dependency 'dm-mysql-adapter'
|
data/spec/cli_spec.rb
CHANGED
@@ -103,22 +103,6 @@ describe PostfixAdmin::CLI do
|
|
103
103
|
lambda { @cli.show_alias('unknown.example.com') }.should raise_error Error
|
104
104
|
end
|
105
105
|
|
106
|
-
describe "#super_admin" do
|
107
|
-
it "enables super admin flag of an admin" do
|
108
|
-
lambda{ @cli.super_admin('admin@example.com', false) }.should_not raise_error
|
109
|
-
Admin.find('admin@example.com').super_admin?.should be true
|
110
|
-
end
|
111
|
-
|
112
|
-
it "disable super admin flag of an admin" do
|
113
|
-
lambda{ @cli.super_admin('all@example.com', true) }.should_not raise_error
|
114
|
-
Admin.find('all@example.com').super_admin?.should be false
|
115
|
-
end
|
116
|
-
|
117
|
-
it "can not user for unknown admin" do
|
118
|
-
lambda{ @cli.super_admin('unknown_admin@example.com', false) }.should raise_error Error
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
106
|
it "#change_admin_password" do
|
123
107
|
lambda { @cli.change_admin_password('admin@example.com', 'new_password') }.should_not raise_error
|
124
108
|
Admin.find('admin@example.com').password.should == CRAM_MD5_NEW_PASS
|
@@ -229,18 +213,21 @@ describe PostfixAdmin::CLI do
|
|
229
213
|
|
230
214
|
describe "#edit_domain" do
|
231
215
|
it "can update domain limitations" do
|
232
|
-
lambda{ @cli.edit_domain('example.com', {:
|
216
|
+
lambda{ @cli.edit_domain('example.com', {aliases: 40, mailboxes: 40, maxquota: 400, active: false}) }.should_not raise_error
|
233
217
|
domain = Domain.find('example.com')
|
234
218
|
domain.maxaliases.should == 40
|
235
219
|
domain.maxmailboxes.should == 40
|
236
220
|
domain.maxquota.should == 400
|
221
|
+
expect(domain.active).to be false
|
237
222
|
end
|
238
223
|
end
|
239
224
|
|
240
225
|
describe "#edit_account" do
|
241
226
|
it "can update account" do
|
242
|
-
lambda { @cli.edit_account('user@example.com', {:
|
243
|
-
Mailbox.find('user@example.com')
|
227
|
+
lambda { @cli.edit_account('user@example.com', {quota: 50, active: false}) }.should_not raise_error
|
228
|
+
mailbox = Mailbox.find('user@example.com')
|
229
|
+
mailbox.quota.should == 50 * KB_TO_MB
|
230
|
+
expect(mailbox.active).to be false
|
244
231
|
end
|
245
232
|
|
246
233
|
it "raise error when unknown account" do
|
@@ -248,6 +235,15 @@ describe PostfixAdmin::CLI do
|
|
248
235
|
end
|
249
236
|
end
|
250
237
|
|
238
|
+
describe "#edit_admin" do
|
239
|
+
it "can update admin" do
|
240
|
+
expect { @cli.edit_admin('admin@example.com', {super: true, active: false}) }.not_to raise_error
|
241
|
+
admin = Admin.find('admin@example.com')
|
242
|
+
expect(admin.super_admin?).to be true
|
243
|
+
expect(admin.active).to be false
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
251
247
|
describe "#delete_domain" do
|
252
248
|
it "can delete exist domain" do
|
253
249
|
lambda { @cli.delete_domain('example.com') }.should_not raise_error
|
data/spec/runner_spec.rb
CHANGED
@@ -66,31 +66,17 @@ describe PostfixAdmin::Runner do
|
|
66
66
|
capture(:stdout){ Runner.start(['delete_domain', 'example.net']) }.should =~ EX_DELETED
|
67
67
|
end
|
68
68
|
|
69
|
-
describe "super_admin" do
|
70
|
-
it "can enable super admin flag of an admin" do
|
71
|
-
capture(:stdout){ Runner.start(['super', 'admin@example.com']) }.should =~ /Successfully enabled/
|
72
|
-
end
|
73
|
-
|
74
|
-
it "can disable super admin flag of an admin (--disable)" do
|
75
|
-
capture(:stdout){ Runner.start(['super', 'admin@example.com', '--disable']) }.should =~ /Successfully disabled/
|
76
|
-
end
|
77
|
-
|
78
|
-
it "can use -d option as --disable" do
|
79
|
-
capture(:stdout){ Runner.start(['super', 'admin@example.com', '-d']) }.should =~ /Successfully disabled/
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
69
|
describe "admin_passwd" do
|
84
70
|
it "can change password of an admin" do
|
85
71
|
capture(:stdout){ Runner.start(['admin_passwd', 'admin@example.com', 'new_password']) }.should =~ /successfully changed/
|
86
72
|
end
|
87
73
|
|
88
74
|
it "can not use too short password (< 5)" do
|
89
|
-
|
75
|
+
exit_capture{ Runner.start(['admin_passwd', 'admin@example.com', '124']) }.should =~ /too short/
|
90
76
|
end
|
91
77
|
|
92
78
|
it "can not use for unknown admin" do
|
93
|
-
|
79
|
+
exit_capture{ Runner.start(['admin_passwd', 'unknown@example.com', 'new_password']) }.should =~ /Could not find/
|
94
80
|
end
|
95
81
|
end
|
96
82
|
|
@@ -101,11 +87,11 @@ describe PostfixAdmin::Runner do
|
|
101
87
|
end
|
102
88
|
|
103
89
|
it "can not use too short password (< 5)" do
|
104
|
-
|
90
|
+
exit_capture{ Runner.start(['account_passwd', 'user@example.com', '1234']) }.should =~ /too short/
|
105
91
|
end
|
106
92
|
|
107
93
|
it "can not use for unknown account" do
|
108
|
-
|
94
|
+
exit_capture{ Runner.start(['account_passwd', 'unknown@example.com', 'new_password']) }.should =~ /Could not find/
|
109
95
|
end
|
110
96
|
end
|
111
97
|
|
@@ -116,11 +102,11 @@ describe PostfixAdmin::Runner do
|
|
116
102
|
end
|
117
103
|
|
118
104
|
it "can not delete mailbox alias." do
|
119
|
-
|
105
|
+
exit_capture{ Runner.start(['delete_alias', 'user@example.com']) }.should =~ /Can not delete mailbox/
|
120
106
|
end
|
121
107
|
|
122
108
|
it "can not add an alias for existed mailbox" do
|
123
|
-
|
109
|
+
exit_capture{ Runner.start(['add_alias', 'user@example.com', 'goto@example.jp']) }.should =~ /mailbox user@example.com is already registered!/
|
124
110
|
end
|
125
111
|
end
|
126
112
|
|
@@ -135,7 +121,7 @@ describe PostfixAdmin::Runner do
|
|
135
121
|
|
136
122
|
describe "scheme option" do
|
137
123
|
it "--scheme does not show error" do
|
138
|
-
|
124
|
+
exit_capture{ Runner.start(@args + ['--scheme', 'CRAM-MD5']) }.should == ""
|
139
125
|
Admin.find('admin@example.jp').password.should == CRAM_MD5_PASS
|
140
126
|
end
|
141
127
|
|
@@ -144,7 +130,7 @@ describe PostfixAdmin::Runner do
|
|
144
130
|
end
|
145
131
|
|
146
132
|
it "-s does not show error" do
|
147
|
-
|
133
|
+
exit_capture{ Runner.start(@args + ['-s', 'CRAM-MD5']) }.should == ""
|
148
134
|
end
|
149
135
|
|
150
136
|
it "-s can resister admin" do
|
@@ -152,7 +138,7 @@ describe PostfixAdmin::Runner do
|
|
152
138
|
end
|
153
139
|
|
154
140
|
it "-s require argument" do
|
155
|
-
|
141
|
+
exit_capture{ Runner.start(@args + ['-s']) }.should =~ /Specify password scheme/
|
156
142
|
end
|
157
143
|
end
|
158
144
|
|
@@ -169,13 +155,36 @@ describe PostfixAdmin::Runner do
|
|
169
155
|
end
|
170
156
|
end
|
171
157
|
|
158
|
+
describe "edit_admin" do
|
159
|
+
it "when no options, shows usage" do
|
160
|
+
expect(capture(:stderr){ Runner.start(['edit_admin', 'admin@example.com']) }).to match /Use one or more options/
|
161
|
+
end
|
162
|
+
|
163
|
+
it "can update active status" do
|
164
|
+
output = capture(:stdout){ Runner.start(['edit_admin', 'admin@example.com', '--no-active']) }
|
165
|
+
expect(output).to match EX_UPDATED
|
166
|
+
expect(output).to match /Active.+NO/
|
167
|
+
expect(output).to match /Role.+Admin/
|
168
|
+
end
|
169
|
+
|
170
|
+
it "can update super admin status" do
|
171
|
+
output = capture(:stdout){ Runner.start(['edit_admin', 'admin@example.com', '--super']) }
|
172
|
+
expect(output).to match EX_UPDATED
|
173
|
+
expect(output).to match /Domains.+ALL/
|
174
|
+
expect(output).to match /Active.+YES/
|
175
|
+
expect(output).to match /Role.+Super admin/
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
172
179
|
describe "edit_domain" do
|
173
180
|
it "when no options, shows usage" do
|
174
|
-
|
181
|
+
exit_capture{ Runner.start(['edit_domain', 'example.com']) }.should =~ /Use one or more options/
|
175
182
|
end
|
176
183
|
|
177
184
|
it "can edit limitations of domain" do
|
178
|
-
capture(:stdout){ Runner.start(['edit_domain', 'example.com', '--aliases', '40', '--mailboxes', '40', '--maxquota', '400']) }
|
185
|
+
output = capture(:stdout){ Runner.start(['edit_domain', 'example.com', '--aliases', '40', '--mailboxes', '40', '--maxquota', '400', '--no-active']) }
|
186
|
+
expect(output).to match EX_UPDATED
|
187
|
+
expect(output).to match /Active.+NO/
|
179
188
|
end
|
180
189
|
|
181
190
|
it "aliases options -a, -m, -q" do
|
@@ -183,7 +192,7 @@ describe PostfixAdmin::Runner do
|
|
183
192
|
end
|
184
193
|
|
185
194
|
it "can not use unknown domain" do
|
186
|
-
|
195
|
+
exit_capture{ Runner.start(['edit_domain', 'unknown.example.com', '--aliases', '40', '--mailboxes', '40', '--maxquota', '400'])}.should =~ /Could not find/
|
187
196
|
end
|
188
197
|
end
|
189
198
|
|
@@ -193,13 +202,14 @@ describe PostfixAdmin::Runner do
|
|
193
202
|
end
|
194
203
|
|
195
204
|
it "when no options, shows usage" do
|
196
|
-
|
205
|
+
exit_capture{ Runner.start(@args) }.should =~ /Use one or more options/
|
197
206
|
end
|
198
207
|
|
199
208
|
it "can edit quota limitation" do
|
200
|
-
output = capture(:stdout){ Runner.start(@args + ['--quota', '50'])}
|
201
|
-
output.
|
202
|
-
output.
|
209
|
+
output = capture(:stdout){ Runner.start(@args + ['--quota', '50', '--no-active'])}
|
210
|
+
expect(output).to match EX_UPDATED
|
211
|
+
expect(output).to match /Quota/
|
212
|
+
expect(output).to match /Active.+NO/
|
203
213
|
end
|
204
214
|
|
205
215
|
it "can use alias -q option" do
|
@@ -207,7 +217,7 @@ describe PostfixAdmin::Runner do
|
|
207
217
|
end
|
208
218
|
|
209
219
|
it "-q option require an argment" do
|
210
|
-
|
220
|
+
exit_capture{ Runner.start(@args + ['-q'])}.should_not == ""
|
211
221
|
end
|
212
222
|
|
213
223
|
it "can update name using --name option" do
|
@@ -226,7 +236,7 @@ describe PostfixAdmin::Runner do
|
|
226
236
|
end
|
227
237
|
|
228
238
|
it "-n option require an argument" do
|
229
|
-
|
239
|
+
exit_capture{ Runner.start(@args + ['-n'])}.should_not == ""
|
230
240
|
end
|
231
241
|
end
|
232
242
|
|
@@ -265,15 +275,15 @@ describe PostfixAdmin::Runner do
|
|
265
275
|
|
266
276
|
describe "name option" do
|
267
277
|
it "--name options does not raise error" do
|
268
|
-
|
278
|
+
exit_capture{ Runner.start(@args + ['--name', @name]) }.should == ""
|
269
279
|
end
|
270
280
|
|
271
281
|
it "-n options does not raise error" do
|
272
|
-
|
282
|
+
exit_capture{ Runner.start(@args + ['-n', @name]) }.should == ""
|
273
283
|
end
|
274
284
|
|
275
285
|
it "require an argument" do
|
276
|
-
|
286
|
+
exit_capture{ Runner.start(@args + ['-n']) }.should_not == ""
|
277
287
|
end
|
278
288
|
|
279
289
|
it "can change full name" do
|
@@ -282,14 +292,14 @@ describe PostfixAdmin::Runner do
|
|
282
292
|
end
|
283
293
|
|
284
294
|
it "can use Japanese" do
|
285
|
-
|
295
|
+
exit_capture{ Runner.start(@args + ['-n', '黒川 仁']) }.should == ""
|
286
296
|
Mailbox.find(@user).name.should == '黒川 仁'
|
287
297
|
end
|
288
298
|
end
|
289
299
|
|
290
300
|
describe "scheme" do
|
291
301
|
it "--scheme require argument" do
|
292
|
-
|
302
|
+
exit_capture{ Runner.start(@args + ['--scheme']) }.should =~ /Specify password scheme/
|
293
303
|
end
|
294
304
|
|
295
305
|
it "can use CRAM-MD5 using --scheme" do
|
@@ -323,7 +333,7 @@ describe PostfixAdmin::Runner do
|
|
323
333
|
|
324
334
|
describe "dump" do
|
325
335
|
it "does not raise error" do
|
326
|
-
|
336
|
+
exit_capture{ Runner.start(['dump']) }.should == ""
|
327
337
|
end
|
328
338
|
|
329
339
|
it "all data" do
|
data/spec/spec_helper.rb
CHANGED
@@ -164,8 +164,13 @@ RSpec.configure do |config|
|
|
164
164
|
begin
|
165
165
|
stream = stream.to_s
|
166
166
|
eval "$#{stream} = StringIO.new"
|
167
|
+
$stderr = StringIO.new if stream != "stderr"
|
167
168
|
yield
|
168
169
|
result = eval("$#{stream}").string
|
170
|
+
rescue SystemExit => e
|
171
|
+
message = $stderr.string
|
172
|
+
message += e.message
|
173
|
+
raise message
|
169
174
|
ensure
|
170
175
|
eval("$#{stream} = #{stream.upcase}")
|
171
176
|
end
|
@@ -173,6 +178,17 @@ RSpec.configure do |config|
|
|
173
178
|
result
|
174
179
|
end
|
175
180
|
|
181
|
+
def exit_capture
|
182
|
+
begin
|
183
|
+
$stderr = StringIO.new
|
184
|
+
yield
|
185
|
+
rescue SystemExit => e
|
186
|
+
ensure
|
187
|
+
result = $stderr.string
|
188
|
+
end
|
189
|
+
result
|
190
|
+
end
|
191
|
+
|
176
192
|
def source_root
|
177
193
|
File.join(File.dirname(__FILE__), 'fixtures')
|
178
194
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postfix_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hitoshi Kurokawa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.19.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.19.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: data_mapper
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,3 +174,4 @@ test_files:
|
|
174
174
|
- spec/runner_spec.rb
|
175
175
|
- spec/spec_helper.rb
|
176
176
|
- spec/tmp/.gitkeep
|
177
|
+
has_rdoc:
|