photocopier 1.3.3.pre1 → 1.4.1
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 +1 -1
- data/Rakefile +5 -5
- data/lib/photocopier/adapter.rb +4 -5
- data/lib/photocopier/ftp.rb +12 -10
- data/lib/photocopier/ssh.rb +19 -19
- data/lib/photocopier/version.rb +1 -1
- data/lib/photocopier.rb +5 -6
- data/photocopier.gemspec +32 -23
- metadata +82 -58
- 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: 7a7fec80ee5247825b32a7e95e460f12ec55ea30a60b5a925ccfb097961a1248
|
4
|
+
data.tar.gz: 15bea0fdc44453e37d0e0a32d01f047d4f00bb6d879eece7229ea1434f6d6f8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a3e412f78ec10f3b4da514b74ac968cc42ae36946f02c3850191ece5f90c3f379dc690de60f1c4bc1e30842a302204aaa67fb4065071edca1f877d05439a8f1
|
7
|
+
data.tar.gz: c79e1011d06e8b7f0b45d31b0300c1b9c5e11dd378fef4b9bd376012161a569b2230730577394e673530f9859ddf4ca3bc3a811e58bc10266ed5101671f2c413
|
@@ -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
|
|
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/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
|
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,12 +49,10 @@ 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
|
54
|
-
|
55
|
-
channel.wait
|
56
56
|
end
|
57
57
|
session.loop
|
58
58
|
[stdout, stderr, exit_code]
|
@@ -74,14 +74,14 @@ module Photocopier
|
|
74
74
|
|
75
75
|
def rsync_command
|
76
76
|
command = [
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
'rsync',
|
78
|
+
'--progress',
|
79
|
+
'-e',
|
80
80
|
"'#{rsh_arguments}'",
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
81
|
+
'-rlpt',
|
82
|
+
'--compress',
|
83
|
+
'--omit-dir-times',
|
84
|
+
'--delete'
|
85
85
|
]
|
86
86
|
command.concat Shellwords.split(rsync_options).map(&:shellescape) if rsync_options
|
87
87
|
command.compact
|
@@ -91,30 +91,30 @@ module Photocopier
|
|
91
91
|
command = rsync_command
|
92
92
|
|
93
93
|
includes.each do |glob|
|
94
|
-
command <<
|
94
|
+
command << '--include'
|
95
95
|
command << Shellwords.escape(glob)
|
96
96
|
end
|
97
97
|
|
98
98
|
exclude.each do |glob|
|
99
|
-
command <<
|
99
|
+
command << '--exclude'
|
100
100
|
command << Shellwords.escape(glob)
|
101
101
|
end
|
102
102
|
|
103
103
|
command << Shellwords.escape(source)
|
104
104
|
command << Shellwords.escape(destination)
|
105
105
|
|
106
|
-
run command.join(
|
106
|
+
run command.join(' ')
|
107
107
|
end
|
108
108
|
|
109
109
|
def rsh_arguments
|
110
110
|
arguments = []
|
111
111
|
arguments << ssh_command(gateway_options) if gateway_options
|
112
112
|
arguments << ssh_command(options)
|
113
|
-
arguments.join(
|
113
|
+
arguments.join(' ')
|
114
114
|
end
|
115
115
|
|
116
116
|
def ssh_command(opts)
|
117
|
-
command =
|
117
|
+
command = 'ssh '
|
118
118
|
command << "-p #{opts[:port]} " if opts[:port].present?
|
119
119
|
command << "#{opts[:user]}@" if opts[:user].present?
|
120
120
|
command << opts[:host]
|
data/lib/photocopier/version.rb
CHANGED
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/photocopier.gemspec
CHANGED
@@ -1,34 +1,43 @@
|
|
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-ftp', '~> 0.1.3'
|
30
|
+
spec.add_dependency 'net-scp', '~> 3.0'
|
31
|
+
spec.add_dependency 'net-sftp', '~> 3.0'
|
32
|
+
spec.add_dependency 'net-ssh', '~> 6.1'
|
33
|
+
spec.add_dependency 'net-ssh-gateway', '~> 2.0'
|
28
34
|
|
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
|
35
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
36
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
37
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
38
|
+
spec.add_development_dependency 'rspec', '~> 3.10'
|
39
|
+
spec.add_development_dependency 'rubocop', '~> 1.6'
|
40
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.5'
|
41
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
42
|
+
spec.add_development_dependency 'simplecov', '~> 0.20'
|
34
43
|
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.1
|
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: 2022-01-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -18,68 +18,70 @@ 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
|
-
|
28
|
+
version: '6.1'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: net-ftp
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.1.3
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
33
41
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
42
|
+
version: 0.1.3
|
35
43
|
- !ruby/object:Gem::Dependency
|
36
44
|
name: net-scp
|
37
45
|
requirement: !ruby/object:Gem::Requirement
|
38
46
|
requirements:
|
39
47
|
- - "~>"
|
40
48
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 1.2.1
|
49
|
+
version: '3.0'
|
45
50
|
type: :runtime
|
46
51
|
prerelease: false
|
47
52
|
version_requirements: !ruby/object:Gem::Requirement
|
48
53
|
requirements:
|
49
54
|
- - "~>"
|
50
55
|
- !ruby/object:Gem::Version
|
51
|
-
version: '
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 1.2.1
|
56
|
+
version: '3.0'
|
55
57
|
- !ruby/object:Gem::Dependency
|
56
58
|
name: net-sftp
|
57
59
|
requirement: !ruby/object:Gem::Requirement
|
58
60
|
requirements:
|
59
61
|
- - "~>"
|
60
62
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
63
|
+
version: '3.0'
|
62
64
|
type: :runtime
|
63
65
|
prerelease: false
|
64
66
|
version_requirements: !ruby/object:Gem::Requirement
|
65
67
|
requirements:
|
66
68
|
- - "~>"
|
67
69
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
70
|
+
version: '3.0'
|
69
71
|
- !ruby/object:Gem::Dependency
|
70
72
|
name: net-ssh
|
71
73
|
requirement: !ruby/object:Gem::Requirement
|
72
74
|
requirements:
|
73
75
|
- - "~>"
|
74
76
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
77
|
+
version: '6.1'
|
76
78
|
type: :runtime
|
77
79
|
prerelease: false
|
78
80
|
version_requirements: !ruby/object:Gem::Requirement
|
79
81
|
requirements:
|
80
82
|
- - "~>"
|
81
83
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
84
|
+
version: '6.1'
|
83
85
|
- !ruby/object:Gem::Dependency
|
84
86
|
name: net-ssh-gateway
|
85
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,88 +102,112 @@ dependencies:
|
|
100
102
|
requirements:
|
101
103
|
- - "~>"
|
102
104
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 1.14.6
|
105
|
+
version: '2.2'
|
107
106
|
type: :development
|
108
107
|
prerelease: false
|
109
108
|
version_requirements: !ruby/object:Gem::Requirement
|
110
109
|
requirements:
|
111
110
|
- - "~>"
|
112
111
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 1.14.6
|
112
|
+
version: '2.2'
|
117
113
|
- !ruby/object:Gem::Dependency
|
118
114
|
name: pry-byebug
|
119
115
|
requirement: !ruby/object:Gem::Requirement
|
120
116
|
requirements:
|
121
117
|
- - "~>"
|
122
118
|
- !ruby/object:Gem::Version
|
123
|
-
version: '3.
|
124
|
-
- - ">="
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 3.4.2
|
119
|
+
version: '3.9'
|
127
120
|
type: :development
|
128
121
|
prerelease: false
|
129
122
|
version_requirements: !ruby/object:Gem::Requirement
|
130
123
|
requirements:
|
131
124
|
- - "~>"
|
132
125
|
- !ruby/object:Gem::Version
|
133
|
-
version: '3.
|
134
|
-
- - ">="
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: 3.4.2
|
126
|
+
version: '3.9'
|
137
127
|
- !ruby/object:Gem::Dependency
|
138
128
|
name: rake
|
139
129
|
requirement: !ruby/object:Gem::Requirement
|
140
130
|
requirements:
|
141
131
|
- - "~>"
|
142
132
|
- !ruby/object:Gem::Version
|
143
|
-
version: '
|
133
|
+
version: '13.0'
|
144
134
|
type: :development
|
145
135
|
prerelease: false
|
146
136
|
version_requirements: !ruby/object:Gem::Requirement
|
147
137
|
requirements:
|
148
138
|
- - "~>"
|
149
139
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
140
|
+
version: '13.0'
|
151
141
|
- !ruby/object:Gem::Dependency
|
152
142
|
name: rspec
|
153
143
|
requirement: !ruby/object:Gem::Requirement
|
154
144
|
requirements:
|
155
145
|
- - "~>"
|
156
146
|
- !ruby/object:Gem::Version
|
157
|
-
version: '3.
|
147
|
+
version: '3.10'
|
158
148
|
type: :development
|
159
149
|
prerelease: false
|
160
150
|
version_requirements: !ruby/object:Gem::Requirement
|
161
151
|
requirements:
|
162
152
|
- - "~>"
|
163
153
|
- !ruby/object:Gem::Version
|
164
|
-
version: '3.
|
154
|
+
version: '3.10'
|
165
155
|
- !ruby/object:Gem::Dependency
|
166
|
-
name:
|
156
|
+
name: rubocop
|
167
157
|
requirement: !ruby/object:Gem::Requirement
|
168
158
|
requirements:
|
169
159
|
- - "~>"
|
170
160
|
- !ruby/object:Gem::Version
|
171
|
-
version: '
|
172
|
-
|
161
|
+
version: '1.6'
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - "~>"
|
173
167
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
168
|
+
version: '1.6'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: rubocop-rake
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - "~>"
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0.5'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - "~>"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0.5'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: rubocop-rspec
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '2.0'
|
175
190
|
type: :development
|
176
191
|
prerelease: false
|
177
192
|
version_requirements: !ruby/object:Gem::Requirement
|
178
193
|
requirements:
|
179
194
|
- - "~>"
|
180
195
|
- !ruby/object:Gem::Version
|
181
|
-
version: '0
|
182
|
-
|
196
|
+
version: '2.0'
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: simplecov
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
183
202
|
- !ruby/object:Gem::Version
|
184
|
-
version: 0.
|
203
|
+
version: '0.20'
|
204
|
+
type: :development
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0.20'
|
185
211
|
description: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
186
212
|
copying.
|
187
213
|
email:
|
@@ -192,12 +218,11 @@ executables: []
|
|
192
218
|
extensions: []
|
193
219
|
extra_rdoc_files: []
|
194
220
|
files:
|
221
|
+
- ".github/workflows/ruby.yml"
|
195
222
|
- ".gitignore"
|
196
223
|
- ".rspec"
|
197
224
|
- ".rubocop.yml"
|
198
|
-
- ".ruby-gemset"
|
199
225
|
- ".ruby-version"
|
200
|
-
- ".travis.yml"
|
201
226
|
- ".vscode/launch.json"
|
202
227
|
- CHANGELOG.md
|
203
228
|
- Gemfile
|
@@ -225,7 +250,7 @@ homepage: https://github.com/welaika/photocopier
|
|
225
250
|
licenses:
|
226
251
|
- MIT
|
227
252
|
metadata: {}
|
228
|
-
post_install_message:
|
253
|
+
post_install_message:
|
229
254
|
rdoc_options: []
|
230
255
|
require_paths:
|
231
256
|
- lib
|
@@ -233,16 +258,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
258
|
requirements:
|
234
259
|
- - ">="
|
235
260
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.
|
261
|
+
version: 2.6.0
|
237
262
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
263
|
requirements:
|
239
|
-
- - "
|
264
|
+
- - ">="
|
240
265
|
- !ruby/object:Gem::Version
|
241
|
-
version:
|
266
|
+
version: '0'
|
242
267
|
requirements: []
|
243
|
-
|
244
|
-
|
245
|
-
signing_key:
|
268
|
+
rubygems_version: 3.0.1
|
269
|
+
signing_key:
|
246
270
|
specification_version: 4
|
247
271
|
summary: Photocopier provides FTP/SSH adapters to abstract away file and directory
|
248
272
|
copying.
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
photocopier
|