photocopier 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/Gemfile.lock +18 -8
- data/README.md +3 -0
- data/Rakefile +6 -0
- data/lib/photocopier/ssh.rb +8 -3
- data/lib/photocopier/version.rb +1 -1
- data/photocopier.gemspec +4 -3
- data/spec/ftp_spec.rb +11 -10
- data/spec/shared_examples_for_adapter.rb +5 -5
- data/spec/ssh_spec.rb +26 -23
- metadata +40 -38
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c666cdda914fe37448653eb7d95de7411694b024
|
4
|
+
data.tar.gz: bf1c03551658df3e0e7668f613448bc6b3b2a63f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1354f8fb6fffd1a40aa8f62c6e45fc99ea6bcd59eb779ed71b4c913476ae406633bcb6b4b73e192bb539c690f08e328df5e2a94be6fc4948665844f8a0b9d8a7
|
7
|
+
data.tar.gz: 2a3c645df2cb80092c3d247c4115a4e6cba7bfac4ec005c54905b49de6d76ddcade35e80a90c98cbe9a63797f0e49c21f2b0a1275da5e50e63716f420f76552b
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0-p247
|
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
photocopier (0.0.
|
4
|
+
photocopier (0.0.8)
|
5
5
|
activesupport
|
6
6
|
escape
|
7
7
|
i18n
|
@@ -12,18 +12,24 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activesupport (
|
16
|
-
i18n (~> 0.6)
|
17
|
-
|
15
|
+
activesupport (4.0.0)
|
16
|
+
i18n (~> 0.6, >= 0.6.4)
|
17
|
+
minitest (~> 4.2)
|
18
|
+
multi_json (~> 1.3)
|
19
|
+
thread_safe (~> 0.1)
|
20
|
+
tzinfo (~> 0.3.37)
|
21
|
+
atomic (1.1.13)
|
18
22
|
diff-lcs (1.1.3)
|
19
23
|
escape (0.0.4)
|
20
|
-
i18n (0.6.
|
21
|
-
|
22
|
-
|
24
|
+
i18n (0.6.5)
|
25
|
+
minitest (4.7.5)
|
26
|
+
multi_json (1.7.9)
|
27
|
+
net-scp (1.1.2)
|
23
28
|
net-ssh (>= 2.6.5)
|
24
|
-
net-ssh (2.6.
|
29
|
+
net-ssh (2.6.8)
|
25
30
|
net-ssh-gateway (1.2.0)
|
26
31
|
net-ssh (>= 2.6.5)
|
32
|
+
rake (10.1.0)
|
27
33
|
rspec (2.11.0)
|
28
34
|
rspec-core (~> 2.11.0)
|
29
35
|
rspec-expectations (~> 2.11.0)
|
@@ -32,10 +38,14 @@ GEM
|
|
32
38
|
rspec-expectations (2.11.3)
|
33
39
|
diff-lcs (~> 1.1.3)
|
34
40
|
rspec-mocks (2.11.3)
|
41
|
+
thread_safe (0.1.2)
|
42
|
+
atomic
|
43
|
+
tzinfo (0.3.37)
|
35
44
|
|
36
45
|
PLATFORMS
|
37
46
|
ruby
|
38
47
|
|
39
48
|
DEPENDENCIES
|
40
49
|
photocopier!
|
50
|
+
rake
|
41
51
|
rspec
|
data/README.md
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
Photocopier provides handy FTP/SSH adapters to abstract away file and directory copying.
|
4
4
|
To move directories to/from the remote server, it wraps efficient tools like lftp and rsync.
|
5
5
|
|
6
|
+
[![Build Status](https://travis-ci.org/welaika/photocopier.png?branch=master)](https://travis-ci.org/welaika/photocopier)
|
7
|
+
|
6
8
|
## Installation
|
7
9
|
|
8
10
|
Add this line to your application's Gemfile:
|
@@ -79,6 +81,7 @@ to pass them all).
|
|
79
81
|
user: '',
|
80
82
|
password: '',
|
81
83
|
port: '',
|
84
|
+
rsync_options: '',
|
82
85
|
gateway: {
|
83
86
|
host: '',
|
84
87
|
user: '',
|
data/Rakefile
CHANGED
data/lib/photocopier/ssh.rb
CHANGED
@@ -70,12 +70,10 @@ module Photocopier
|
|
70
70
|
[ stdout, stderr, exit_code ]
|
71
71
|
end
|
72
72
|
|
73
|
-
private
|
74
|
-
|
75
73
|
def rsync(source, destination, exclude = [])
|
76
74
|
command = [
|
77
75
|
"rsync", "--progress", "-e", rsh_arguments, "-rlpt", "--compress",
|
78
|
-
"--omit-dir-times", "--delete"
|
76
|
+
"--omit-dir-times", "--delete", rsync_options
|
79
77
|
]
|
80
78
|
|
81
79
|
exclude.map do |glob|
|
@@ -109,6 +107,8 @@ module Photocopier
|
|
109
107
|
command
|
110
108
|
end
|
111
109
|
|
110
|
+
private
|
111
|
+
|
112
112
|
def gateway
|
113
113
|
opts = gateway_options
|
114
114
|
host = opts.delete(:host)
|
@@ -119,5 +119,10 @@ module Photocopier
|
|
119
119
|
def gateway_options
|
120
120
|
options[:gateway] || {}
|
121
121
|
end
|
122
|
+
|
123
|
+
def rsync_options
|
124
|
+
options[:rsync_options] || ""
|
125
|
+
end
|
126
|
+
|
122
127
|
end
|
123
128
|
end
|
data/lib/photocopier/version.rb
CHANGED
data/photocopier.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
require File.expand_path('../lib/photocopier/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors = ["Stefano Verna"]
|
6
|
-
gem.email = ["stefano.verna@welaika.com"]
|
5
|
+
gem.authors = ["Stefano Verna", "Ju Liu"]
|
6
|
+
gem.email = ["stefano.verna@welaika.com", "ju.liu@welaika.com"]
|
7
7
|
gem.description = %q{Photocopier provides FTP/SSH adapters to abstract away file and directory copying.}
|
8
8
|
gem.summary = %q{Photocopier provides FTP/SSH adapters to abstract away file and directory copying.}
|
9
|
-
gem.homepage = "https://github.com/
|
9
|
+
gem.homepage = "https://github.com/welaika/photocopier"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -22,5 +22,6 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_dependency "net-ssh-gateway"
|
23
23
|
gem.add_dependency "escape"
|
24
24
|
|
25
|
+
gem.add_development_dependency "rake"
|
25
26
|
gem.add_development_dependency "rspec"
|
26
27
|
end
|
data/spec/ftp_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe Photocopier::FTP do
|
|
5
5
|
it_behaves_like "a Photocopier adapter"
|
6
6
|
|
7
7
|
let(:ftp) { Photocopier::FTP.new(options) }
|
8
|
-
let(:options) do { :
|
8
|
+
let(:options) do { host: "host", user: "user", password: "password" } end
|
9
9
|
|
10
10
|
context "#session" do
|
11
11
|
it "retrieves an FTP session" do
|
@@ -14,31 +14,32 @@ describe Photocopier::FTP do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
context "passive mode" do
|
17
|
-
let(:options) do { :
|
17
|
+
let(:options) do { host: "host", passive: true } end
|
18
|
+
let(:ftp) { double('ftp').as_null_object }
|
18
19
|
|
19
20
|
it "should enable passive mode" do
|
20
|
-
Net::FTP.stub(:open).and_return(
|
21
|
+
Net::FTP.stub(:open).and_return(ftp)
|
21
22
|
ftp.session.should be_passive
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
27
|
context "#remote_ftp_url" do
|
27
|
-
let(:options) do { :
|
28
|
+
let(:options) do { host: "host" } end
|
28
29
|
|
29
30
|
it "should build an ftp url" do
|
30
31
|
ftp.send(:remote_ftp_url).should == "ftp://host"
|
31
32
|
end
|
32
33
|
|
33
34
|
context "given an username" do
|
34
|
-
let(:options) do { :
|
35
|
+
let(:options) do { host: "host", user: "user" } end
|
35
36
|
|
36
37
|
it "should add it to the url" do
|
37
38
|
ftp.send(:remote_ftp_url).should == "ftp://user@host"
|
38
39
|
end
|
39
40
|
|
40
41
|
context "given a password" do
|
41
|
-
let(:options) do { :
|
42
|
+
let(:options) do { host: "host", user: "user", password: "password" } end
|
42
43
|
|
43
44
|
it "should add it to the url" do
|
44
45
|
ftp.send(:remote_ftp_url).should == "ftp://user:password@host"
|
@@ -109,10 +110,10 @@ describe Photocopier::FTP do
|
|
109
110
|
|
110
111
|
context "adapter interface" do
|
111
112
|
|
112
|
-
let(:remote_path) {
|
113
|
-
let(:local_path) {
|
114
|
-
let(:file_path) {
|
115
|
-
let(:session) {
|
113
|
+
let(:remote_path) { double }
|
114
|
+
let(:local_path) { double }
|
115
|
+
let(:file_path) { double }
|
116
|
+
let(:session) { double }
|
116
117
|
|
117
118
|
before(:each) do
|
118
119
|
ftp.stub(:session).and_return(session)
|
@@ -20,7 +20,7 @@ shared_examples_for "a Photocopier adapter" do
|
|
20
20
|
|
21
21
|
context "#put" do
|
22
22
|
let(:file_path) { Tempfile.new("tmp").path }
|
23
|
-
let(:remote_path) {
|
23
|
+
let(:remote_path) { double }
|
24
24
|
|
25
25
|
context "given a real file path" do
|
26
26
|
it "should put a file" do
|
@@ -31,7 +31,7 @@ shared_examples_for "a Photocopier adapter" do
|
|
31
31
|
|
32
32
|
context "given a string" do
|
33
33
|
let(:string) { "foobar" }
|
34
|
-
let(:file) {
|
34
|
+
let(:file) { double(path: "path") }
|
35
35
|
|
36
36
|
it "should write it to file, put it and remove the file" do
|
37
37
|
Tempfile.stub(:new).and_return(file)
|
@@ -46,8 +46,8 @@ shared_examples_for "a Photocopier adapter" do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
context "#run" do
|
49
|
-
let(:arg) {
|
50
|
-
let(:command) {
|
49
|
+
let(:arg) { double }
|
50
|
+
let(:command) { double }
|
51
51
|
before(:each) {
|
52
52
|
Escape.stub(:shell_command).with([arg]).and_return(command)
|
53
53
|
}
|
@@ -58,7 +58,7 @@ shared_examples_for "a Photocopier adapter" do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
context "given a logger" do
|
61
|
-
let(:logger) {
|
61
|
+
let(:logger) { double }
|
62
62
|
|
63
63
|
it "should send the command to the logger" do
|
64
64
|
adapter.logger = logger
|
data/spec/ssh_spec.rb
CHANGED
@@ -5,13 +5,13 @@ describe Photocopier::SSH do
|
|
5
5
|
it_behaves_like "a Photocopier adapter"
|
6
6
|
|
7
7
|
let(:ssh) { Photocopier::SSH.new(options) }
|
8
|
-
let(:options) do { :
|
9
|
-
let(:gateway_config) do { :
|
8
|
+
let(:options) do { host: "host", user: "user" } end
|
9
|
+
let(:gateway_config) do { host: "gate_host", user: "gate_user" } end
|
10
10
|
let(:options_with_gateway) do
|
11
11
|
{
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
12
|
+
host: "host",
|
13
|
+
user: "user",
|
14
|
+
gateway: gateway_config
|
15
15
|
}
|
16
16
|
end
|
17
17
|
|
@@ -23,7 +23,7 @@ describe Photocopier::SSH do
|
|
23
23
|
|
24
24
|
context "given a gateway " do
|
25
25
|
let(:options) { options_with_gateway }
|
26
|
-
let(:gateway) {
|
26
|
+
let(:gateway) { double }
|
27
27
|
|
28
28
|
it "goes through it to retrieve a session" do
|
29
29
|
Net::SSH::Gateway.stub(:new).with("gate_host", "gate_user", {}).and_return(gateway)
|
@@ -34,31 +34,31 @@ describe Photocopier::SSH do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
context "#ssh_command" do
|
37
|
-
let(:options) do { :
|
37
|
+
let(:options) do { host: "host" } end
|
38
38
|
|
39
39
|
it "should build an ssh command" do
|
40
|
-
ssh.
|
40
|
+
ssh.ssh_command(options).should == "ssh host"
|
41
41
|
end
|
42
42
|
|
43
43
|
context "given a port" do
|
44
|
-
let(:options) do { :
|
44
|
+
let(:options) do { host: "host", port: "port" } end
|
45
45
|
it "should be added to the command" do
|
46
|
-
ssh.
|
46
|
+
ssh.ssh_command(options).should == "ssh -p port host"
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
context "given a user" do
|
51
|
-
let(:options) do { :
|
51
|
+
let(:options) do { host: "host", user: "user" } end
|
52
52
|
it "should be added to the command" do
|
53
|
-
ssh.
|
53
|
+
ssh.ssh_command(options).should == "ssh user@host"
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
context "given a password" do
|
58
|
-
let(:options) do { :
|
58
|
+
let(:options) do { host: "host", password: "password" } end
|
59
59
|
|
60
60
|
it "sshpass should be added to the command" do
|
61
|
-
ssh.
|
61
|
+
ssh.ssh_command(options).should == "sshpass -p password ssh host"
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -66,15 +66,16 @@ describe Photocopier::SSH do
|
|
66
66
|
context "#rsh_arguments" do
|
67
67
|
it "should build arguments for rsync" do
|
68
68
|
ssh.should_receive(:ssh_command).with(options)
|
69
|
-
ssh.
|
69
|
+
ssh.rsh_arguments
|
70
70
|
end
|
71
71
|
|
72
72
|
context "given a gateway" do
|
73
73
|
let(:options) { options_with_gateway }
|
74
|
+
|
74
75
|
it "should include gateway options" do
|
75
76
|
ssh.should_receive(:ssh_command).with(gateway_config)
|
76
77
|
ssh.should_receive(:ssh_command).with(options)
|
77
|
-
ssh.
|
78
|
+
ssh.rsh_arguments
|
78
79
|
end
|
79
80
|
end
|
80
81
|
end
|
@@ -82,6 +83,7 @@ describe Photocopier::SSH do
|
|
82
83
|
context "#rsync" do
|
83
84
|
before(:each) do
|
84
85
|
ssh.stub(:rsh_arguments).and_return("rsh_arguments")
|
86
|
+
ssh.stub(:rsync_options).and_return("rsync_options")
|
85
87
|
end
|
86
88
|
|
87
89
|
let(:rsync_command) {
|
@@ -94,13 +96,14 @@ describe Photocopier::SSH do
|
|
94
96
|
--compress
|
95
97
|
--omit-dir-times
|
96
98
|
--delete
|
99
|
+
rsync_options
|
97
100
|
)
|
98
101
|
}
|
99
102
|
|
100
103
|
it "should build an rsync command" do
|
101
104
|
rsync_command << "source/" << "destination"
|
102
105
|
ssh.should_receive(:run).with(*rsync_command)
|
103
|
-
ssh.
|
106
|
+
ssh.rsync("source", "destination")
|
104
107
|
end
|
105
108
|
|
106
109
|
context "given an exclude list" do
|
@@ -108,18 +111,18 @@ describe Photocopier::SSH do
|
|
108
111
|
rsync_command << "--exclude" << ".git"
|
109
112
|
rsync_command << "source/" << "destination"
|
110
113
|
ssh.should_receive(:run).with(*rsync_command)
|
111
|
-
ssh.
|
114
|
+
ssh.rsync("source", "destination", [".git"])
|
112
115
|
end
|
113
116
|
end
|
114
117
|
end
|
115
118
|
|
116
119
|
context "adapter interface" do
|
117
120
|
|
118
|
-
let(:remote_path) {
|
119
|
-
let(:local_path) {
|
120
|
-
let(:file_path) {
|
121
|
-
let(:scp) {
|
122
|
-
let(:session) {
|
121
|
+
let(:remote_path) { double }
|
122
|
+
let(:local_path) { double }
|
123
|
+
let(:file_path) { double }
|
124
|
+
let(:scp) { double }
|
125
|
+
let(:session) { double(scp: scp) }
|
123
126
|
|
124
127
|
before(:each) do
|
125
128
|
ssh.stub(:session).and_return(session)
|
metadata
CHANGED
@@ -1,139 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: photocopier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Stefano Verna
|
8
|
+
- Ju Liu
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
|
-
- -
|
18
|
+
- - '>='
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '0'
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - '>='
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '0'
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: i18n
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
|
-
- -
|
32
|
+
- - '>='
|
36
33
|
- !ruby/object:Gem::Version
|
37
34
|
version: '0'
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
|
-
- -
|
39
|
+
- - '>='
|
44
40
|
- !ruby/object:Gem::Version
|
45
41
|
version: '0'
|
46
42
|
- !ruby/object:Gem::Dependency
|
47
43
|
name: net-ssh
|
48
44
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
|
-
- -
|
46
|
+
- - '>='
|
52
47
|
- !ruby/object:Gem::Version
|
53
48
|
version: '0'
|
54
49
|
type: :runtime
|
55
50
|
prerelease: false
|
56
51
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
52
|
requirements:
|
59
|
-
- -
|
53
|
+
- - '>='
|
60
54
|
- !ruby/object:Gem::Version
|
61
55
|
version: '0'
|
62
56
|
- !ruby/object:Gem::Dependency
|
63
57
|
name: net-scp
|
64
58
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
59
|
requirements:
|
67
|
-
- -
|
60
|
+
- - '>='
|
68
61
|
- !ruby/object:Gem::Version
|
69
62
|
version: '0'
|
70
63
|
type: :runtime
|
71
64
|
prerelease: false
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
|
-
- -
|
67
|
+
- - '>='
|
76
68
|
- !ruby/object:Gem::Version
|
77
69
|
version: '0'
|
78
70
|
- !ruby/object:Gem::Dependency
|
79
71
|
name: net-ssh-gateway
|
80
72
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
73
|
requirements:
|
83
|
-
- -
|
74
|
+
- - '>='
|
84
75
|
- !ruby/object:Gem::Version
|
85
76
|
version: '0'
|
86
77
|
type: :runtime
|
87
78
|
prerelease: false
|
88
79
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
80
|
requirements:
|
91
|
-
- -
|
81
|
+
- - '>='
|
92
82
|
- !ruby/object:Gem::Version
|
93
83
|
version: '0'
|
94
84
|
- !ruby/object:Gem::Dependency
|
95
85
|
name: escape
|
96
86
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
87
|
requirements:
|
99
|
-
- -
|
88
|
+
- - '>='
|
100
89
|
- !ruby/object:Gem::Version
|
101
90
|
version: '0'
|
102
91
|
type: :runtime
|
103
92
|
prerelease: false
|
104
93
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
94
|
requirements:
|
107
|
-
- -
|
95
|
+
- - '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rake
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - '>='
|
108
110
|
- !ruby/object:Gem::Version
|
109
111
|
version: '0'
|
110
112
|
- !ruby/object:Gem::Dependency
|
111
113
|
name: rspec
|
112
114
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
115
|
requirements:
|
115
|
-
- -
|
116
|
+
- - '>='
|
116
117
|
- !ruby/object:Gem::Version
|
117
118
|
version: '0'
|
118
119
|
type: :development
|
119
120
|
prerelease: false
|
120
121
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
description: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
127
127
|
copying.
|
128
128
|
email:
|
129
129
|
- stefano.verna@welaika.com
|
130
|
+
- ju.liu@welaika.com
|
130
131
|
executables: []
|
131
132
|
extensions: []
|
132
133
|
extra_rdoc_files: []
|
133
134
|
files:
|
134
135
|
- .gitignore
|
135
136
|
- .rspec
|
137
|
+
- .ruby-version
|
136
138
|
- .rvmrc
|
139
|
+
- .travis.yml
|
137
140
|
- Gemfile
|
138
141
|
- Gemfile.lock
|
139
142
|
- LICENSE
|
@@ -149,29 +152,28 @@ files:
|
|
149
152
|
- spec/ftp_spec.rb
|
150
153
|
- spec/shared_examples_for_adapter.rb
|
151
154
|
- spec/ssh_spec.rb
|
152
|
-
homepage: https://github.com/
|
155
|
+
homepage: https://github.com/welaika/photocopier
|
153
156
|
licenses: []
|
157
|
+
metadata: {}
|
154
158
|
post_install_message:
|
155
159
|
rdoc_options: []
|
156
160
|
require_paths:
|
157
161
|
- lib
|
158
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
163
|
requirements:
|
161
|
-
- -
|
164
|
+
- - '>='
|
162
165
|
- !ruby/object:Gem::Version
|
163
166
|
version: '0'
|
164
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
168
|
requirements:
|
167
|
-
- -
|
169
|
+
- - '>='
|
168
170
|
- !ruby/object:Gem::Version
|
169
171
|
version: '0'
|
170
172
|
requirements: []
|
171
173
|
rubyforge_project:
|
172
|
-
rubygems_version:
|
174
|
+
rubygems_version: 2.0.3
|
173
175
|
signing_key:
|
174
|
-
specification_version:
|
176
|
+
specification_version: 4
|
175
177
|
summary: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
176
178
|
copying.
|
177
179
|
test_files:
|