photocopier 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +33 -0
- data/.rubocop.yml +37 -11
- data/.ruby-version +1 -1
- data/README.md +2 -2
- data/Rakefile +5 -5
- data/lib/photocopier.rb +5 -6
- data/lib/photocopier/adapter.rb +4 -5
- data/lib/photocopier/ftp.rb +12 -10
- data/lib/photocopier/ftp/session.rb +17 -16
- data/lib/photocopier/ssh.rb +19 -17
- data/lib/photocopier/version.rb +1 -1
- data/photocopier.gemspec +31 -23
- metadata +67 -57
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 777855dbc8e43b1f8047e8e4e1216f033157362dec70b88e90f36db3ba74f260
|
4
|
+
data.tar.gz: c40c5471fe3896b29ef9d8d3dd719083ad4a4d09dfc85dcb297cfffa69f8ce20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e98bc1a0f6c4c37bce0fd18a112cb8f96504093641bfe52a917bcf89b45b20f8f7afa61db9aea2d8fec6bbfbdb970293110599d4575f511b70d1b3748ab32ea5
|
7
|
+
data.tar.gz: 149f452aef5032c1927083e975f5714b20b829b026954d5f33e9e990eafe7d5529e271f0039caa1139748b0af48601acc21b5cfc33a0c2ff7033a75b83930b60
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
2
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
3
|
+
|
4
|
+
name: Ruby
|
5
|
+
|
6
|
+
on:
|
7
|
+
push:
|
8
|
+
branches: [ master ]
|
9
|
+
pull_request:
|
10
|
+
branches: [ master ]
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
ruby: [2.6.0, 2.7.1]
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
- name: Set up Ruby
|
23
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
24
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
25
|
+
# uses: ruby/setup-ruby@v1
|
26
|
+
uses: ruby/setup-ruby@21351ecc0a7c196081abca5dc55b08f085efe09a
|
27
|
+
with:
|
28
|
+
ruby-version: ${{ matrix.ruby }}
|
29
|
+
bundler-cache: true
|
30
|
+
- name: Install dependencies
|
31
|
+
run: bundle install
|
32
|
+
- name: Run tests
|
33
|
+
run: bundle exec rake
|
data/.rubocop.yml
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
Rails/Output:
|
5
|
-
Enabled: false
|
1
|
+
inherit_mode:
|
2
|
+
merge:
|
3
|
+
- Exclude
|
6
4
|
|
7
5
|
AllCops:
|
8
|
-
TargetRubyVersion: 2.
|
6
|
+
TargetRubyVersion: 2.6
|
9
7
|
DisplayCopNames: true
|
10
8
|
DisplayStyleGuide: true
|
11
9
|
|
12
10
|
Exclude:
|
13
11
|
- 'bin/*'
|
14
12
|
|
15
|
-
|
13
|
+
Layout/LineLength:
|
16
14
|
Max: 100
|
17
15
|
|
18
16
|
Metrics/MethodLength:
|
@@ -25,6 +23,7 @@ Metrics/BlockLength:
|
|
25
23
|
Exclude:
|
26
24
|
- 'spec/**/*_spec.rb'
|
27
25
|
- 'spec/factories/*.rb'
|
26
|
+
- 'spec/support/shared_examples/*.rb'
|
28
27
|
- '*.gemspec'
|
29
28
|
|
30
29
|
Metrics/CyclomaticComplexity:
|
@@ -33,10 +32,6 @@ Metrics/CyclomaticComplexity:
|
|
33
32
|
Metrics/PerceivedComplexity:
|
34
33
|
Max: 10
|
35
34
|
|
36
|
-
Style/StringLiterals:
|
37
|
-
Enabled: false
|
38
|
-
EnforcedStyle: double_quotes
|
39
|
-
|
40
35
|
Style/Documentation:
|
41
36
|
Enabled: false
|
42
37
|
|
@@ -45,3 +40,34 @@ Style/FrozenStringLiteralComment:
|
|
45
40
|
|
46
41
|
Metrics/AbcSize:
|
47
42
|
Max: 40
|
43
|
+
|
44
|
+
Lint/DuplicateBranch: # (new in 1.3)
|
45
|
+
Enabled: true
|
46
|
+
Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
|
47
|
+
Enabled: true
|
48
|
+
Lint/EmptyBlock: # (new in 1.1)
|
49
|
+
Enabled: true
|
50
|
+
Lint/EmptyClass: # (new in 1.3)
|
51
|
+
Enabled: true
|
52
|
+
Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
|
53
|
+
Enabled: true
|
54
|
+
Lint/ToEnumArguments: # (new in 1.1)
|
55
|
+
Enabled: true
|
56
|
+
Lint/UnexpectedBlockArity: # (new in 1.5)
|
57
|
+
Enabled: true
|
58
|
+
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
|
59
|
+
Enabled: true
|
60
|
+
Style/ArgumentsForwarding: # (new in 1.1)
|
61
|
+
Enabled: true
|
62
|
+
Style/CollectionCompact: # (new in 1.2)
|
63
|
+
Enabled: true
|
64
|
+
Style/DocumentDynamicEvalDefinition: # (new in 1.1)
|
65
|
+
Enabled: true
|
66
|
+
Style/NegatedIfElseCondition: # (new in 1.2)
|
67
|
+
Enabled: true
|
68
|
+
Style/NilLambda: # (new in 1.3)
|
69
|
+
Enabled: true
|
70
|
+
Style/RedundantArgument: # (new in 1.4)
|
71
|
+
Enabled: true
|
72
|
+
Style/SwapValues: # (new in 1.1)
|
73
|
+
Enabled: true
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.0
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
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
|
-
|
6
|
+
![Ruby](https://github.com/welaika/photocopier/workflows/Ruby/badge.svg)
|
7
7
|
|
8
8
|
## Prerequisites
|
9
9
|
|
@@ -134,4 +134,4 @@ made with ❤️ and ☕️ by [weLaika](http://dev.welaika.com)
|
|
134
134
|
|
135
135
|
(The MIT License)
|
136
136
|
|
137
|
-
Copyright © 2012-
|
137
|
+
Copyright © 2012-2019 [weLaika](https://dev.welaika.com)
|
data/Rakefile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
require 'rubocop/rake_task'
|
4
4
|
|
5
5
|
RSpec::Core::RakeTask.new(:spec)
|
6
6
|
task default: :spec
|
7
|
-
|
8
|
-
|
7
|
+
RuboCop::RakeTask.new(:rubocop)
|
8
|
+
task default: :rubocop
|
data/lib/photocopier.rb
CHANGED
@@ -6,12 +6,11 @@ require 'net/sftp'
|
|
6
6
|
require 'net/ssh'
|
7
7
|
require 'net/ssh/gateway'
|
8
8
|
require 'net/scp'
|
9
|
-
require 'fileutils'
|
10
9
|
require 'shellwords'
|
11
|
-
require
|
12
|
-
require
|
10
|
+
require 'active_support'
|
11
|
+
require 'active_support/core_ext'
|
13
12
|
|
14
13
|
require 'photocopier/adapter'
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
14
|
+
require 'photocopier/ssh'
|
15
|
+
require 'photocopier/ftp'
|
16
|
+
require 'photocopier/ftp/session'
|
data/lib/photocopier/adapter.rb
CHANGED
@@ -3,7 +3,7 @@ module Photocopier
|
|
3
3
|
attr_accessor :logger
|
4
4
|
|
5
5
|
def put(file_path_or_string, remote_path)
|
6
|
-
if File.
|
6
|
+
if File.exist? file_path_or_string
|
7
7
|
put_file(file_path_or_string, remote_path)
|
8
8
|
else
|
9
9
|
file = Tempfile.new('put')
|
@@ -15,9 +15,11 @@ module Photocopier
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def put_file(file_path, remote_path); end
|
18
|
+
|
18
19
|
def put_directory(local_path, remote_path, exclude = []); end
|
19
20
|
|
20
21
|
def get(remote_path, file_path = nil); end
|
22
|
+
|
21
23
|
def get_directory(remote_path, local_path, exclude = []); end
|
22
24
|
|
23
25
|
def delete(remote_path); end
|
@@ -25,11 +27,8 @@ module Photocopier
|
|
25
27
|
protected
|
26
28
|
|
27
29
|
def run(command)
|
28
|
-
if logger.present?
|
29
|
-
logger.info command
|
30
|
-
end
|
30
|
+
logger.info command if logger.present?
|
31
31
|
system command
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
35
34
|
end
|
data/lib/photocopier/ftp.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
module Photocopier
|
2
2
|
class FTP < Adapter
|
3
|
+
# rubocop:disable Lint/MissingSuper
|
3
4
|
def initialize(options = {})
|
4
5
|
@options = options
|
5
6
|
end
|
7
|
+
# rubocop:enable Lint/MissingSuper
|
6
8
|
|
7
9
|
def options
|
8
10
|
@options.clone
|
@@ -49,37 +51,37 @@ module Photocopier
|
|
49
51
|
remote = Shellwords.escape(remote)
|
50
52
|
local = Shellwords.escape(local)
|
51
53
|
command = [
|
52
|
-
|
54
|
+
'set ftp:list-options -a',
|
53
55
|
"set ftp:passive-mode #{options[:passive] || 'false'}",
|
54
|
-
|
56
|
+
'set cmd:fail-exit true',
|
55
57
|
"open -p #{port || inferred_port} #{remote_ftp_url}",
|
56
58
|
"find -d 1 #{remote} || mkdir -p #{remote}",
|
57
59
|
"lcd #{local}",
|
58
60
|
"cd #{remote}",
|
59
61
|
lftp_mirror_arguments(reverse, exclude)
|
60
|
-
].join(
|
62
|
+
].join('; ')
|
61
63
|
|
62
64
|
run "lftp -c '#{command}'"
|
63
65
|
end
|
64
66
|
|
65
67
|
def remote_ftp_url
|
66
|
-
url = options[:scheme].dup.presence ||
|
67
|
-
url <<
|
68
|
+
url = options[:scheme].dup.presence || 'ftp'
|
69
|
+
url << '://'
|
68
70
|
if options[:user].present?
|
69
71
|
url << CGI.escape(options[:user])
|
70
72
|
url << ":#{CGI.escape(options[:password])}" if options[:password].present?
|
71
|
-
url <<
|
73
|
+
url << '@'
|
72
74
|
end
|
73
75
|
url << options[:host]
|
74
76
|
url
|
75
77
|
end
|
76
78
|
|
77
79
|
def lftp_mirror_arguments(reverse, exclude = [])
|
78
|
-
mirror =
|
79
|
-
|
80
|
-
mirror <<
|
80
|
+
mirror = 'mirror --delete --use-cache --verbose' \
|
81
|
+
' --no-perms --allow-suid --no-umask --parallel=5'
|
82
|
+
mirror << ' --reverse --dereference' if reverse
|
81
83
|
exclude.each do |glob|
|
82
|
-
mirror << " --exclude-glob #{glob}" # NOTE do not use Shellwords.escape here
|
84
|
+
mirror << " --exclude-glob #{glob}" # NOTE: do not use Shellwords.escape here
|
83
85
|
end
|
84
86
|
mirror
|
85
87
|
end
|
@@ -4,22 +4,23 @@ module Photocopier
|
|
4
4
|
def initialize(options)
|
5
5
|
@scheme = options[:scheme]
|
6
6
|
|
7
|
-
if sftp?
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
7
|
+
@session = if sftp?
|
8
|
+
Net::SFTP.start(
|
9
|
+
options[:host],
|
10
|
+
options[:user],
|
11
|
+
password: options[:password],
|
12
|
+
port: options[:port] || 22
|
13
|
+
)
|
14
|
+
else
|
15
|
+
Net::FTP.open(
|
16
|
+
options[:host],
|
17
|
+
username: options[:user],
|
18
|
+
password: options[:password],
|
19
|
+
port: options[:port] || 21,
|
20
|
+
passive: options[:passive] || false,
|
21
|
+
ssl: @scheme == 'ftps' && true || false
|
22
|
+
)
|
23
|
+
end
|
23
24
|
end
|
24
25
|
|
25
26
|
def get(remote, local)
|
data/lib/photocopier/ssh.rb
CHANGED
@@ -2,11 +2,13 @@ module Photocopier
|
|
2
2
|
class SSH < Adapter
|
3
3
|
attr_reader :gateway_options, :rsync_options
|
4
4
|
|
5
|
+
# rubocop:disable Lint/MissingSuper
|
5
6
|
def initialize(options = {})
|
6
7
|
@options = options
|
7
8
|
@gateway_options = options.delete(:gateway)
|
8
9
|
@rsync_options = options.delete(:rsync_options)
|
9
10
|
end
|
11
|
+
# rubocop:enable Lint/MissingSuper
|
10
12
|
|
11
13
|
def options
|
12
14
|
@options.clone
|
@@ -26,18 +28,18 @@ module Photocopier
|
|
26
28
|
|
27
29
|
def get_directory(remote_path, local_path, exclude = [], includes = [])
|
28
30
|
FileUtils.mkdir_p(local_path)
|
29
|
-
remote_path <<
|
31
|
+
remote_path << '/' unless remote_path.end_with?('/')
|
30
32
|
rsync ":#{remote_path}", local_path, exclude, includes
|
31
33
|
end
|
32
34
|
|
33
35
|
def put_directory(local_path, remote_path, exclude = [], includes = [])
|
34
|
-
local_path <<
|
36
|
+
local_path << '/' unless local_path.end_with?('/')
|
35
37
|
rsync local_path.to_s, ":#{remote_path}", exclude, includes
|
36
38
|
end
|
37
39
|
|
38
40
|
def exec!(cmd)
|
39
|
-
stdout =
|
40
|
-
stderr =
|
41
|
+
stdout = ''
|
42
|
+
stderr = ''
|
41
43
|
exit_code = nil
|
42
44
|
session.open_channel do |channel|
|
43
45
|
channel.exec(cmd) do |_ch, _success|
|
@@ -47,7 +49,7 @@ module Photocopier
|
|
47
49
|
channel.on_extended_data do |_ch, _type, data|
|
48
50
|
stderr << data
|
49
51
|
end
|
50
|
-
channel.on_request(
|
52
|
+
channel.on_request('exit-status') do |_ch, data|
|
51
53
|
exit_code = data.read_long
|
52
54
|
end
|
53
55
|
end
|
@@ -72,14 +74,14 @@ module Photocopier
|
|
72
74
|
|
73
75
|
def rsync_command
|
74
76
|
command = [
|
75
|
-
|
76
|
-
|
77
|
-
|
77
|
+
'rsync',
|
78
|
+
'--progress',
|
79
|
+
'-e',
|
78
80
|
"'#{rsh_arguments}'",
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
81
|
+
'-rlpt',
|
82
|
+
'--compress',
|
83
|
+
'--omit-dir-times',
|
84
|
+
'--delete'
|
83
85
|
]
|
84
86
|
command.concat Shellwords.split(rsync_options).map(&:shellescape) if rsync_options
|
85
87
|
command.compact
|
@@ -89,30 +91,30 @@ module Photocopier
|
|
89
91
|
command = rsync_command
|
90
92
|
|
91
93
|
includes.each do |glob|
|
92
|
-
command <<
|
94
|
+
command << '--include'
|
93
95
|
command << Shellwords.escape(glob)
|
94
96
|
end
|
95
97
|
|
96
98
|
exclude.each do |glob|
|
97
|
-
command <<
|
99
|
+
command << '--exclude'
|
98
100
|
command << Shellwords.escape(glob)
|
99
101
|
end
|
100
102
|
|
101
103
|
command << Shellwords.escape(source)
|
102
104
|
command << Shellwords.escape(destination)
|
103
105
|
|
104
|
-
run command.join(
|
106
|
+
run command.join(' ')
|
105
107
|
end
|
106
108
|
|
107
109
|
def rsh_arguments
|
108
110
|
arguments = []
|
109
111
|
arguments << ssh_command(gateway_options) if gateway_options
|
110
112
|
arguments << ssh_command(options)
|
111
|
-
arguments.join(
|
113
|
+
arguments.join(' ')
|
112
114
|
end
|
113
115
|
|
114
116
|
def ssh_command(opts)
|
115
|
-
command =
|
117
|
+
command = 'ssh '
|
116
118
|
command << "-p #{opts[:port]} " if opts[:port].present?
|
117
119
|
command << "#{opts[:user]}@" if opts[:user].present?
|
118
120
|
command << opts[:host]
|
data/lib/photocopier/version.rb
CHANGED
data/photocopier.gemspec
CHANGED
@@ -1,34 +1,42 @@
|
|
1
|
-
lib = File.expand_path('
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
3
|
+
require 'photocopier/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
6
|
+
spec.name = 'photocopier'
|
7
7
|
spec.version = Photocopier::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
spec.email = [
|
8
|
+
spec.authors = ['Stefano Verna', 'Ju Liu', 'Fabrizio Monti']
|
9
|
+
spec.email = ['stefano.verna@welaika.com', 'ju.liu@welaika.com',
|
10
|
+
'fabrizio.monti@welaika.com']
|
10
11
|
|
11
|
-
spec.summary = 'Photocopier provides FTP/SSH adapters to abstract away file and
|
12
|
-
|
13
|
-
spec.
|
14
|
-
|
12
|
+
spec.summary = 'Photocopier provides FTP/SSH adapters to abstract away file and ' \
|
13
|
+
'directory copying.'
|
14
|
+
spec.description = 'Photocopier provides FTP/SSH adapters to abstract away file and ' \
|
15
|
+
'directory copying.'
|
16
|
+
spec.homepage = 'https://github.com/welaika/photocopier'
|
17
|
+
spec.license = 'MIT'
|
15
18
|
|
16
|
-
spec.files = `git ls-files -z`.split("\x0").reject
|
17
|
-
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
|
+
f.match(%r{^(test|spec|features)/})
|
21
|
+
end
|
22
|
+
spec.bindir = 'exe'
|
18
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
-
spec.require_paths = [
|
24
|
+
spec.require_paths = ['lib']
|
20
25
|
|
21
|
-
spec.required_ruby_version =
|
26
|
+
spec.required_ruby_version = '>= 2.6.0'
|
22
27
|
|
23
|
-
spec.add_dependency
|
24
|
-
spec.add_dependency
|
25
|
-
spec.add_dependency
|
26
|
-
spec.add_dependency
|
27
|
-
spec.add_dependency
|
28
|
+
spec.add_dependency 'activesupport', '~> 6.1'
|
29
|
+
spec.add_dependency 'net-scp', '~> 3.0'
|
30
|
+
spec.add_dependency 'net-sftp', '~> 3.0'
|
31
|
+
spec.add_dependency 'net-ssh', '~> 6.1'
|
32
|
+
spec.add_dependency 'net-ssh-gateway', '~> 2.0'
|
28
33
|
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
32
|
-
spec.add_development_dependency
|
33
|
-
spec.add_development_dependency
|
34
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
35
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
36
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
37
|
+
spec.add_development_dependency 'rspec', '~> 3.10'
|
38
|
+
spec.add_development_dependency 'rubocop', '~> 1.6'
|
39
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.5'
|
40
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
41
|
+
spec.add_development_dependency 'simplecov', '~> 0.20'
|
34
42
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: photocopier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
- Ju Liu
|
9
9
|
- Fabrizio Monti
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-12-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -18,68 +18,56 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 5.1.1
|
21
|
+
version: '6.1'
|
25
22
|
type: :runtime
|
26
23
|
prerelease: false
|
27
24
|
version_requirements: !ruby/object:Gem::Requirement
|
28
25
|
requirements:
|
29
26
|
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
|
-
version: '
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 5.1.1
|
28
|
+
version: '6.1'
|
35
29
|
- !ruby/object:Gem::Dependency
|
36
30
|
name: net-scp
|
37
31
|
requirement: !ruby/object:Gem::Requirement
|
38
32
|
requirements:
|
39
33
|
- - "~>"
|
40
34
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 1.2.1
|
35
|
+
version: '3.0'
|
45
36
|
type: :runtime
|
46
37
|
prerelease: false
|
47
38
|
version_requirements: !ruby/object:Gem::Requirement
|
48
39
|
requirements:
|
49
40
|
- - "~>"
|
50
41
|
- !ruby/object:Gem::Version
|
51
|
-
version: '
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 1.2.1
|
42
|
+
version: '3.0'
|
55
43
|
- !ruby/object:Gem::Dependency
|
56
44
|
name: net-sftp
|
57
45
|
requirement: !ruby/object:Gem::Requirement
|
58
46
|
requirements:
|
59
47
|
- - "~>"
|
60
48
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
49
|
+
version: '3.0'
|
62
50
|
type: :runtime
|
63
51
|
prerelease: false
|
64
52
|
version_requirements: !ruby/object:Gem::Requirement
|
65
53
|
requirements:
|
66
54
|
- - "~>"
|
67
55
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
56
|
+
version: '3.0'
|
69
57
|
- !ruby/object:Gem::Dependency
|
70
58
|
name: net-ssh
|
71
59
|
requirement: !ruby/object:Gem::Requirement
|
72
60
|
requirements:
|
73
61
|
- - "~>"
|
74
62
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
63
|
+
version: '6.1'
|
76
64
|
type: :runtime
|
77
65
|
prerelease: false
|
78
66
|
version_requirements: !ruby/object:Gem::Requirement
|
79
67
|
requirements:
|
80
68
|
- - "~>"
|
81
69
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
70
|
+
version: '6.1'
|
83
71
|
- !ruby/object:Gem::Dependency
|
84
72
|
name: net-ssh-gateway
|
85
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,88 +88,112 @@ dependencies:
|
|
100
88
|
requirements:
|
101
89
|
- - "~>"
|
102
90
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 1.14.6
|
91
|
+
version: '2.2'
|
107
92
|
type: :development
|
108
93
|
prerelease: false
|
109
94
|
version_requirements: !ruby/object:Gem::Requirement
|
110
95
|
requirements:
|
111
96
|
- - "~>"
|
112
97
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 1.14.6
|
98
|
+
version: '2.2'
|
117
99
|
- !ruby/object:Gem::Dependency
|
118
100
|
name: pry-byebug
|
119
101
|
requirement: !ruby/object:Gem::Requirement
|
120
102
|
requirements:
|
121
103
|
- - "~>"
|
122
104
|
- !ruby/object:Gem::Version
|
123
|
-
version: '3.
|
124
|
-
- - ">="
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 3.4.2
|
105
|
+
version: '3.9'
|
127
106
|
type: :development
|
128
107
|
prerelease: false
|
129
108
|
version_requirements: !ruby/object:Gem::Requirement
|
130
109
|
requirements:
|
131
110
|
- - "~>"
|
132
111
|
- !ruby/object:Gem::Version
|
133
|
-
version: '3.
|
134
|
-
- - ">="
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: 3.4.2
|
112
|
+
version: '3.9'
|
137
113
|
- !ruby/object:Gem::Dependency
|
138
114
|
name: rake
|
139
115
|
requirement: !ruby/object:Gem::Requirement
|
140
116
|
requirements:
|
141
117
|
- - "~>"
|
142
118
|
- !ruby/object:Gem::Version
|
143
|
-
version: '
|
119
|
+
version: '13.0'
|
144
120
|
type: :development
|
145
121
|
prerelease: false
|
146
122
|
version_requirements: !ruby/object:Gem::Requirement
|
147
123
|
requirements:
|
148
124
|
- - "~>"
|
149
125
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
126
|
+
version: '13.0'
|
151
127
|
- !ruby/object:Gem::Dependency
|
152
128
|
name: rspec
|
153
129
|
requirement: !ruby/object:Gem::Requirement
|
154
130
|
requirements:
|
155
131
|
- - "~>"
|
156
132
|
- !ruby/object:Gem::Version
|
157
|
-
version: '3.
|
133
|
+
version: '3.10'
|
158
134
|
type: :development
|
159
135
|
prerelease: false
|
160
136
|
version_requirements: !ruby/object:Gem::Requirement
|
161
137
|
requirements:
|
162
138
|
- - "~>"
|
163
139
|
- !ruby/object:Gem::Version
|
164
|
-
version: '3.
|
140
|
+
version: '3.10'
|
165
141
|
- !ruby/object:Gem::Dependency
|
166
|
-
name:
|
142
|
+
name: rubocop
|
167
143
|
requirement: !ruby/object:Gem::Requirement
|
168
144
|
requirements:
|
169
145
|
- - "~>"
|
170
146
|
- !ruby/object:Gem::Version
|
171
|
-
version: '
|
172
|
-
|
147
|
+
version: '1.6'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - "~>"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '1.6'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: rubocop-rake
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - "~>"
|
173
160
|
- !ruby/object:Gem::Version
|
174
|
-
version: 0.
|
161
|
+
version: '0.5'
|
175
162
|
type: :development
|
176
163
|
prerelease: false
|
177
164
|
version_requirements: !ruby/object:Gem::Requirement
|
178
165
|
requirements:
|
179
166
|
- - "~>"
|
180
167
|
- !ruby/object:Gem::Version
|
181
|
-
version: '0.
|
182
|
-
|
168
|
+
version: '0.5'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: rubocop-rspec
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - "~>"
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '2.0'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - "~>"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '2.0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: simplecov
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0.20'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - "~>"
|
183
195
|
- !ruby/object:Gem::Version
|
184
|
-
version: 0.
|
196
|
+
version: '0.20'
|
185
197
|
description: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
186
198
|
copying.
|
187
199
|
email:
|
@@ -192,12 +204,11 @@ executables: []
|
|
192
204
|
extensions: []
|
193
205
|
extra_rdoc_files: []
|
194
206
|
files:
|
207
|
+
- ".github/workflows/ruby.yml"
|
195
208
|
- ".gitignore"
|
196
209
|
- ".rspec"
|
197
210
|
- ".rubocop.yml"
|
198
|
-
- ".ruby-gemset"
|
199
211
|
- ".ruby-version"
|
200
|
-
- ".travis.yml"
|
201
212
|
- ".vscode/launch.json"
|
202
213
|
- CHANGELOG.md
|
203
214
|
- Gemfile
|
@@ -225,7 +236,7 @@ homepage: https://github.com/welaika/photocopier
|
|
225
236
|
licenses:
|
226
237
|
- MIT
|
227
238
|
metadata: {}
|
228
|
-
post_install_message:
|
239
|
+
post_install_message:
|
229
240
|
rdoc_options: []
|
230
241
|
require_paths:
|
231
242
|
- lib
|
@@ -233,16 +244,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
244
|
requirements:
|
234
245
|
- - ">="
|
235
246
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.
|
247
|
+
version: 2.6.0
|
237
248
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
249
|
requirements:
|
239
250
|
- - ">="
|
240
251
|
- !ruby/object:Gem::Version
|
241
252
|
version: '0'
|
242
253
|
requirements: []
|
243
|
-
|
244
|
-
|
245
|
-
signing_key:
|
254
|
+
rubygems_version: 3.0.1
|
255
|
+
signing_key:
|
246
256
|
specification_version: 4
|
247
257
|
summary: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
248
258
|
copying.
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
photocopier
|