encbs 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ gem "ruby-progressbar"
6
6
  gem "lzoruby"
7
7
 
8
8
  group :development do
9
- gem "rake", "0.8.4"
9
+ gem "rake", "~> 0.8"
10
10
  gem "bundler", ">= 1.0.0"
11
11
  gem "jeweler", ">= 1.6.0"
12
12
  gem "rcov", ">= 0"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
data/encbs.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{encbs}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Timothy Klim"]
@@ -37,13 +37,17 @@ Gem::Specification.new do |s|
37
37
  "lib/crypto.rb",
38
38
  "lib/encbsconfig.rb",
39
39
  "lib/helpers.rb",
40
+ "test/cloudrc.yml.example",
41
+ "test/fixtures/Encbsfile.example",
40
42
  "test/fixtures/etc/.hide",
41
43
  "test/fixtures/etc/root/file",
42
44
  "test/fixtures/rsa_key.private",
43
45
  "test/fixtures/rsa_key.public",
44
46
  "test/helper.rb",
45
- "test/test_backup.rb",
47
+ "test/test_archive.rb",
48
+ "test/test_backup_cloud.rb",
46
49
  "test/test_backup_file_item.rb",
50
+ "test/test_backup_local.rb",
47
51
  "test/test_backup_timestamp.rb",
48
52
  "test/test_config.rb",
49
53
  "test/test_crypto.rb"
@@ -51,7 +55,7 @@ Gem::Specification.new do |s|
51
55
  s.homepage = %q{http://github.com/TimothyKlim/encbs}
52
56
  s.licenses = ["MIT"]
53
57
  s.require_paths = ["lib"]
54
- s.rubygems_version = %q{1.6.2}
58
+ s.rubygems_version = %q{1.5.2}
55
59
  s.summary = %q{Simple backup system for pushing into cloud}
56
60
 
57
61
  if s.respond_to? :specification_version then
@@ -62,7 +66,7 @@ Gem::Specification.new do |s|
62
66
  s.add_runtime_dependency(%q<slop>, [">= 0"])
63
67
  s.add_runtime_dependency(%q<ruby-progressbar>, [">= 0"])
64
68
  s.add_runtime_dependency(%q<lzoruby>, [">= 0"])
65
- s.add_development_dependency(%q<rake>, ["= 0.8.4"])
69
+ s.add_development_dependency(%q<rake>, ["~> 0.8"])
66
70
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
67
71
  s.add_development_dependency(%q<jeweler>, [">= 1.6.0"])
68
72
  s.add_development_dependency(%q<rcov>, [">= 0"])
@@ -71,7 +75,7 @@ Gem::Specification.new do |s|
71
75
  s.add_dependency(%q<slop>, [">= 0"])
72
76
  s.add_dependency(%q<ruby-progressbar>, [">= 0"])
73
77
  s.add_dependency(%q<lzoruby>, [">= 0"])
74
- s.add_dependency(%q<rake>, ["= 0.8.4"])
78
+ s.add_dependency(%q<rake>, ["~> 0.8"])
75
79
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
76
80
  s.add_dependency(%q<jeweler>, [">= 1.6.0"])
77
81
  s.add_dependency(%q<rcov>, [">= 0"])
@@ -81,7 +85,7 @@ Gem::Specification.new do |s|
81
85
  s.add_dependency(%q<slop>, [">= 0"])
82
86
  s.add_dependency(%q<ruby-progressbar>, [">= 0"])
83
87
  s.add_dependency(%q<lzoruby>, [">= 0"])
84
- s.add_dependency(%q<rake>, ["= 0.8.4"])
88
+ s.add_dependency(%q<rake>, ["~> 0.8"])
85
89
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
86
90
  s.add_dependency(%q<jeweler>, [">= 1.6.0"])
87
91
  s.add_dependency(%q<rcov>, [">= 0"])
data/lib/archive.rb CHANGED
@@ -8,7 +8,7 @@ module GZIP
8
8
  z.close
9
9
  dst
10
10
  end
11
-
11
+
12
12
  def self.decompress string
13
13
  zstream = Zlib::Inflate.new
14
14
  buf = zstream.inflate string
@@ -22,11 +22,12 @@ class Archive
22
22
  attr_reader :type
23
23
 
24
24
  def initialize type
25
- puts_fail "Unsupported type" unless [:lzo, :gzip].include? type.downcase
26
- instance_eval %{@type = #{type.to_s.upcase}}
25
+ type = type.to_s
26
+ puts_fail "Unsupported type" unless %w[lzo gzip].include? type.downcase
27
+ instance_eval %{@type = #{type.upcase}}
27
28
  end
28
-
29
+
29
30
  def method_missing name, *args
30
31
  StringIO.new @type.send(name, *args)
31
32
  end
32
- end
33
+ end
@@ -53,6 +53,15 @@ module Backup
53
53
  end
54
54
  end
55
55
 
56
+ def exists? file
57
+ try_to_work_with_cloud do
58
+ !@directory.files.all(
59
+ :prefix => file,
60
+ :max_keys => 1
61
+ ).nil?
62
+ end
63
+ end
64
+
56
65
  def read_file(file)
57
66
  try_to_work_with_cloud do
58
67
  file = delete_slashes(file)
@@ -15,10 +15,14 @@ module Backup
15
15
  end
16
16
  end
17
17
 
18
+ def exists? file
19
+ File.exists? file
20
+ end
21
+
18
22
  def create_file_once file, data
19
23
  data = data.read if data.is_a? File or data.is_a? StringIO
20
24
  File.open(file, 'wb') do |f|
21
- f.puts(data)
25
+ f.print(data)
22
26
  end unless File.exists?(file)
23
27
  end
24
28
 
data/lib/backup/jar.rb CHANGED
@@ -106,7 +106,7 @@ module Backup
106
106
  :timestamp => @timestamp
107
107
  })
108
108
  File.open("/var/tmp/encbs.swap", "w") do |f|
109
- f.puts @meta_index.to_yaml
109
+ f.print @meta_index.to_yaml
110
110
  end
111
111
 
112
112
  puts
@@ -158,7 +158,7 @@ module Backup
158
158
 
159
159
  class << self
160
160
  def hash_to_path(file_item, root_path, hash)
161
- file_item.read_file("#{root_path}/meta/jars/#{hash}").chomp
161
+ file_item.read_file("#{root_path}/meta/jars/#{hash}")
162
162
  rescue Errno::ENOENT
163
163
  ""
164
164
  end
data/lib/backup.rb CHANGED
@@ -111,13 +111,13 @@ module Backup
111
111
  remote_path += "/#{@file_item.file_hash file}"
112
112
 
113
113
  data = @file_item.read_file(remote_path)
114
- data = @key.decrypt_from_stream data.chomp if @key
114
+ data = @key.decrypt_from_stream data if @key
115
115
 
116
116
  unless compression.nil?
117
- data = compression.decompress(data.chomp).read
117
+ data = compression.decompress(data).read
118
118
  end
119
119
 
120
- f.puts data
120
+ f.print data
121
121
  end
122
122
 
123
123
  file_ok = @file_item.stat(restore_file)[restore_file]
data/lib/encbsconfig.rb CHANGED
@@ -34,7 +34,7 @@ class EncbsConfig
34
34
  def increment!
35
35
  @increment = true
36
36
  end
37
-
37
+
38
38
  def use_compression attr
39
39
  @compression = attr
40
40
  end
@@ -58,7 +58,7 @@ class EncbsConfig
58
58
  def verbose!
59
59
  @verbose = true
60
60
  end
61
-
61
+
62
62
  def set_timeout attr
63
63
  @timeout = attr
64
64
  end
data/lib/helpers.rb CHANGED
@@ -34,7 +34,7 @@ end
34
34
 
35
35
  def create_lock
36
36
  open("/tmp/encbs.lock", "w") do |f|
37
- f.puts Process.pid
37
+ f.print Process.pid
38
38
  end
39
39
  end
40
40
 
@@ -0,0 +1,4 @@
1
+ bucket: "encbs"
2
+ directory: "encbs_test_backups"
3
+ key: "Amazon API Key"
4
+ secret: "Amazon Secret Key"
@@ -0,0 +1,14 @@
1
+ add "~/.oh-my-zsh"
2
+ add "~/.zshrc"
3
+ aws_bucket "encbs"
4
+ aws_key "AWS_KEY"
5
+ aws_secret "AWS_SECRET"
6
+ colorize!
7
+ increment!
8
+ key_size 2048
9
+ public_key "~/rsa_key.pub"
10
+ purge!
11
+ set_timeout 1000
12
+ use_compression "gzip"
13
+ use_hostname "Yeah"
14
+ verbose!
data/test/helper.rb CHANGED
@@ -13,7 +13,9 @@ require 'base64'
13
13
  require 'lzoruby'
14
14
  require 'zlib'
15
15
 
16
+ require 'fog'
16
17
  require 'backup'
18
+ require 'encbsconfig'
17
19
 
18
20
  def puts_fail msg
19
21
  raise msg
@@ -0,0 +1,41 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestArchive < Test::Unit::TestCase
4
+ def setup
5
+ @original = "Yeah" * 100
6
+ end
7
+
8
+ def test_gzip
9
+ gzip = Archive.new :gzip
10
+
11
+ compressed = (gzip.compress @original, 9).read
12
+ decompressed = (gzip.decompress compressed).read
13
+
14
+ assert compressed.length < @original.length
15
+
16
+ assert_equal @original, decompressed
17
+
18
+ assert_not_nil compressed
19
+ assert_not_nil decompressed
20
+
21
+ assert_not_equal @original, compressed
22
+ assert_not_equal decompressed, compressed
23
+ end
24
+
25
+ def test_lzo
26
+ lzo = Archive.new :lzo
27
+
28
+ compressed = (lzo.compress @original, 9).read
29
+ decompressed = (lzo.decompress compressed).read
30
+
31
+ assert compressed.length < @original.length
32
+
33
+ assert_equal @original, decompressed
34
+
35
+ assert_not_nil compressed
36
+ assert_not_nil decompressed
37
+
38
+ assert_not_equal @original, compressed
39
+ assert_not_equal decompressed, compressed
40
+ end
41
+ end
@@ -0,0 +1,43 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require File.expand_path('../test_backup_local', __FILE__)
3
+
4
+ class TestCloudBackup < TestLocalBackup
5
+ def setup
6
+ @restore_path = File.expand_path("../fixtures/restore", __FILE__)
7
+ @hostname = Socket.gethostname
8
+
9
+ cloud_rc = YAML::load open(
10
+ File.expand_path "../cloudrc.yml", __FILE__
11
+ ).read
12
+
13
+ @backups_path = cloud_rc["directory"]
14
+ @backup = Backup::Instance.new(
15
+ @backups_path,
16
+ true,
17
+ :key => cloud_rc["key"],
18
+ :secret => cloud_rc["secret"],
19
+ :bucket => cloud_rc["bucket"]
20
+ )
21
+ end
22
+
23
+ def teardown
24
+ FileUtils.rm_r @restore_path, :force => true
25
+ FileUtils.mkdir_p @restore_path
26
+
27
+ File.open(File.expand_path('../fixtures/etc/root/file', __FILE__), 'w') do |f|
28
+ f.puts "Root file\n"
29
+ end
30
+
31
+ @backup.file_item.delete_dir @backups_path
32
+ end
33
+
34
+ def test_backup_attributes
35
+ assert_equal(
36
+ @backup.root_path,
37
+ "#{@backups_path}/#{@hostname}"
38
+ )
39
+ assert_equal @backup.hostname, @hostname
40
+ assert_equal @backup.file_item.class, Backup::FileItem::Cloud
41
+ assert_not_nil @backup.timestamp
42
+ end
43
+ end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
- class TestBackup < Test::Unit::TestCase
3
+ class TestLocalBackup < Test::Unit::TestCase
4
4
  def setup
5
5
  @backups_path = File.expand_path("../fixtures/backups", __FILE__)
6
6
  @restore_path = File.expand_path("../fixtures/restore", __FILE__)
@@ -25,11 +25,11 @@ class TestBackup < Test::Unit::TestCase
25
25
  end
26
26
  end
27
27
 
28
- def create_backup! increment = false
28
+ def create_backup! increment = false, purge = false
29
29
  @local_path = File.expand_path('../fixtures/etc', __FILE__)
30
30
  @local_path_hash = Digest::MD5.hexdigest @local_path
31
31
 
32
- @timestamp = @backup.create! @local_path, increment, false
32
+ @timestamp = @backup.create! @local_path, increment, purge
33
33
  @back_path = "#{@backups_path}/#{@hostname}"
34
34
  end
35
35
 
@@ -46,28 +46,55 @@ class TestBackup < Test::Unit::TestCase
46
46
  def test_create
47
47
  create_backup!
48
48
 
49
- assert File.exists?("#{@back_path}")
50
- assert File.exists?("#{@back_path}/meta")
51
- assert File.exists?("#{@back_path}/meta/#{@local_path_hash}")
52
- assert File.exists?("#{@back_path}/meta/#{@local_path_hash}/#{@timestamp}.yml")
53
- assert File.exists?("#{@back_path}/meta/jars")
54
- assert File.exists?("#{@back_path}/meta/jars/#{@local_path_hash}")
55
- assert File.exists?("#{@back_path}/#{@local_path_hash}")
49
+ assert @backup.file_item.exists?("#{@back_path}/meta/#{@local_path_hash}/#{@timestamp}.yml")
50
+ assert @backup.file_item.exists?("#{@back_path}/meta/jars/#{@local_path_hash}")
51
+ assert @backup.file_item.exists?("#{@back_path}/#{@local_path_hash}")
56
52
 
57
- assert_equal "#{@local_path}/", open(
53
+ assert_equal "#{@local_path}/", @backup.file_item.read_file(
58
54
  "#{@back_path}/meta/jars/#{@local_path_hash}"
59
- ).read.chomp
55
+ )
60
56
 
61
- meta_index = YAML::load open(
57
+ meta_index = YAML::load @backup.file_item.read_file(
62
58
  "#{@back_path}/meta/#{@local_path_hash}/#{@timestamp}.yml"
63
- ).read
59
+ )
64
60
 
65
61
  assert meta_index.has_key? @local_path
66
62
 
67
63
  root_file = File.expand_path '../fixtures/etc/root/file', __FILE__
68
- assert_equal open(root_file).read, open(
64
+ assert_equal open(root_file).read, @backup.file_item.read_file(
69
65
  "#{@back_path}/#{@local_path_hash}/#{@timestamp}/#{Digest::MD5.hexdigest root_file}"
70
- ).read
66
+ )
67
+ end
68
+
69
+ def test_create_with_compress
70
+ @backup.compression = "gzip"
71
+ create_backup!
72
+
73
+ meta_index = YAML::load @backup.file_item.read_file(
74
+ "#{@back_path}/meta/#{@local_path_hash}/#{@timestamp}.yml"
75
+ )
76
+
77
+ assert meta_index.has_key? :compression
78
+ assert_equal meta_index[:compression], 'GZIP'
79
+
80
+ root_file = File.expand_path '../fixtures/etc/root/file', __FILE__
81
+ assert_not_equal open(root_file).read, @backup.file_item.read_file(
82
+ "#{@back_path}/#{@local_path_hash}/#{@timestamp}/#{Digest::MD5.hexdigest root_file}"
83
+ )
84
+ end
85
+
86
+ def test_create_with_purge_previous
87
+ create_backup!
88
+ previous_timestamp = @timestamp.dup
89
+
90
+ sleep 1
91
+ create_backup! false, true
92
+
93
+ versions = @backup.jar_versions @local_path
94
+
95
+ assert_equal versions.length, 1
96
+ assert_equal versions.first, @timestamp
97
+ assert_not_equal @timestamp, previous_timestamp
71
98
  end
72
99
 
73
100
  def test_create_with_crypt
@@ -85,13 +112,13 @@ class TestBackup < Test::Unit::TestCase
85
112
  root_file = File.expand_path '../fixtures/etc/root/file', __FILE__
86
113
  root_file_content = open(root_file).read
87
114
 
88
- root_file_crypt_content = open(
115
+ root_file_crypt_content = @backup.file_item.read_file(
89
116
  "#{@back_path}/#{@local_path_hash}/#{@timestamp}/#{Digest::MD5.hexdigest root_file}"
90
- ).read
117
+ )
91
118
 
92
119
  assert_not_equal root_file_content, root_file_crypt_content
93
120
  assert_equal root_file_content, private_key.decrypt_from_stream(
94
- root_file_crypt_content.chomp
121
+ root_file_crypt_content
95
122
  )
96
123
  end
97
124
 
@@ -167,8 +194,8 @@ class TestBackup < Test::Unit::TestCase
167
194
  root_file_content = open(root_file).read
168
195
 
169
196
  assert_equal root_file_content, "Changed file\n"
170
- assert_equal root_file_content, open(
197
+ assert_equal root_file_content, @backup.file_item.read_file(
171
198
  "#{@back_path}/#{@local_path_hash}/#{@timestamp}/#{Digest::MD5.hexdigest root_file}"
172
- ).read
199
+ )
173
200
  end
174
201
  end
data/test/test_config.rb CHANGED
@@ -1,4 +1,27 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
3
  class TestConfig < Test::Unit::TestCase
4
+ def setup
5
+ @config = EncbsConfig.new
6
+ @config.load File.expand_path('../fixtures/Encbsfile.example', __FILE__)
7
+ end
8
+
9
+ def test_load
10
+ assert @config.colorize
11
+ assert @config.increment
12
+ assert @config.paths.include?('~/.oh-my-zsh')
13
+ assert @config.paths.include?('~/.zshrc')
14
+ assert @config.verbose
15
+
16
+ assert_nil @config.purge
17
+
18
+ assert_equal @config.bucket, 'encbs'
19
+ assert_equal @config.compression, 'gzip'
20
+ assert_equal @config.hostname, 'Yeah'
21
+ assert_equal @config.key, 'AWS_KEY'
22
+ assert_equal @config.secret, 'AWS_SECRET'
23
+ assert_equal @config.size, 2048
24
+ assert_equal @config.timeout, 1000
25
+ assert_equal @config.token, '~/rsa_key.pub'
26
+ end
4
27
  end
metadata CHANGED
@@ -1,114 +1,150 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: encbs
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 2
10
+ version: 0.2.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Timothy Klim
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-06-04 00:00:00.000000000 +04:00
17
+
18
+ date: 2011-06-04 00:00:00 +04:00
13
19
  default_executable: encbs
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ type: :runtime
16
24
  name: fog
17
- requirement: &2155354360 !ruby/object:Gem::Requirement
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
18
26
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
24
36
  prerelease: false
25
- version_requirements: *2155354360
26
- - !ruby/object:Gem::Dependency
37
+ type: :runtime
27
38
  name: slop
28
- requirement: &2155353860 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
29
40
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
35
50
  prerelease: false
36
- version_requirements: *2155353860
37
- - !ruby/object:Gem::Dependency
51
+ type: :runtime
38
52
  name: ruby-progressbar
39
- requirement: &2155353340 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
40
54
  none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
45
- type: :runtime
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ requirement: *id003
63
+ - !ruby/object:Gem::Dependency
46
64
  prerelease: false
47
- version_requirements: *2155353340
48
- - !ruby/object:Gem::Dependency
65
+ type: :runtime
49
66
  name: lzoruby
50
- requirement: &2155352820 !ruby/object:Gem::Requirement
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
51
68
  none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- type: :runtime
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ requirement: *id004
77
+ - !ruby/object:Gem::Dependency
57
78
  prerelease: false
58
- version_requirements: *2155352820
59
- - !ruby/object:Gem::Dependency
79
+ type: :development
60
80
  name: rake
61
- requirement: &2155352300 !ruby/object:Gem::Requirement
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
62
82
  none: false
63
- requirements:
64
- - - =
65
- - !ruby/object:Gem::Version
66
- version: 0.8.4
67
- type: :development
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ hash: 27
87
+ segments:
88
+ - 0
89
+ - 8
90
+ version: "0.8"
91
+ requirement: *id005
92
+ - !ruby/object:Gem::Dependency
68
93
  prerelease: false
69
- version_requirements: *2155352300
70
- - !ruby/object:Gem::Dependency
94
+ type: :development
71
95
  name: bundler
72
- requirement: &2155351700 !ruby/object:Gem::Requirement
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
73
97
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 23
102
+ segments:
103
+ - 1
104
+ - 0
105
+ - 0
77
106
  version: 1.0.0
78
- type: :development
107
+ requirement: *id006
108
+ - !ruby/object:Gem::Dependency
79
109
  prerelease: false
80
- version_requirements: *2155351700
81
- - !ruby/object:Gem::Dependency
110
+ type: :development
82
111
  name: jeweler
83
- requirement: &2155351100 !ruby/object:Gem::Requirement
112
+ version_requirements: &id007 !ruby/object:Gem::Requirement
84
113
  none: false
85
- requirements:
86
- - - ! '>='
87
- - !ruby/object:Gem::Version
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 15
118
+ segments:
119
+ - 1
120
+ - 6
121
+ - 0
88
122
  version: 1.6.0
89
- type: :development
123
+ requirement: *id007
124
+ - !ruby/object:Gem::Dependency
90
125
  prerelease: false
91
- version_requirements: *2155351100
92
- - !ruby/object:Gem::Dependency
126
+ type: :development
93
127
  name: rcov
94
- requirement: &2155350480 !ruby/object:Gem::Requirement
128
+ version_requirements: &id008 !ruby/object:Gem::Requirement
95
129
  none: false
96
- requirements:
97
- - - ! '>='
98
- - !ruby/object:Gem::Version
99
- version: '0'
100
- type: :development
101
- prerelease: false
102
- version_requirements: *2155350480
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
136
+ version: "0"
137
+ requirement: *id008
103
138
  description: Simple backup system for pushing into cloud
104
139
  email: klimtimothy@gmail.com
105
- executables:
140
+ executables:
106
141
  - encbs
107
142
  extensions: []
108
- extra_rdoc_files:
143
+
144
+ extra_rdoc_files:
109
145
  - LICENSE.txt
110
146
  - README.rdoc
111
- files:
147
+ files:
112
148
  - Gemfile
113
149
  - LICENSE.txt
114
150
  - README.rdoc
@@ -127,43 +163,53 @@ files:
127
163
  - lib/crypto.rb
128
164
  - lib/encbsconfig.rb
129
165
  - lib/helpers.rb
166
+ - test/cloudrc.yml.example
167
+ - test/fixtures/Encbsfile.example
130
168
  - test/fixtures/etc/.hide
131
169
  - test/fixtures/etc/root/file
132
170
  - test/fixtures/rsa_key.private
133
171
  - test/fixtures/rsa_key.public
134
172
  - test/helper.rb
135
- - test/test_backup.rb
173
+ - test/test_archive.rb
174
+ - test/test_backup_cloud.rb
136
175
  - test/test_backup_file_item.rb
176
+ - test/test_backup_local.rb
137
177
  - test/test_backup_timestamp.rb
138
178
  - test/test_config.rb
139
179
  - test/test_crypto.rb
140
180
  has_rdoc: true
141
181
  homepage: http://github.com/TimothyKlim/encbs
142
- licenses:
182
+ licenses:
143
183
  - MIT
144
184
  post_install_message:
145
185
  rdoc_options: []
146
- require_paths:
186
+
187
+ require_paths:
147
188
  - lib
148
- required_ruby_version: !ruby/object:Gem::Requirement
189
+ required_ruby_version: !ruby/object:Gem::Requirement
149
190
  none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
154
- segments:
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ hash: 3
195
+ segments:
155
196
  - 0
156
- hash: 59491317708756896
157
- required_rubygems_version: !ruby/object:Gem::Requirement
197
+ version: "0"
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
199
  none: false
159
- requirements:
160
- - - ! '>='
161
- - !ruby/object:Gem::Version
162
- version: '0'
200
+ requirements:
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ hash: 3
204
+ segments:
205
+ - 0
206
+ version: "0"
163
207
  requirements: []
208
+
164
209
  rubyforge_project:
165
- rubygems_version: 1.6.2
210
+ rubygems_version: 1.5.2
166
211
  signing_key:
167
212
  specification_version: 3
168
213
  summary: Simple backup system for pushing into cloud
169
214
  test_files: []
215
+