bakker 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,466 @@
1
+ # Copyright 2009 Alexander E. Fischer <aef@raxys.net>
2
+ #
3
+ # This file is part of Bakker.
4
+ #
5
+ # Bakker is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>
17
+
18
+ require 'lib/bakker'
19
+
20
+ require 'tempfile'
21
+ require 'fileutils'
22
+
23
+ require 'rubygems'
24
+ require 'sys/uname'
25
+
26
+ # If there is a way to get the executable path of the currently running ruby
27
+ # interpreter, please tell me how.
28
+ warn 'Attention: If the ruby interpreter to be tested with is not ruby in the' +
29
+ 'default path, you have to change this manually in spec/bakker_spec.rb'
30
+ RUBY_PATH = 'ruby'
31
+
32
+ module BakkerSpecHelper
33
+ def temp_file(name)
34
+ temp_file_path = File.join(@folder_path, name)
35
+
36
+ FileUtils.touch(File.join(@folder_path, name))
37
+
38
+ temp_file_path
39
+ end
40
+
41
+ def windows?
42
+ Sys::Uname.sysname.downcase.include?('windows')
43
+ end
44
+ end
45
+
46
+ describe Bakker do
47
+ include BakkerSpecHelper
48
+
49
+ before(:each) do
50
+ temp_file = Tempfile.new('bakker_spec')
51
+ @folder_path = temp_file.path
52
+ temp_file.close
53
+ temp_file.unlink
54
+
55
+ FileUtils.mkdir(@folder_path)
56
+ end
57
+
58
+ after(:each) do
59
+ FileUtils.rm_rf(@folder_path)
60
+ end
61
+
62
+ describe 'library' do
63
+ it "should throw an exception when source file does not exist" do
64
+ source_path = temp_file('abc')
65
+ FileUtils.rm(source_path)
66
+
67
+ lambda {
68
+ Bakker.process(source_path)
69
+ }.should raise_error(BakkerWarning)
70
+ end
71
+
72
+ it "should throw an exception when source and target file do exist" do
73
+ source_path = temp_file('abc')
74
+ target_path = temp_file('abc.bak')
75
+
76
+ lambda {
77
+ Bakker.process(source_path)
78
+ }.should raise_error(BakkerWarning)
79
+ end
80
+
81
+ it "should extend a non-extended file correctly" do
82
+ source_path = temp_file('def')
83
+ target_path = File.join(@folder_path, 'def.bak')
84
+
85
+ lambda {
86
+ Bakker.process(source_path, '.bak', :toggle, :move)
87
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
88
+ change{ File.exist?(source_path) }.from(true).to(false)
89
+ end
90
+
91
+ it "should extend a non-extended file correctly even if only the target is given" do
92
+ source_path = temp_file('def')
93
+ target_path = File.join(@folder_path, 'def.bak')
94
+
95
+ lambda {
96
+ Bakker.process(target_path, '.bak', :toggle, :move)
97
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
98
+ change{ File.exist?(source_path) }.from(true).to(false)
99
+ end
100
+
101
+ it "should not extend a non-extended file if mode is remove" do
102
+ source_path = temp_file('abc')
103
+ target_path = File.join(@folder_path, 'abc.ext')
104
+
105
+ lambda {
106
+ Bakker.process(source_path, '.ext', :remove, :move)
107
+ }.should_not change{ File.exist?(target_path) == false } and
108
+ change{ File.exist?(source_path) == true }
109
+ end
110
+
111
+ it "should not extend a non-extended file if mode is remove even if only the target is given" do
112
+ source_path = temp_file('abc')
113
+ target_path = File.join(@folder_path, 'abc.ext')
114
+
115
+ lambda {
116
+ Bakker.process(target_path, '.ext', :remove, :move)
117
+ }.should_not change{ File.exist?(target_path) == false } and
118
+ change{ File.exist?(source_path) == true }
119
+ end
120
+
121
+ it "should extend a non-extended file if mode is add" do
122
+ source_path = temp_file('abc')
123
+ target_path = File.join(@folder_path, 'abc.ext')
124
+
125
+ lambda {
126
+ Bakker.process(source_path, '.ext', :add, :move)
127
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
128
+ change{ File.exist?(source_path) }.from(true).to(false)
129
+ end
130
+
131
+ it "should extend a non-extended file if mode is add even if only the target is given" do
132
+ source_path = temp_file('abc')
133
+ target_path = File.join(@folder_path, 'abc.ext')
134
+
135
+ lambda {
136
+ Bakker.process(source_path, '.ext', :add, :move)
137
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
138
+ change{ File.exist?(source_path) }.from(true).to(false)
139
+ end
140
+
141
+ it "should create an extended copy of a non-extended file if action is copy" do
142
+ source_path = temp_file('xyz')
143
+ target_path = File.join(@folder_path, 'xyz.tar.gz')
144
+
145
+ lambda {
146
+ Bakker.process(source_path, '.tar.gz', :toggle, :copy)
147
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
148
+ not change{ File.exists?(source_path) == true }
149
+ end
150
+
151
+ it "should create an extended copy of a non-extended file if action is copy even if only the target is given" do
152
+ source_path = temp_file('xyz')
153
+ target_path = File.join(@folder_path, 'xyz.tar.gz')
154
+
155
+ lambda {
156
+ Bakker.process(target_path, '.tar.gz', :toggle, :copy)
157
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
158
+ not change{ File.exists?(source_path) == true }
159
+ end
160
+
161
+ it "should unextend an extended file correctly" do
162
+ source_path = temp_file('xyz.zirbel')
163
+ target_path = File.join(@folder_path, 'xyz')
164
+
165
+ lambda {
166
+ Bakker.process(source_path, '.zirbel', :toggle, :move)
167
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
168
+ change{ File.exist?(source_path) }.from(true).to(false)
169
+ end
170
+
171
+ it "should unextend an extended file correctly even if only the target is given" do
172
+ source_path = temp_file('xyz.zirbel')
173
+ target_path = File.join(@folder_path, 'xyz')
174
+
175
+ lambda {
176
+ Bakker.process(target_path, '.zirbel', :toggle, :move)
177
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
178
+ change{ File.exist?(source_path) }.from(true).to(false)
179
+ end
180
+
181
+ it "should not unextend an extended file if mode is add" do
182
+ source_path = temp_file('1234.bak')
183
+ target_path = File.join(@folder_path, '1234')
184
+
185
+ lambda {
186
+ Bakker.process(source_path, '.bak', :add, :move)
187
+ }.should_not change{ File.exist?(target_path) == false } and
188
+ change{ File.exist?(source_path) == true }
189
+ end
190
+
191
+ it "should not unextend an extended file if mode is add even if only the target is given" do
192
+ source_path = temp_file('1234.bak')
193
+ target_path = File.join(@folder_path, '1234')
194
+
195
+ lambda {
196
+ Bakker.process(target_path, '.bak', :add, :move)
197
+ }.should_not change{ File.exist?(target_path) == false } and
198
+ change{ File.exist?(source_path) == true }
199
+ end
200
+
201
+ it "should unextend an extended file if mode is remove" do
202
+ source_path = temp_file('testfile.1234')
203
+ target_path = File.join(@folder_path, 'testfile')
204
+
205
+ lambda {
206
+ Bakker.process(source_path, '.1234', :remove, :move)
207
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
208
+ change{ File.exist?(source_path) }.from(true).to(false)
209
+ end
210
+
211
+ it "should unextend an extended file if mode is remove even if only the target is given" do
212
+ source_path = temp_file('testfile.1234')
213
+ target_path = File.join(@folder_path, 'testfile')
214
+
215
+ lambda {
216
+ Bakker.process(target_path, '.1234', :remove, :move)
217
+ }.should change{ File.exist?(target_path) }.from(false).to(true) and
218
+ change{ File.exist?(source_path) }.from(true).to(false)
219
+ end
220
+
221
+ it "should create an unextended copy of an extended file if action is copy" do
222
+ source_path = temp_file('demo.exe')
223
+ target_path = File.join(@folder_path, 'demo')
224
+
225
+ lambda {
226
+ Bakker.process(source_path, '.exe', :toggle, :copy)
227
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
228
+ not change{ File.exists?(source_path) == true }
229
+ end
230
+
231
+ it "should create an unextended copy of an extended file if action is copy even if only the target is given" do
232
+ source_path = temp_file('demo.exe')
233
+ target_path = File.join(@folder_path, 'demo')
234
+
235
+ lambda {
236
+ Bakker.process(target_path, '.exe', :toggle, :copy)
237
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
238
+ not change{ File.exists?(source_path) == true }
239
+ end
240
+ end
241
+
242
+ describe 'commandline tool' do
243
+ it "use action move, extension .bak and mode toggle by default" do
244
+ source_path = temp_file('test.bak')
245
+ target_path = File.join(@folder_path, 'test')
246
+
247
+ lambda {
248
+ `#{RUBY_PATH} bin/bakker #{source_path}`
249
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
250
+ change{ File.exists?(source_path) }.from(true).to(false)
251
+
252
+ lambda {
253
+ `#{RUBY_PATH} bin/bakker #{target_path}`
254
+ }.should change{ File.exists?(target_path) }.from(true).to(false) and
255
+ change{ File.exists?(source_path) }.from(false).to(true)
256
+ end
257
+
258
+ it "should use -a to select the action" do
259
+ source_path = temp_file('abc')
260
+ target_path = File.join(@folder_path, 'abc.bak')
261
+
262
+ lambda {
263
+ `#{RUBY_PATH} bin/bakker -a copy #{source_path}`
264
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
265
+ not change{ File.exists?(source_path) == true }
266
+ end
267
+
268
+ it "should use --action to select the action" do
269
+ source_path = temp_file('abc')
270
+ target_path = File.join(@folder_path, 'abc.bak')
271
+
272
+ lambda {
273
+ `#{RUBY_PATH} bin/bakker --action copy #{source_path}`
274
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
275
+ not change{ File.exists?(source_path) == true }
276
+ end
277
+
278
+ it "should use -e to select an extension" do
279
+ source_path = temp_file('abc')
280
+ target_path = File.join(@folder_path, 'abc.zirbel')
281
+
282
+ lambda {
283
+ `#{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
284
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
285
+ change{ File.exists?(source_path) }.from(true).to(false)
286
+ end
287
+
288
+ it "should use --extension to select an extension" do
289
+ source_path = temp_file('abc')
290
+ target_path = File.join(@folder_path, 'abc.zirbel')
291
+
292
+ lambda {
293
+ `#{RUBY_PATH} bin/bakker --extension .zirbel #{source_path}`
294
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
295
+ change{ File.exists?(source_path) }.from(true).to(false)
296
+ end
297
+
298
+ it "should use -m to select a processing mode" do
299
+ source_path = temp_file('abc')
300
+ target_path = File.join(@folder_path, 'abc.bak')
301
+
302
+ lambda {
303
+ `#{RUBY_PATH} bin/bakker -m remove #{source_path}`
304
+ }.should_not change{ File.exists?(target_path) == false } and
305
+ change{ File.exists?(source_path) == true }
306
+
307
+ lambda {
308
+ `#{RUBY_PATH} bin/bakker -m toggle #{source_path}`
309
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
310
+ change{ File.exists?(source_path) }.from(true).to(false)
311
+
312
+ lambda {
313
+ `#{RUBY_PATH} bin/bakker -m add #{source_path}`
314
+ }.should_not change{ File.exists?(target_path) == true } and
315
+ change{ File.exists?(source_path) == false }
316
+ end
317
+
318
+ it "should use --mode to select a processing mode" do
319
+ source_path = temp_file('abc')
320
+ target_path = File.join(@folder_path, 'abc.bak')
321
+
322
+ lambda {
323
+ `#{RUBY_PATH} bin/bakker --mode remove #{source_path}`
324
+ }.should_not change{ File.exists?(target_path) == false } and
325
+ change{ File.exists?(source_path) == true }
326
+
327
+ lambda {
328
+ `#{RUBY_PATH} bin/bakker --mode toggle #{source_path}`
329
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
330
+ change{ File.exists?(source_path) }.from(true).to(false)
331
+
332
+ lambda {
333
+ `#{RUBY_PATH} bin/bakker --mode add #{source_path}`
334
+ }.should_not change{ File.exists?(target_path) == true } and
335
+ change{ File.exists?(source_path) == false }
336
+ end
337
+
338
+ it "should allow multiple files as argument" do
339
+ source_path_a = temp_file('abc')
340
+ target_path_a = File.join(@folder_path, 'abc.bak')
341
+ source_path_b = temp_file('def.bak')
342
+ target_path_b = File.join(@folder_path, 'def')
343
+ source_path_c = temp_file('xyz')
344
+ target_path_c = File.join(@folder_path, 'xyz.bak')
345
+
346
+ lambda {
347
+ `#{RUBY_PATH} bin/bakker #{source_path_a} #{source_path_b} #{source_path_c}`
348
+ }.should change{ File.exists?(target_path_a) }.from(false).to(true) and
349
+ change{ File.exists?(source_path_a) }.from(true).to(false) and
350
+ change{ File.exists?(target_path_b) }.from(false).to(true) and
351
+ change{ File.exists?(source_path_b) }.from(true).to(false) and
352
+ change{ File.exists?(target_path_c) }.from(false).to(true) and
353
+ change{ File.exists?(source_path_c) }.from(true).to(false)
354
+ end
355
+
356
+ it "should accept action config via environment variables" do
357
+ source_path = temp_file('abc')
358
+ target_path = File.join(@folder_path, 'abc.bak')
359
+
360
+ lambda {
361
+ if windows?
362
+ `set BAKKER_ACTION=copy`
363
+ `#{RUBY_PATH} bin/bakker #{source_path}`
364
+ else
365
+ `env BAKKER_ACTION=copy #{RUBY_PATH} bin/bakker #{source_path}`
366
+ end
367
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
368
+ not change{ File.exists?(source_path) == true }
369
+ end
370
+
371
+ it "should prefer commandline setting over environment for action" do
372
+ source_path = temp_file('abc')
373
+ target_path = File.join(@folder_path, 'abc.bak')
374
+
375
+ lambda {
376
+ if windows?
377
+ `set BAKKER_ACTION=copy`
378
+ `#{RUBY_PATH} bin/bakker -a move #{source_path}`
379
+ else
380
+ `env BAKKER_ACTION=copy #{RUBY_PATH} bin/bakker -a move #{source_path}`
381
+ end
382
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
383
+ change{ File.exists?(source_path) }.from(true).to(false)
384
+ end
385
+
386
+ it "should accept extension config via environment variables" do
387
+ source_path = temp_file('abc')
388
+ target_path = File.join(@folder_path, 'abc.zirbel')
389
+
390
+ lambda {
391
+ if windows?
392
+ `set BAKKER_EXTENSION=.zirbel`
393
+ `#{RUBY_PATH} bin/bakker #{source_path}`
394
+ else
395
+ `env BAKKER_EXTENSION=.zirbel #{RUBY_PATH} bin/bakker #{source_path}`
396
+ end
397
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
398
+ change{ File.exists?(source_path) }.from(true).to(false)
399
+ end
400
+
401
+ it "should prefer commandline setting over environment for extension" do
402
+ source_path = temp_file('abc')
403
+ target_path = File.join(@folder_path, 'abc.zirbel')
404
+
405
+ lambda {
406
+ if windows?
407
+ `set BAKKER_EXTENSION=.1234`
408
+ `#{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
409
+ else
410
+ `env BAKKER_EXTENSION=.1234 #{RUBY_PATH} bin/bakker -e .zirbel #{source_path}`
411
+ end
412
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
413
+ change{ File.exists?(source_path) }.from(true).to(false)
414
+ end
415
+
416
+ it "should accept extension config via environment variables" do
417
+ source_path = temp_file('abc')
418
+ target_path = File.join(@folder_path, 'abc.bak')
419
+
420
+ lambda {
421
+ if windows?
422
+ `set BAKKER_MODE=remove`
423
+ `#{RUBY_PATH} bin/bakker #{source_path}`
424
+ else
425
+ `env BAKKER_MODE=remove #{RUBY_PATH} bin/bakker #{source_path}`
426
+ end
427
+ }.should_not change{ File.exists?(target_path) == false } and
428
+ change{ File.exists?(source_path) == true }
429
+
430
+ lambda {
431
+ if windows?
432
+ `set BAKKER_MODE=toggle`
433
+ `#{RUBY_PATH} bin/bakker #{source_path}`
434
+ else
435
+ `env BAKKER_MODE=toggle #{RUBY_PATH} bin/bakker #{source_path}`
436
+ end
437
+ }.should change{ File.exists?(target_path) }.from(false).to(true) and
438
+ change{ File.exists?(source_path) }.from(true).to(false)
439
+
440
+ lambda {
441
+ if windows?
442
+ `set BAKKER_MODE=add`
443
+ `#{RUBY_PATH} bin/bakker #{source_path}`
444
+ else
445
+ `env BAKKER_MODE=add #{RUBY_PATH} bin/bakker #{source_path}`
446
+ end
447
+ }.should_not change{ File.exists?(target_path) == true } and
448
+ change{ File.exists?(source_path) == false }
449
+ end
450
+
451
+ it "should prefer commandline setting over environment for mode" do
452
+ source_path = temp_file('abc')
453
+ target_path = File.join(@folder_path, 'abc.bak')
454
+
455
+ lambda {
456
+ if windows?
457
+ `set BAKKER_MODE=add`
458
+ `#{RUBY_PATH} bin/bakker -m remove #{source_path}`
459
+ else
460
+ `env BAKKER_MODE=add #{RUBY_PATH} bin/bakker -m remove #{source_path}`
461
+ end
462
+ }.should_not change{ File.exists?(target_path) == false } and
463
+ change{ File.exists?(source_path) == true }
464
+ end
465
+ end
466
+ end
data.tar.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ K�9MW1\�٭Cf�-��&��)������0�/��
2
+ ��b��}����(t�{���R�����*���K���f%,F���F���Z�4�k�%v-�s�jU��6�����1��"Q&V�h��&�8��c&>�� �T�jl�ļ�pˣ=Z��1j�:�o�Kߗ�Bm����b9��zC��l�@��Х�q?,����s}�-,6~O�� �
3
+ ��Y�؄�ꋑV�3o,̺�|�P�}**��s�a! - �#�C�:
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bakker
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander E. Fischer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDKDCCAhCgAwIBAgIBADANBgkqhkiG9w0BAQUFADA6MQwwCgYDVQQDDANhZWYx
14
+ FTATBgoJkiaJk/IsZAEZFgVyYXh5czETMBEGCgmSJomT8ixkARkWA25ldDAeFw0w
15
+ OTAyMjUyMDM5MDhaFw0xMDAyMjUyMDM5MDhaMDoxDDAKBgNVBAMMA2FlZjEVMBMG
16
+ CgmSJomT8ixkARkWBXJheHlzMRMwEQYKCZImiZPyLGQBGRYDbmV0MIIBIjANBgkq
17
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoYtj0qad5/MpbdttITzBH0h1SNe6eO7R
18
+ 7qVeqNYu6qDQAQ0rYc0JhubJCWYrZEJorHEBhUFU6cdQgQOs78wiJaDgkeU7YfXB
19
+ q2l125kJ8aHkA1ukrK2/DRzp2AHEmzxHIYpXV5/63h+NWjCP+uKvTELYsotS2MKt
20
+ 3d43E0QajsPZu2ZuNFwkroqeue872gMHUldGOVy5WtSd9ajw2xI/CociY6746dL+
21
+ pYriV3QaYtR/ezeaLpKBLsc5T1UQ07t7Xs7mI281tdmRvpLdP5dQhjzInfio0CJv
22
+ 1Pf5bZUjGG0K9RW2Gb/tGPSYEETiLMubjH61OwBooXKiWR5cs4/1BQIDAQABozkw
23
+ NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSYvjhG2EWnR5kx5l
24
+ DAewXCkJOVEwDQYJKoZIhvcNAQEFBQADggEBAB2ryDbU4bQtnunKv/AXq4CuO3LS
25
+ kik9Xhye8E/5dTcsgitCZJXAqx0rHcK0u2EHnjA5CDcdF5JB7XgSvRrQkFWoW/9K
26
+ lCB4ih+sB2AI2IUiYBeoCGctXdBQ020prqop/oTQEudzFk/gyQ686lp06HdLRt+O
27
+ HoQjTIab8vmfgIubjPdIRzokMfHbelvhLi+mQfWVghRhs2jpEfdXbL0w5nNw+trp
28
+ rO70Dw59hduDUOpgpxew+PLbs4vP1tb1QKPG+39C+PZtosbbf1fai0hqYV1txMCx
29
+ 55akF+N8NbO6tpVDy6TMagqa10LfEpiQH6dvDHe/xdAqYOCrXKpmqzwu2PI=
30
+ -----END CERTIFICATE-----
31
+
32
+ date: 2009-03-08 00:00:00 +01:00
33
+ default_executable:
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: user-choices
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: sys-uname
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: hoe
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.8.2
64
+ version:
65
+ description: Bakker was created to help with simple task of renaming or copying files for quick backup purposes. For instance by creating a copy of a list of files while adding .bak to the copies filenames. Bakker gives you control over the extension to be added to or removed from the file and whether it should be moved or copied.
66
+ email:
67
+ - aef@raxys.net
68
+ executables:
69
+ - bakker
70
+ extensions: []
71
+
72
+ extra_rdoc_files:
73
+ - History.txt
74
+ - Manifest.txt
75
+ - README.txt
76
+ - COPYING.txt
77
+ files:
78
+ - History.txt
79
+ - Manifest.txt
80
+ - README.txt
81
+ - COPYING.txt
82
+ - Rakefile
83
+ - bin/bakker
84
+ - lib/bakker.rb
85
+ - spec/bakker_spec.rb
86
+ has_rdoc: true
87
+ homepage: "Project: https://rubyforge.org/projects/aef/"
88
+ post_install_message:
89
+ rdoc_options:
90
+ - --main
91
+ - README.txt
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
99
+ version:
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
105
+ version:
106
+ requirements: []
107
+
108
+ rubyforge_project: aef
109
+ rubygems_version: 1.3.1
110
+ signing_key:
111
+ specification_version: 2
112
+ summary: Bakker was created to help with simple task of renaming or copying files for quick backup purposes
113
+ test_files:
114
+ - spec/bakker_spec.rb
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ t��L99߭��ف%2TX�yc��Q�iy���p�۲�����5�T��[+� cd�C[��;H�w_��8��EI�|E��ﰟt|1w:y��>x�7AF�$ 5ﰨ�^���k�s[�4���&��Ǡ�3K��@�Vb.?�zq�q�
2
+ ��sa$�첽*��ض���G lw� ,!htԱ��\׫�jqo Y�DKM�5�k�6����i$O�Z-������+������a�xU5A��C੒�E��S䐗*