photocopier 1.3.3.pre3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 23cff4f77ede25810036e4974e22fb6ac0a10387
4
- data.tar.gz: 8b11372913559d96088d42fb102b145cb9bb091f
2
+ SHA256:
3
+ metadata.gz: 777855dbc8e43b1f8047e8e4e1216f033157362dec70b88e90f36db3ba74f260
4
+ data.tar.gz: c40c5471fe3896b29ef9d8d3dd719083ad4a4d09dfc85dcb297cfffa69f8ce20
5
5
  SHA512:
6
- metadata.gz: b700b1828d1d15dff08ce427a9c4e532b65109f3f99070d6c98d1714995bb1297539bc1cae6733fd5abbbd0de361aa1a316d8f2b941f8613e7bfc9ec5b17eaa7
7
- data.tar.gz: 7ee947a1930175493077f8824812e3af9d6af9c484fc74746242dea01fc87d31548ad5922511ae0a8f8c267fe7a144319b3b688ba96634ed97c0125f4d683bd7
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
@@ -1,18 +1,16 @@
1
- Rails:
2
- Enabled: false
3
-
4
- Rails/Output:
5
- Enabled: false
1
+ inherit_mode:
2
+ merge:
3
+ - Exclude
6
4
 
7
5
  AllCops:
8
- TargetRubyVersion: 2.4
6
+ TargetRubyVersion: 2.6
9
7
  DisplayCopNames: true
10
8
  DisplayStyleGuide: true
11
9
 
12
10
  Exclude:
13
11
  - 'bin/*'
14
12
 
15
- Metrics/LineLength:
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
@@ -1 +1 @@
1
- 2.4.1
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
- [![Build Status](https://travis-ci.org/welaika/photocopier.svg?branch=master)](https://travis-ci.org/welaika/photocopier)
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 "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- # require 'rubocop/rake_task'
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
- # RuboCop::RakeTask.new(:rubocop)
8
- # task default: :rubocop
7
+ RuboCop::RakeTask.new(:rubocop)
8
+ task default: :rubocop
@@ -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 "active_support"
12
- require "active_support/core_ext"
10
+ require 'active_support'
11
+ require 'active_support/core_ext'
13
12
 
14
13
  require 'photocopier/adapter'
15
- require "photocopier/ssh"
16
- require "photocopier/ftp"
17
- require "photocopier/ftp/session"
14
+ require 'photocopier/ssh'
15
+ require 'photocopier/ftp'
16
+ require 'photocopier/ftp/session'
@@ -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.exists? file_path_or_string
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
@@ -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
- "set ftp:list-options -a",
54
+ 'set ftp:list-options -a',
53
55
  "set ftp:passive-mode #{options[:passive] || 'false'}",
54
- "set cmd:fail-exit true",
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 || "ftp"
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 = "mirror --delete --use-cache --verbose" \
79
- " --no-perms --allow-suid --no-umask --parallel=5"
80
- mirror << " --reverse --dereference" if reverse
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
@@ -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,21 +28,20 @@ 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 << "/" unless remote_path.end_with?("/")
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 << "/" unless local_path.end_with?("/")
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
- my_session = session
43
- my_session.open_channel do |channel|
44
+ session.open_channel do |channel|
44
45
  channel.exec(cmd) do |_ch, _success|
45
46
  channel.on_data do |_ch, data|
46
47
  stdout << data
@@ -48,14 +49,12 @@ module Photocopier
48
49
  channel.on_extended_data do |_ch, _type, data|
49
50
  stderr << data
50
51
  end
51
- channel.on_request("exit-status") do |_ch, data|
52
+ channel.on_request('exit-status') do |_ch, data|
52
53
  exit_code = data.read_long
53
54
  end
54
55
  end
55
-
56
- channel.wait
57
56
  end
58
- my_session.loop
57
+ session.loop
59
58
  [stdout, stderr, exit_code]
60
59
  end
61
60
 
@@ -66,23 +65,23 @@ module Photocopier
66
65
  host = opts.delete(:host)
67
66
  user = opts.delete(:user)
68
67
 
69
- if gateway_options
70
- gateway.ssh(host, user, opts)
71
- else
72
- Net::SSH.start(host, user, opts)
73
- end
68
+ @session ||= if gateway_options
69
+ gateway.ssh(host, user, opts)
70
+ else
71
+ Net::SSH.start(host, user, opts)
72
+ end
74
73
  end
75
74
 
76
75
  def rsync_command
77
76
  command = [
78
- "rsync",
79
- "--progress",
80
- "-e",
77
+ 'rsync',
78
+ '--progress',
79
+ '-e',
81
80
  "'#{rsh_arguments}'",
82
- "-rlpt",
83
- "--compress",
84
- "--omit-dir-times",
85
- "--delete"
81
+ '-rlpt',
82
+ '--compress',
83
+ '--omit-dir-times',
84
+ '--delete'
86
85
  ]
87
86
  command.concat Shellwords.split(rsync_options).map(&:shellescape) if rsync_options
88
87
  command.compact
@@ -92,30 +91,30 @@ module Photocopier
92
91
  command = rsync_command
93
92
 
94
93
  includes.each do |glob|
95
- command << "--include"
94
+ command << '--include'
96
95
  command << Shellwords.escape(glob)
97
96
  end
98
97
 
99
98
  exclude.each do |glob|
100
- command << "--exclude"
99
+ command << '--exclude'
101
100
  command << Shellwords.escape(glob)
102
101
  end
103
102
 
104
103
  command << Shellwords.escape(source)
105
104
  command << Shellwords.escape(destination)
106
105
 
107
- run command.join(" ")
106
+ run command.join(' ')
108
107
  end
109
108
 
110
109
  def rsh_arguments
111
110
  arguments = []
112
111
  arguments << ssh_command(gateway_options) if gateway_options
113
112
  arguments << ssh_command(options)
114
- arguments.join(" ")
113
+ arguments.join(' ')
115
114
  end
116
115
 
117
116
  def ssh_command(opts)
118
- command = "ssh "
117
+ command = 'ssh '
119
118
  command << "-p #{opts[:port]} " if opts[:port].present?
120
119
  command << "#{opts[:user]}@" if opts[:user].present?
121
120
  command << opts[:host]
@@ -131,7 +130,7 @@ module Photocopier
131
130
  host = opts.delete(:host)
132
131
  user = opts.delete(:user)
133
132
 
134
- Net::SSH::Gateway.new(host, user, opts)
133
+ @gateway ||= Net::SSH::Gateway.new(host, user, opts)
135
134
  end
136
135
  end
137
136
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_litterla: true
2
2
 
3
3
  module Photocopier
4
- VERSION = "1.3.3.pre3".freeze
4
+ VERSION = '1.4.0'.freeze
5
5
  end
@@ -1,34 +1,42 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "photocopier/version"
3
+ require 'photocopier/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "photocopier"
6
+ spec.name = 'photocopier'
7
7
  spec.version = Photocopier::VERSION
8
- spec.authors = ["Stefano Verna", "Ju Liu", "Fabrizio Monti"]
9
- spec.email = ["stefano.verna@welaika.com", "ju.liu@welaika.com", "fabrizio.monti@welaika.com"]
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 directory copying.'
12
- spec.description = 'Photocopier provides FTP/SSH adapters to abstract away file and directory copying.'
13
- spec.homepage = "https://github.com/welaika/photocopier"
14
- spec.license = "MIT"
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 { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.bindir = "exe"
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 = ["lib"]
24
+ spec.require_paths = ['lib']
20
25
 
21
- spec.required_ruby_version = ">= 2.4.0"
26
+ spec.required_ruby_version = '>= 2.6.0'
22
27
 
23
- spec.add_dependency "activesupport", '~> 5.1', '>= 5.1.1'
24
- spec.add_dependency "net-scp", "~> 1.2", ">= 1.2.1"
25
- spec.add_dependency "net-sftp", "~> 2.1.2"
26
- spec.add_dependency "net-ssh", "~> 4.1"
27
- spec.add_dependency "net-ssh-gateway", "~> 2.0"
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 "bundler", "~> 1.14", '>= 1.14.6'
30
- spec.add_development_dependency "pry-byebug", "~> 3.4", '>= 3.4.2'
31
- spec.add_development_dependency "rake", "~> 12.0"
32
- spec.add_development_dependency "rspec", "~> 3.6"
33
- spec.add_development_dependency "simplecov", "~> 0.14", '>= 0.14.1'
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.3.3.pre3
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: 2019-06-09 00:00:00.000000000 Z
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: '5.1'
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: '5.1'
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: '1.2'
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: '1.2'
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: 2.1.2
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: 2.1.2
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: '4.1'
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: '4.1'
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: '1.14'
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: '1.14'
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.4'
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.4'
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: '12.0'
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: '12.0'
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.6'
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.6'
140
+ version: '3.10'
165
141
  - !ruby/object:Gem::Dependency
166
- name: simplecov
142
+ name: rubocop
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
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
167
157
  requirement: !ruby/object:Gem::Requirement
168
158
  requirements:
169
159
  - - "~>"
170
160
  - !ruby/object:Gem::Version
171
- version: '0.14'
172
- - - ">="
161
+ version: '0.5'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '0.5'
169
+ - !ruby/object:Gem::Dependency
170
+ name: rubocop-rspec
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
173
174
  - !ruby/object:Gem::Version
174
- version: 0.14.1
175
+ version: '2.0'
175
176
  type: :development
176
177
  prerelease: false
177
178
  version_requirements: !ruby/object:Gem::Requirement
178
179
  requirements:
179
180
  - - "~>"
180
181
  - !ruby/object:Gem::Version
181
- version: '0.14'
182
- - - ">="
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.14.1
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.4.0
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
- version: 1.3.1
252
+ version: '0'
242
253
  requirements: []
243
- rubyforge_project:
244
- rubygems_version: 2.6.11
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.
@@ -1 +0,0 @@
1
- photocopier
@@ -1,5 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.4.0
4
- - 2.4.3
5
- - 2.5.0