backup 3.0.3.build.0 → 3.0.3

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.
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: