backup2everbox 0.0.2 → 0.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.
@@ -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
-