backup 3.0.3.build.0 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/.gitignore +2 -0
  2. data/.infinity_test +7 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +17 -0
  5. data/Gemfile.lock +88 -0
  6. data/LICENSE.md +24 -0
  7. data/README.md +236 -0
  8. data/backup.gemspec +41 -0
  9. data/bin/backup +191 -12
  10. data/lib/backup.rb +162 -0
  11. data/lib/backup/archive.rb +54 -0
  12. data/lib/backup/cli.rb +50 -0
  13. data/lib/backup/compressor/base.rb +17 -0
  14. data/lib/backup/compressor/gzip.rb +61 -0
  15. data/lib/backup/configuration/base.rb +15 -0
  16. data/lib/backup/configuration/compressor/base.rb +10 -0
  17. data/lib/backup/configuration/compressor/gzip.rb +23 -0
  18. data/lib/backup/configuration/database/base.rb +18 -0
  19. data/lib/backup/configuration/database/mongodb.rb +37 -0
  20. data/lib/backup/configuration/database/mysql.rb +37 -0
  21. data/lib/backup/configuration/database/postgresql.rb +37 -0
  22. data/lib/backup/configuration/database/redis.rb +35 -0
  23. data/lib/backup/configuration/encryptor/base.rb +10 -0
  24. data/lib/backup/configuration/encryptor/gpg.rb +17 -0
  25. data/lib/backup/configuration/encryptor/open_ssl.rb +26 -0
  26. data/lib/backup/configuration/helpers.rb +54 -0
  27. data/lib/backup/configuration/notifier/base.rb +39 -0
  28. data/lib/backup/configuration/notifier/mail.rb +52 -0
  29. data/lib/backup/configuration/storage/base.rb +18 -0
  30. data/lib/backup/configuration/storage/cloudfiles.rb +21 -0
  31. data/lib/backup/configuration/storage/dropbox.rb +25 -0
  32. data/lib/backup/configuration/storage/ftp.rb +25 -0
  33. data/lib/backup/configuration/storage/rsync.rb +25 -0
  34. data/lib/backup/configuration/storage/s3.rb +25 -0
  35. data/lib/backup/configuration/storage/scp.rb +25 -0
  36. data/lib/backup/configuration/storage/sftp.rb +25 -0
  37. data/lib/backup/configuration/syncer/rsync.rb +45 -0
  38. data/lib/backup/database/base.rb +33 -0
  39. data/lib/backup/database/mongodb.rb +137 -0
  40. data/lib/backup/database/mysql.rb +104 -0
  41. data/lib/backup/database/postgresql.rb +111 -0
  42. data/lib/backup/database/redis.rb +105 -0
  43. data/lib/backup/encryptor/base.rb +17 -0
  44. data/lib/backup/encryptor/gpg.rb +78 -0
  45. data/lib/backup/encryptor/open_ssl.rb +67 -0
  46. data/lib/backup/finder.rb +39 -0
  47. data/lib/backup/logger.rb +86 -0
  48. data/lib/backup/model.rb +272 -0
  49. data/lib/backup/notifier/base.rb +29 -0
  50. data/lib/backup/notifier/binder.rb +32 -0
  51. data/lib/backup/notifier/mail.rb +141 -0
  52. data/lib/backup/notifier/templates/notify_failure.erb +31 -0
  53. data/lib/backup/notifier/templates/notify_success.erb +16 -0
  54. data/lib/backup/storage/base.rb +67 -0
  55. data/lib/backup/storage/cloudfiles.rb +95 -0
  56. data/lib/backup/storage/dropbox.rb +82 -0
  57. data/lib/backup/storage/ftp.rb +114 -0
  58. data/lib/backup/storage/object.rb +45 -0
  59. data/lib/backup/storage/rsync.rb +99 -0
  60. data/lib/backup/storage/s3.rb +108 -0
  61. data/lib/backup/storage/scp.rb +105 -0
  62. data/lib/backup/storage/sftp.rb +106 -0
  63. data/lib/backup/syncer/rsync.rb +119 -0
  64. data/lib/backup/version.rb +72 -0
  65. data/lib/templates/archive +4 -0
  66. data/lib/templates/compressor/gzip +4 -0
  67. data/lib/templates/database/mongodb +10 -0
  68. data/lib/templates/database/mysql +11 -0
  69. data/lib/templates/database/postgresql +11 -0
  70. data/lib/templates/database/redis +10 -0
  71. data/lib/templates/encryptor/gpg +9 -0
  72. data/lib/templates/encryptor/openssl +5 -0
  73. data/lib/templates/notifier/mail +14 -0
  74. data/lib/templates/readme +15 -0
  75. data/lib/templates/storage/cloudfiles +7 -0
  76. data/lib/templates/storage/dropbox +8 -0
  77. data/lib/templates/storage/ftp +8 -0
  78. data/lib/templates/storage/rsync +7 -0
  79. data/lib/templates/storage/s3 +8 -0
  80. data/lib/templates/storage/scp +8 -0
  81. data/lib/templates/storage/sftp +8 -0
  82. data/lib/templates/syncer/rsync +14 -0
  83. data/spec/archive_spec.rb +53 -0
  84. data/spec/backup_spec.rb +11 -0
  85. data/spec/compressor/gzip_spec.rb +59 -0
  86. data/spec/configuration/base_spec.rb +35 -0
  87. data/spec/configuration/compressor/gzip_spec.rb +28 -0
  88. data/spec/configuration/database/base_spec.rb +16 -0
  89. data/spec/configuration/database/mongodb_spec.rb +30 -0
  90. data/spec/configuration/database/mysql_spec.rb +32 -0
  91. data/spec/configuration/database/postgresql_spec.rb +32 -0
  92. data/spec/configuration/database/redis_spec.rb +30 -0
  93. data/spec/configuration/encryptor/gpg_spec.rb +25 -0
  94. data/spec/configuration/encryptor/open_ssl_spec.rb +31 -0
  95. data/spec/configuration/notifier/mail_spec.rb +32 -0
  96. data/spec/configuration/storage/cloudfiles_spec.rb +34 -0
  97. data/spec/configuration/storage/dropbox_spec.rb +40 -0
  98. data/spec/configuration/storage/ftp_spec.rb +40 -0
  99. data/spec/configuration/storage/rsync_spec.rb +37 -0
  100. data/spec/configuration/storage/s3_spec.rb +37 -0
  101. data/spec/configuration/storage/scp_spec.rb +40 -0
  102. data/spec/configuration/storage/sftp_spec.rb +40 -0
  103. data/spec/configuration/syncer/rsync_spec.rb +46 -0
  104. data/spec/database/base_spec.rb +30 -0
  105. data/spec/database/mongodb_spec.rb +144 -0
  106. data/spec/database/mysql_spec.rb +150 -0
  107. data/spec/database/postgresql_spec.rb +164 -0
  108. data/spec/database/redis_spec.rb +122 -0
  109. data/spec/encryptor/gpg_spec.rb +57 -0
  110. data/spec/encryptor/open_ssl_spec.rb +102 -0
  111. data/spec/logger_spec.rb +46 -0
  112. data/spec/model_spec.rb +236 -0
  113. data/spec/notifier/mail_spec.rb +97 -0
  114. data/spec/spec_helper.rb +21 -0
  115. data/spec/storage/base_spec.rb +33 -0
  116. data/spec/storage/cloudfiles_spec.rb +102 -0
  117. data/spec/storage/dropbox_spec.rb +89 -0
  118. data/spec/storage/ftp_spec.rb +133 -0
  119. data/spec/storage/object_spec.rb +74 -0
  120. data/spec/storage/rsync_spec.rb +115 -0
  121. data/spec/storage/s3_spec.rb +110 -0
  122. data/spec/storage/scp_spec.rb +129 -0
  123. data/spec/storage/sftp_spec.rb +125 -0
  124. data/spec/syncer/rsync_spec.rb +156 -0
  125. data/spec/version_spec.rb +32 -0
  126. metadata +195 -6
@@ -0,0 +1,156 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ describe Backup::Syncer::RSync do
6
+
7
+ let(:rsync) do
8
+ Backup::Syncer::RSync.new do |rsync|
9
+ rsync.username = 'my_username'
10
+ rsync.password = 'my_password'
11
+ rsync.ip = '123.45.678.90'
12
+ rsync.port = 22
13
+ rsync.path = '~/backups/'
14
+ rsync.mirror = true
15
+ rsync.compress = true
16
+ rsync.additional_options = []
17
+
18
+ rsync.folders do |folder|
19
+ folder.add "/some/random/folder"
20
+ folder.add "/another/random/folder"
21
+ end
22
+ end
23
+ end
24
+
25
+ before do
26
+ Backup::Configuration::Syncer::RSync.clear_defaults!
27
+ end
28
+
29
+ it 'should have defined the configuration properly' do
30
+ rsync.username.should == 'my_username'
31
+ rsync.password.should == 'my_password'
32
+ rsync.ip.should == '123.45.678.90'
33
+ rsync.port.should == "--port='22'"
34
+ rsync.path.should == 'backups/'
35
+ rsync.mirror.should == "--delete"
36
+ rsync.compress.should == "-z"
37
+ end
38
+
39
+ it 'should use the defaults if a particular attribute has not been defined' do
40
+ Backup::Configuration::Syncer::RSync.defaults do |rsync|
41
+ rsync.username = 'my_default_username'
42
+ rsync.password = 'my_default_password'
43
+ rsync.path = '~/backups'
44
+ rsync.mirror = false
45
+ end
46
+
47
+ rsync = Backup::Syncer::RSync.new do |rsync|
48
+ rsync.password = 'my_password'
49
+ rsync.ip = '123.45.678.90'
50
+ rsync.compress = false
51
+ end
52
+
53
+ rsync.username.should == 'my_default_username'
54
+ rsync.password.should == 'my_password'
55
+ rsync.ip.should == '123.45.678.90'
56
+ rsync.port.should == "--port='22'"
57
+ rsync.mirror.should == nil
58
+ rsync.compress.should == nil
59
+ end
60
+
61
+ it 'should have its own defaults' do
62
+ rsync = Backup::Syncer::RSync.new
63
+ rsync.port.should == "--port='22'"
64
+ rsync.path.should == 'backups'
65
+ rsync.compress.should == nil
66
+ rsync.mirror.should == nil
67
+ rsync.folders.should == ''
68
+ rsync.additional_options.should == []
69
+ end
70
+
71
+ describe '#mirror' do
72
+ context 'when true' do
73
+ it do
74
+ rsync.mirror = true
75
+ rsync.mirror.should == '--delete'
76
+ end
77
+ end
78
+
79
+ context 'when nil/false' do
80
+ it do
81
+ rsync.mirror = nil
82
+ rsync.mirror.should == nil
83
+ end
84
+
85
+ it do
86
+ rsync.mirror = false
87
+ rsync.mirror.should == nil
88
+ end
89
+ end
90
+ end
91
+
92
+ describe '#compress' do
93
+ context 'when true' do
94
+ it do
95
+ rsync.compress = true
96
+ rsync.compress.should == '-z'
97
+ end
98
+ end
99
+
100
+ context 'when nil/false' do
101
+ it do
102
+ rsync.compress = nil
103
+ rsync.compress.should == nil
104
+ end
105
+
106
+ it do
107
+ rsync.compress = false
108
+ rsync.compress.should == nil
109
+ end
110
+ end
111
+ end
112
+
113
+ describe '#archive' do
114
+ it do
115
+ rsync.archive.should == '--archive'
116
+ end
117
+ end
118
+
119
+ describe '#port' do
120
+ it do
121
+ rsync.port.should == "--port='22'"
122
+ end
123
+ end
124
+
125
+ describe '#folders' do
126
+ context 'when its empty' do
127
+ it do
128
+ rsync.folders = []
129
+ rsync.folders.should == ''
130
+ end
131
+ end
132
+
133
+ context 'when it has items' do
134
+ it do
135
+ rsync.folders = ['folder1', 'folder1/folder2', 'folder1/folder2/folder3']
136
+ rsync.folders.should == "'folder1' 'folder1/folder2' 'folder1/folder2/folder3'"
137
+ end
138
+ end
139
+ end
140
+
141
+ describe '#options' do
142
+ it do
143
+ rsync.options.should == "--archive --delete -z --port='22'"
144
+ end
145
+ end
146
+
147
+ describe '#perform' do
148
+ it 'should invoke transfer!' do
149
+ Backup::Logger.expects(:message).with("Backup::Syncer::RSync started syncing '/some/random/folder' '/another/random/folder'.")
150
+ rsync.expects(:utility).with(:rsync).returns(:rsync)
151
+ rsync.expects(:run).with("rsync -vhP --archive --delete -z --port='22' '/some/random/folder' '/another/random/folder' 'my_username@123.45.678.90:backups/'")
152
+ rsync.perform!
153
+ end
154
+ end
155
+
156
+ end
@@ -0,0 +1,32 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/spec_helper'
4
+
5
+ def set_version(major, minor, patch, build)
6
+ Backup::Version.stubs(:major).returns(major)
7
+ Backup::Version.stubs(:minor).returns(minor)
8
+ Backup::Version.stubs(:patch).returns(patch)
9
+ Backup::Version.stubs(:build).returns(build)
10
+ end
11
+
12
+ describe Backup::Version do
13
+ it 'should return a valid gemspec version' do
14
+ set_version(1,2,3,false)
15
+ Backup::Version.gemspec.should == '1.2.3'
16
+ end
17
+
18
+ it 'should return a valid gemspec version with a build' do
19
+ set_version(4,5,6,615)
20
+ Backup::Version.gemspec.should == '4.5.6.build.615'
21
+ end
22
+
23
+ it 'should return a nicer gemspec output' do
24
+ set_version(1,2,3,false)
25
+ Backup::Version.current.should == '1.2.3 / build 0'
26
+ end
27
+
28
+ it 'should return a nicer gemspec output with build' do
29
+ set_version(4,5,6,615)
30
+ Backup::Version.current.should == '4.5.6 / build 615'
31
+ end
32
+ end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backup
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 3.0.3.build.0
4
+ prerelease:
5
+ version: 3.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael van Rooijen
@@ -12,8 +12,73 @@ cert_chain: []
12
12
 
13
13
  date: 2011-03-12 00:00:00 +01:00
14
14
  default_executable:
15
- dependencies: []
16
-
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: thor
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 0.14.6
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: fog
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: 0.5.3
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: dropbox
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 1.2.3
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: mail
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ version: 2.2.15
58
+ type: :runtime
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: net-sftp
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.5
69
+ type: :runtime
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: net-scp
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: 1.0.4
80
+ type: :runtime
81
+ version_requirements: *id006
17
82
  description: |-
18
83
  Backup is a RubyGem (for UNIX-like operating systems: Linux, Mac OSX) that allows you to configure and perform backups in a simple manner using an elegant Ruby DSL.
19
84
  It supports various databases (MySQL, PostgreSQL, MongoDB and Redis), it supports various storage locations
@@ -28,7 +93,131 @@ extensions: []
28
93
  extra_rdoc_files: []
29
94
 
30
95
  files:
96
+ - .gitignore
97
+ - .infinity_test
98
+ - .rspec
99
+ - Gemfile
100
+ - Gemfile.lock
101
+ - LICENSE.md
102
+ - README.md
103
+ - backup.gemspec
31
104
  - bin/backup
105
+ - lib/backup.rb
106
+ - lib/backup/archive.rb
107
+ - lib/backup/cli.rb
108
+ - lib/backup/compressor/base.rb
109
+ - lib/backup/compressor/gzip.rb
110
+ - lib/backup/configuration/base.rb
111
+ - lib/backup/configuration/compressor/base.rb
112
+ - lib/backup/configuration/compressor/gzip.rb
113
+ - lib/backup/configuration/database/base.rb
114
+ - lib/backup/configuration/database/mongodb.rb
115
+ - lib/backup/configuration/database/mysql.rb
116
+ - lib/backup/configuration/database/postgresql.rb
117
+ - lib/backup/configuration/database/redis.rb
118
+ - lib/backup/configuration/encryptor/base.rb
119
+ - lib/backup/configuration/encryptor/gpg.rb
120
+ - lib/backup/configuration/encryptor/open_ssl.rb
121
+ - lib/backup/configuration/helpers.rb
122
+ - lib/backup/configuration/notifier/base.rb
123
+ - lib/backup/configuration/notifier/mail.rb
124
+ - lib/backup/configuration/storage/base.rb
125
+ - lib/backup/configuration/storage/cloudfiles.rb
126
+ - lib/backup/configuration/storage/dropbox.rb
127
+ - lib/backup/configuration/storage/ftp.rb
128
+ - lib/backup/configuration/storage/rsync.rb
129
+ - lib/backup/configuration/storage/s3.rb
130
+ - lib/backup/configuration/storage/scp.rb
131
+ - lib/backup/configuration/storage/sftp.rb
132
+ - lib/backup/configuration/syncer/rsync.rb
133
+ - lib/backup/database/base.rb
134
+ - lib/backup/database/mongodb.rb
135
+ - lib/backup/database/mysql.rb
136
+ - lib/backup/database/postgresql.rb
137
+ - lib/backup/database/redis.rb
138
+ - lib/backup/encryptor/base.rb
139
+ - lib/backup/encryptor/gpg.rb
140
+ - lib/backup/encryptor/open_ssl.rb
141
+ - lib/backup/finder.rb
142
+ - lib/backup/logger.rb
143
+ - lib/backup/model.rb
144
+ - lib/backup/notifier/base.rb
145
+ - lib/backup/notifier/binder.rb
146
+ - lib/backup/notifier/mail.rb
147
+ - lib/backup/notifier/templates/notify_failure.erb
148
+ - lib/backup/notifier/templates/notify_success.erb
149
+ - lib/backup/storage/base.rb
150
+ - lib/backup/storage/cloudfiles.rb
151
+ - lib/backup/storage/dropbox.rb
152
+ - lib/backup/storage/ftp.rb
153
+ - lib/backup/storage/object.rb
154
+ - lib/backup/storage/rsync.rb
155
+ - lib/backup/storage/s3.rb
156
+ - lib/backup/storage/scp.rb
157
+ - lib/backup/storage/sftp.rb
158
+ - lib/backup/syncer/rsync.rb
159
+ - lib/backup/version.rb
160
+ - lib/templates/archive
161
+ - lib/templates/compressor/gzip
162
+ - lib/templates/database/mongodb
163
+ - lib/templates/database/mysql
164
+ - lib/templates/database/postgresql
165
+ - lib/templates/database/redis
166
+ - lib/templates/encryptor/gpg
167
+ - lib/templates/encryptor/openssl
168
+ - lib/templates/notifier/mail
169
+ - lib/templates/readme
170
+ - lib/templates/storage/cloudfiles
171
+ - lib/templates/storage/dropbox
172
+ - lib/templates/storage/ftp
173
+ - lib/templates/storage/rsync
174
+ - lib/templates/storage/s3
175
+ - lib/templates/storage/scp
176
+ - lib/templates/storage/sftp
177
+ - lib/templates/syncer/rsync
178
+ - spec/archive_spec.rb
179
+ - spec/backup_spec.rb
180
+ - spec/compressor/gzip_spec.rb
181
+ - spec/configuration/base_spec.rb
182
+ - spec/configuration/compressor/gzip_spec.rb
183
+ - spec/configuration/database/base_spec.rb
184
+ - spec/configuration/database/mongodb_spec.rb
185
+ - spec/configuration/database/mysql_spec.rb
186
+ - spec/configuration/database/postgresql_spec.rb
187
+ - spec/configuration/database/redis_spec.rb
188
+ - spec/configuration/encryptor/gpg_spec.rb
189
+ - spec/configuration/encryptor/open_ssl_spec.rb
190
+ - spec/configuration/notifier/mail_spec.rb
191
+ - spec/configuration/storage/cloudfiles_spec.rb
192
+ - spec/configuration/storage/dropbox_spec.rb
193
+ - spec/configuration/storage/ftp_spec.rb
194
+ - spec/configuration/storage/rsync_spec.rb
195
+ - spec/configuration/storage/s3_spec.rb
196
+ - spec/configuration/storage/scp_spec.rb
197
+ - spec/configuration/storage/sftp_spec.rb
198
+ - spec/configuration/syncer/rsync_spec.rb
199
+ - spec/database/base_spec.rb
200
+ - spec/database/mongodb_spec.rb
201
+ - spec/database/mysql_spec.rb
202
+ - spec/database/postgresql_spec.rb
203
+ - spec/database/redis_spec.rb
204
+ - spec/encryptor/gpg_spec.rb
205
+ - spec/encryptor/open_ssl_spec.rb
206
+ - spec/logger_spec.rb
207
+ - spec/model_spec.rb
208
+ - spec/notifier/mail_spec.rb
209
+ - spec/spec_helper.rb
210
+ - spec/storage/base_spec.rb
211
+ - spec/storage/cloudfiles_spec.rb
212
+ - spec/storage/dropbox_spec.rb
213
+ - spec/storage/ftp_spec.rb
214
+ - spec/storage/object_spec.rb
215
+ - spec/storage/rsync_spec.rb
216
+ - spec/storage/s3_spec.rb
217
+ - spec/storage/scp_spec.rb
218
+ - spec/storage/sftp_spec.rb
219
+ - spec/syncer/rsync_spec.rb
220
+ - spec/version_spec.rb
32
221
  has_rdoc: true
33
222
  homepage: http://rubygems.org/gems/backup
34
223
  licenses: []
@@ -47,9 +236,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
236
  required_rubygems_version: !ruby/object:Gem::Requirement
48
237
  none: false
49
238
  requirements:
50
- - - ">"
239
+ - - ">="
51
240
  - !ruby/object:Gem::Version
52
- version: 1.3.1
241
+ version: "0"
53
242
  requirements: []
54
243
 
55
244
  rubyforge_project: