backup2everbox 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.3
@@ -1,27 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- backup2everbox (0.0.2)
4
+ backup2everbox (0.0.3)
5
5
  activesupport
6
- backup
6
+ backup (~> 2.0)
7
+ launchy
7
8
  oauth
8
9
  rest-client
10
+ sqlite3
9
11
 
10
12
  GEM
11
13
  remote: http://rubygems.org/
12
14
  specs:
13
- activemodel (3.0.3)
14
- activesupport (= 3.0.3)
15
- builder (~> 2.1.2)
16
- i18n (~> 0.4)
17
- activerecord (3.0.3)
18
- activemodel (= 3.0.3)
19
- activesupport (= 3.0.3)
20
- arel (~> 2.0.2)
21
- tzinfo (~> 0.3.23)
22
- activesupport (3.0.3)
23
- arel (2.0.7)
24
- backup (2.4.4)
15
+ activemodel (3.2.6)
16
+ activesupport (= 3.2.6)
17
+ builder (~> 3.0.0)
18
+ activerecord (3.2.6)
19
+ activemodel (= 3.2.6)
20
+ activesupport (= 3.2.6)
21
+ arel (~> 3.0.2)
22
+ tzinfo (~> 0.3.29)
23
+ activesupport (3.2.6)
24
+ i18n (~> 0.6)
25
+ multi_json (~> 1.0)
26
+ addressable (2.2.8)
27
+ arel (3.0.2)
28
+ backup (2.4.5.1)
25
29
  activerecord (>= 2.3.5)
26
30
  cloudfiles (>= 1.4.7)
27
31
  dropbox (>= 1.1.2)
@@ -32,16 +36,14 @@ GEM
32
36
  net-sftp (>= 2.0.4)
33
37
  net-ssh (>= 2.0.15)
34
38
  pony (>= 0.5)
35
- sqlite3-ruby (>= 1.2.5)
36
- builder (2.1.2)
37
- cloudfiles (1.4.10)
38
- mime-types (>= 1.16)
39
- dropbox (1.2.3)
39
+ builder (3.0.0)
40
+ cloudfiles (1.5.0.1)
41
+ json
42
+ dropbox (1.3.0)
40
43
  json (>= 1.2.0)
41
- mechanize (>= 1.0.0)
42
- multipart-post (>= 1.0)
44
+ multipart-post (>= 1.1.0)
43
45
  oauth (>= 0.3.6)
44
- excon (0.4.0)
46
+ excon (0.14.1)
45
47
  fog (0.3.34)
46
48
  builder
47
49
  excon (>= 0.3.6)
@@ -51,46 +53,47 @@ GEM
51
53
  net-ssh (>= 2.0.23)
52
54
  nokogiri (>= 1.4.4)
53
55
  ruby-hmac
54
- formatador (0.0.16)
55
- hirb (0.3.6)
56
- i18n (0.5.0)
57
- json (1.5.1)
56
+ formatador (0.2.3)
57
+ hirb (0.6.2)
58
+ i18n (0.6.0)
59
+ json (1.6.6)
58
60
  json_pure (1.4.6)
59
- mail (2.2.15)
60
- activesupport (>= 2.3.6)
61
+ launchy (2.1.0)
62
+ addressable (~> 2.2.6)
63
+ mail (2.4.4)
61
64
  i18n (>= 0.4.0)
62
65
  mime-types (~> 1.16)
63
66
  treetop (~> 1.4.8)
64
- mechanize (1.0.0)
65
- nokogiri (>= 1.2.1)
66
- mime-types (1.16)
67
- multipart-post (1.1.0)
67
+ mime-types (1.19)
68
+ multi_json (1.3.6)
69
+ multipart-post (1.1.5)
68
70
  net-scp (1.0.4)
69
71
  net-ssh (>= 1.99.1)
70
72
  net-sftp (2.0.5)
71
73
  net-ssh (>= 2.0.9)
72
- net-ssh (2.1.0)
73
- nokogiri (1.4.4)
74
- oauth (0.4.4)
75
- polyglot (0.3.1)
76
- pony (1.1)
74
+ net-ssh (2.5.2)
75
+ nokogiri (1.5.4)
76
+ oauth (0.4.6)
77
+ polyglot (0.3.3)
78
+ pony (1.4)
77
79
  mail (> 2.0)
78
- rest-client (1.6.1)
80
+ rake (0.8.7)
81
+ rdoc (3.12)
82
+ json (~> 1.4)
83
+ rest-client (1.6.7)
79
84
  mime-types (>= 1.16)
80
85
  ruby-hmac (0.4.0)
81
- sqlite3 (1.3.3)
82
- sqlite3-ruby (1.3.3)
83
- sqlite3 (>= 1.3.3)
84
- treetop (1.4.9)
86
+ sqlite3 (1.3.6)
87
+ treetop (1.4.10)
88
+ polyglot
85
89
  polyglot (>= 0.3.1)
86
- tzinfo (0.3.24)
90
+ tzinfo (0.3.33)
87
91
 
88
92
  PLATFORMS
89
93
  ruby
90
94
 
91
95
  DEPENDENCIES
92
- activesupport
93
- backup
94
96
  backup2everbox!
95
- oauth
96
- rest-client
97
+ bundler (>= 1.0.0)
98
+ rake (= 0.8.7)
99
+ rdoc
@@ -1,3 +1,7 @@
1
+ === 0.0.3 / 2012-06-22
2
+ * only working with backup-2
3
+ * old everbox auth method no longer works
4
+
1
5
  === 0.0.2 / 2011-02-02
2
6
  * clean log
3
7
  * support "rake rdoc"
@@ -1,7 +1,11 @@
1
1
  = 简介
2
2
 
3
+ {<img src="https://secure.travis-ci.org/lidaobing/backup2everbox.png?branch=master" alt="Build Status" />}[http://travis-ci.org/lidaobing/backup2everbox]
4
+
3
5
  备份你的数据、文件到 EverBox
4
6
 
7
+ 文档: http://rubydoc.info/github/lidaobing/backup2everbox/master/frames
8
+
5
9
  = 使用方法
6
10
 
7
11
  1. 注册一个 EverBox 帐号: http://www.everbox.com/ , 注意必须注册盛大通行证帐号,
@@ -11,13 +15,27 @@
11
15
 
12
16
  3. 运行 sudo backup --setup
13
17
 
14
- 4. 修改 /opt/backup/config/backup.rb, 改为如下的形式
18
+ 4. 运行 backup2everbox, 得到认证码,输出如下所示
19
+
20
+ open url in your browser: http://account.everbox.com/...
21
+ please input the verification code: 123456
22
+ add following code to your /opt/backup/config/backup.rb
23
+ ##################################################
24
+ storage :everbox do
25
+ access_key_id '1234567890abcdefgh'
26
+ secret_access_key 'hgfedcba0987654321'
27
+ path '/backups'
28
+ end
29
+ ##################################################
30
+
31
+
32
+ 5. 修改 /opt/backup/config/backup.rb, 改为如下的形式
15
33
 
16
34
  gem 'backup2everbox'
17
35
  require 'backup2everbox'
18
-
36
+
19
37
  backup 'mysql-backup-everbox' do
20
-
38
+
21
39
  adapter :mysql do
22
40
  user 'USERNAME'
23
41
  password 'PASSWORD'
@@ -28,22 +46,20 @@
28
46
  port '3306'
29
47
  end
30
48
  end
31
-
49
+
32
50
  storage :everbox do
33
- username 'YOUR SDO USERNAME'
34
- password 'YOUR SDO PASSWORD'
51
+ access_key_id '1234567890abcdefgh'
52
+ secret_access_key 'hgfedcba0987654321'
35
53
  path '/backups'
36
54
  end
37
-
55
+
38
56
  keep_backups 10
39
57
  encrypt_with_password false
40
58
  notify false
41
-
42
- end
43
-
44
- 5. 运行 sudo backup -r mysql-backup-everbox
45
59
 
46
- 6. backup 支持备份目录,数据库等多种源,并且支持非对称密钥加密来保护数据安全,
47
- 具体可以参考 backup 的文档: https://github.com/meskyanichi/backup
60
+ end
48
61
 
62
+ 6. 运行 sudo backup -r mysql-backup-everbox
49
63
 
64
+ 7. backup 支持备份目录,数据库等多种源,并且支持非对称密钥加密来保护数据安全,
65
+ 具体可以参考 backup 的文档: https://github.com/meskyanichi/backup/tree/backup-2
data/Rakefile CHANGED
@@ -1,9 +1,14 @@
1
+ require 'rubygems'
1
2
  require 'bundler'
2
3
  Bundler::GemHelper.install_tasks
3
- require 'rake/rdoctask'
4
+ require 'rdoc'
5
+ require 'rdoc/task'
6
+
4
7
  ENV["RDOC_OPTS"] ||= "-c UTF-8"
5
- Rake::RDocTask.new do |rd|
8
+ RDoc::Task.new do |rd|
6
9
  rd.main = "README.rdoc"
7
10
  rd.rdoc_files.include("README.rdoc", "History.rdoc", "lib/**/*.rb")
8
11
  rd.options << "--charset" << "UTF-8"
9
12
  end
13
+
14
+ task :default => :rdoc
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["LI Daobing"]
10
10
  s.email = ["lidaobing@gmail.com"]
11
- s.homepage = "http://rubygems.org/gems/backup2everbox"
11
+ s.homepage = "https://github.com/lidaobing/backup2everbox"
12
12
  s.summary = %q{backup to EverBox}
13
13
  s.description = %q{backup to EverBox}
14
14
 
@@ -17,10 +17,15 @@ Gem::Specification.new do |s|
17
17
  '--charset' << 'UTF-8'
18
18
  s.extra_rdoc_files = ['README.rdoc', 'History.rdoc']
19
19
 
20
- s.add_dependency 'backup'
20
+ s.add_dependency 'backup', '~> 2.0'
21
21
  s.add_dependency 'activesupport'
22
22
  s.add_dependency 'oauth'
23
23
  s.add_dependency 'rest-client'
24
+ s.add_dependency 'launchy'
25
+ s.add_dependency 'sqlite3'
26
+ s.add_development_dependency "bundler", ">= 1.0.0"
27
+ s.add_development_dependency 'rake', "0.8.7"
28
+ s.add_development_dependency 'rdoc'
24
29
 
25
30
  s.files = `git ls-files`.split("\n")
26
31
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "backup2everbox/cli"
4
+
5
+ Backup2everbox::CLI.execute(STDOUT, STDIN, STDERR, ARGV)
@@ -11,31 +11,21 @@ module Backup
11
11
 
12
12
  class Session
13
13
  DEFAULT_OPTIONS = {
14
- :api_key => 'GW4YtvBpPwHfY0rCSf2xeOqn7tT0YH2O4zftXCOM',
15
- :secret_access_key => 'xlKLpZLVSe0Gk6q4w05PsDpzjEbV8SyE71exgz1i',
14
+ :consumer_key => 'GW4YtvBpPwHfY0rCSf2xeOqn7tT0YH2O4zftXCOM',
15
+ :consumer_secret => 'xlKLpZLVSe0Gk6q4w05PsDpzjEbV8SyE71exgz1i',
16
16
  :oauth_site => 'http://account.everbox.com',
17
17
  :fs_site => 'http://fs.everbox.com',
18
18
  :chunk_size => 1024*1024*4
19
19
  }
20
- attr_accessor :authorizing_user, :authorizing_password, :access_token
20
+ attr_accessor :authorizing_token, :authorizing_secret, :access_token
21
21
  def initialize(opts={})
22
22
  @options = DEFAULT_OPTIONS.merge(opts || {})
23
- @consumer = OAuth::Consumer.new @options[:api_key], @options[:secret_access_key], :site => 'http://account.everbox.com'
23
+ @consumer = OAuth::Consumer.new @options[:consumer_key], @options[:consumer_secret], :site => 'http://account.everbox.com'
24
24
  end
25
25
 
26
26
  def authorize!
27
- response = @consumer.request(:post, "/oauth/quick_token?provider=sdo&login=#{CGI.escape @authorizing_user}&password=#{CGI.escape @authorizing_password}")
28
- if response.code.to_i != 200
29
- raise "login failed: #{response.body}"
30
- end
31
-
32
- d = CGI.parse(response.body).inject({}) do |h,(k,v)|
33
- h[k.strip.to_sym] = v.first
34
- h[k.strip] = v.first
35
- h
36
- end
37
-
38
- @access_token = OAuth::AccessToken.from_hash(@consumer, d)
27
+ @access_token = OAuth::AccessToken.from_hash(@consumer, {:oauth_token => authorizing_token, :oauth_token_secret => authorizing_secret})
28
+ puts @access_token.inspect
39
29
  end
40
30
 
41
31
  def authorized?
@@ -61,7 +51,7 @@ module Backup
61
51
  elsif stat == :file
62
52
  raise "remote path is a file, failed to backup"
63
53
  end
64
-
54
+
65
55
  basename = File.basename(filename)
66
56
  target_path = File.expand_path(basename, remote_path)
67
57
  keys = calc_digests(filename)
@@ -118,7 +108,7 @@ module Backup
118
108
  time ||= Time.now
119
109
  (time.to_i * 1000 * 1000 * 10).to_s
120
110
  end
121
-
111
+
122
112
  def mkdir_p(path)
123
113
  return if path == "/"
124
114
  mkdir_p(File.expand_path("..", path))
@@ -187,11 +177,11 @@ module Backup
187
177
  res << urlsafe_base64(Digest::SHA1.digest(data))
188
178
  end
189
179
  end
190
- res
180
+ res
191
181
  end
192
182
  end
193
183
 
194
- attr_accessor :adapter, :procedure, :final_file, :tmp_path, :api_key, :secret_access_key, :username, :password, :path
184
+ attr_accessor :adapter, :procedure, :final_file, :tmp_path, :api_key, :secret_access_key, :access_key_id, :path
195
185
 
196
186
  def initialize(adapter=false)
197
187
  if adapter
@@ -215,8 +205,8 @@ module Backup
215
205
  opts[:secret_access_key] = secret_access_key unless secret_access_key.nil?
216
206
  @session ||= Session.new(opts)
217
207
  unless @session.authorized?
218
- @session.authorizing_user = username
219
- @session.authorizing_password = password
208
+ @session.authorizing_token = access_key_id
209
+ @session.authorizing_secret = secret_access_key
220
210
  @session.authorize!
221
211
  end
222
212
 
@@ -239,7 +229,7 @@ module Backup
239
229
  private
240
230
 
241
231
  def load_storage_configuration_attributes(static=false)
242
- %w(api_key secret_access_key username password path).each do |attribute|
232
+ %w(access_key_id secret_access_key path).each do |attribute|
243
233
  if static
244
234
  send("#{attribute}=", procedure.get_storage_configuration.attributes[attribute])
245
235
  else
@@ -0,0 +1,50 @@
1
+ require 'oauth'
2
+ require 'launchy'
3
+
4
+ module Backup2everbox
5
+ class CLI
6
+ DEFAULT_OPTIONS = {
7
+ :consumer_key => 'GW4YtvBpPwHfY0rCSf2xeOqn7tT0YH2O4zftXCOM',
8
+ :consumer_secret => 'xlKLpZLVSe0Gk6q4w05PsDpzjEbV8SyE71exgz1i',
9
+ :oauth_site => 'http://account.everbox.com',
10
+ :fs_site => 'http://fs.everbox.com',
11
+ :proxy => nil
12
+ }
13
+
14
+ def self.execute(stdout, stdin, stderr, arguments = [])
15
+ self.new.execute(stdout, stdin, stderr, arguments)
16
+ end
17
+
18
+ def initialize(opts={})
19
+ opts ||= {}
20
+ @options = DEFAULT_OPTIONS.merge(opts)
21
+ end
22
+
23
+ def execute(stdout, stdin, stderr, arguments = [])
24
+ request_token = consumer.get_request_token
25
+ url = request_token.authorize_url
26
+ puts "open url in your browser: #{url}"
27
+ Launchy.open(url)
28
+ STDOUT.write "please input the verification code: "
29
+ STDOUT.flush
30
+ verification_code = STDIN.readline.strip
31
+ access_token = request_token.get_access_token :oauth_verifier => verification_code
32
+ puts "add following code to your /opt/backup/config/backup.rb"
33
+ puts "#" * 50
34
+ puts "storage :everbox do"
35
+ puts " access_key_id '#{access_token.token}'"
36
+ puts " secret_access_key '#{access_token.secret}'"
37
+ puts " path '/backups'"
38
+ puts "end"
39
+ puts "#" * 50
40
+ end
41
+
42
+ private
43
+ def consumer
44
+ OAuth::Consumer.new @options[:consumer_key], @options[:consumer_secret], {
45
+ :site => @options[:oauth_site],
46
+ :proxy => @options[:proxy]
47
+ }
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module Backup2everbox
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,91 +1,172 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: backup2everbox
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - LI Daobing
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-02 00:00:00 +08:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-06-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: backup
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: activesupport
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: oauth
51
39
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: oauth
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
61
54
  type: :runtime
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
64
63
  name: rest-client
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: launchy
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
65
87
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: sqlite3
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
75
102
  type: :runtime
76
- version_requirements: *id004
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: bundler
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 1.0.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.0.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - '='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.8.7
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - '='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.8.7
142
+ - !ruby/object:Gem::Dependency
143
+ name: rdoc
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
77
158
  description: backup to EverBox
78
- email:
159
+ email:
79
160
  - lidaobing@gmail.com
80
- executables: []
81
-
161
+ executables:
162
+ - backup2everbox
82
163
  extensions: []
83
-
84
- extra_rdoc_files:
164
+ extra_rdoc_files:
85
165
  - README.rdoc
86
166
  - History.rdoc
87
- files:
167
+ files:
88
168
  - .gitignore
169
+ - .travis.yml
89
170
  - Gemfile
90
171
  - Gemfile.lock
91
172
  - History.rdoc
@@ -93,47 +174,39 @@ files:
93
174
  - Rakefile
94
175
  - TODO
95
176
  - backup2everbox.gemspec
177
+ - bin/backup2everbox
96
178
  - lib/backup/connection/everbox.rb
97
179
  - lib/backup/record/everbox.rb
98
180
  - lib/backup/storage/everbox.rb
99
181
  - lib/backup2everbox.rb
182
+ - lib/backup2everbox/cli.rb
100
183
  - lib/backup2everbox/version.rb
101
- has_rdoc: true
102
- homepage: http://rubygems.org/gems/backup2everbox
184
+ homepage: https://github.com/lidaobing/backup2everbox
103
185
  licenses: []
104
-
105
186
  post_install_message:
106
- rdoc_options:
187
+ rdoc_options:
107
188
  - --main
108
189
  - README.rdoc
109
190
  - --charset
110
191
  - UTF-8
111
- require_paths:
192
+ require_paths:
112
193
  - lib
113
- required_ruby_version: !ruby/object:Gem::Requirement
194
+ required_ruby_version: !ruby/object:Gem::Requirement
114
195
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
120
- - 0
121
- version: "0"
122
- required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
201
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
129
- - 0
130
- version: "0"
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
131
206
  requirements: []
132
-
133
207
  rubyforge_project: backup2everbox
134
- rubygems_version: 1.3.7
208
+ rubygems_version: 1.8.23
135
209
  signing_key:
136
210
  specification_version: 3
137
211
  summary: backup to EverBox
138
212
  test_files: []
139
-