uricp 0.0.23 → 0.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +2 -4
  4. data/features/rbd_access.feature +1 -1
  5. data/lib/segment_upload.rb +2 -28
  6. data/lib/uricp/curl_primitives.rb +2 -0
  7. data/lib/uricp/orbit_auth.rb +2 -0
  8. data/lib/uricp/segmenter.rb +3 -1
  9. data/lib/uricp/strategy/cache_common.rb +5 -3
  10. data/lib/uricp/strategy/cached_get.rb +2 -0
  11. data/lib/uricp/strategy/cleaner.rb +2 -0
  12. data/lib/uricp/strategy/common.rb +13 -6
  13. data/lib/uricp/strategy/local_convert.rb +2 -0
  14. data/lib/uricp/strategy/local_link.rb +2 -0
  15. data/lib/uricp/strategy/piped_cache.rb +3 -2
  16. data/lib/uricp/strategy/piped_cache_convert.rb +2 -0
  17. data/lib/uricp/strategy/piped_compress.rb +2 -0
  18. data/lib/uricp/strategy/piped_decompress.rb +2 -0
  19. data/lib/uricp/strategy/piped_local_compress.rb +2 -0
  20. data/lib/uricp/strategy/piped_local_decompress.rb +2 -0
  21. data/lib/uricp/strategy/piped_local_get.rb +2 -0
  22. data/lib/uricp/strategy/piped_local_put.rb +2 -0
  23. data/lib/uricp/strategy/piped_rbd_get.rb +4 -3
  24. data/lib/uricp/strategy/piped_remote_get.rb +2 -0
  25. data/lib/uricp/strategy/rbd_cache_base_snap.rb +3 -2
  26. data/lib/uricp/strategy/rbd_cache_check.rb +2 -1
  27. data/lib/uricp/strategy/rbd_cache_clone.rb +2 -1
  28. data/lib/uricp/strategy/rbd_cache_upload.rb +6 -9
  29. data/lib/uricp/strategy/rbd_cached_get.rb +2 -1
  30. data/lib/uricp/strategy/rbd_cached_put.rb +8 -5
  31. data/lib/uricp/strategy/rbd_put.rb +12 -11
  32. data/lib/uricp/strategy/rbd_snap.rb +6 -5
  33. data/lib/uricp/strategy/rbd_sweeper.rb +2 -0
  34. data/lib/uricp/strategy/remote_put.rb +2 -0
  35. data/lib/uricp/strategy/segmented_remote_put.rb +2 -0
  36. data/lib/uricp/strategy/sweeper.rb +2 -0
  37. data/lib/uricp/uri_strategy.rb +2 -0
  38. data/lib/uricp/version.rb +1 -1
  39. data/uricp.gemspec +14 -14
  40. metadata +28 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f12b0071b707cd164565e756677d620c77aa4433161b28b4e2aed90e764f2e68
4
- data.tar.gz: 2a226104ffad1d51b15e6a9ea015d94e058ff7728e66d3f0c708092e1764205b
3
+ metadata.gz: 2bdc788caae911b8877f44865af0a39419c96148ca47ee2536b04d2de1630fc1
4
+ data.tar.gz: 0f2ae7d75bb93abc8f3eff7437eb82552fa39ef7c9ddfadd7f197f775071519d
5
5
  SHA512:
6
- metadata.gz: 420a3273588f2fde0d78b12250be89b0c07fc0f82d9e4101c427780f871f021bba870ff88b14d5adf3dd9ed0c599a944474137040e8ea2f07aaadd326fa6eccc
7
- data.tar.gz: 6cba1806fed37f14d5dad8402061f639f9d6e32df79caf66bd06c2bbabcbd68d460b71710ba76f676967301a1b878129b8b92bd7796f697f8159cc9a65da3c89
6
+ metadata.gz: 77528ea35b99174312d1bdf1aa73ec5d9e53aa1c432dfde4cf9c720c35c093746f5289a3e558c46dff05a39d5efb1a248ec71b6ae6d66192f3e52c420d5ccde1
7
+ data.tar.gz: 97fc3ada66b80f66374b46d03302f37459d937d31ab5c15ecb3f4ab4f0dd3856031f168ba2f804a199d18e7df31227bc6145d94e263e75c687fa6f73f2306a1c
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in uricp.gemspec
data/Gemfile.lock CHANGED
@@ -1,12 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- uricp (0.0.23)
4
+ uricp (0.0.27)
5
5
  childprocess (~> 1.0)
6
6
  filesize (= 0.0.2)
7
7
  methadone (~> 2.0.2)
8
8
  open4 (~> 1.3.0)
9
- sendfile (~> 1.2.0)
10
9
 
11
10
  GEM
12
11
  remote: https://rubygems.org/
@@ -41,8 +40,7 @@ GEM
41
40
  rspec-expectations (3.10.1)
42
41
  diff-lcs (>= 1.2.0, < 2.0)
43
42
  rspec-support (~> 3.10.0)
44
- rspec-support (3.10.2)
45
- sendfile (1.2.2)
43
+ rspec-support (3.10.3)
46
44
 
47
45
  PLATFORMS
48
46
  ruby
@@ -41,7 +41,7 @@ Feature: Manipulate file images in ceph
41
41
  When I successfully run `uricp --dry-run --target-format=raw --cache=/tmp/uricp http://orbit.brightbox.com/v1/acc-tqs4c/downloads/freedos.qcow2 rbd:///servers/srv-testy`
42
42
  And the output should contain:
43
43
  """
44
- rbd import --no-progress --id libvirt '/tmp/uricp/cache/freedos.qcow2' 'servers/freedos.qcow2'
44
+ rbd import --no-progress --id libvirt - <'/tmp/uricp/cache/freedos.qcow2' 'servers/freedos.qcow2'
45
45
  """
46
46
  And the output should contain:
47
47
  """
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uricp/version'
2
4
  require 'uricp/curl_primitives'
3
5
  require 'uricp/orbit_auth'
@@ -6,31 +8,3 @@ require 'uricp/segmenter'
6
8
  module Uricp
7
9
  UnsupportedURLtype = Class.new(ArgumentError)
8
10
  end
9
-
10
- # Monkey patch a copy_stream facility in using 'sendfile'
11
- unless IO.respond_to? :copy_stream
12
- require 'sendfile'
13
-
14
- def IO.copy_stream(src, dst, copy_length = nil, offset = nil)
15
- if src.stat.pipe?
16
- amount = copy_length.to_i
17
- buf_size = [amount, 2**16].min
18
- buffer = ''
19
- while amount > 0
20
- src.read(buf_size, buffer)
21
- amount_read = buffer.length
22
- dst.write(buffer)
23
- amount -= amount_read
24
- break if src.eof?
25
- end
26
- copy_length.to_i - amount
27
- else
28
- current_pos = src.pos
29
- count = dst.sendfile(src, offset || current_pos, copy_length)
30
- src.seek(count, IO::SEEK_CUR)
31
- count
32
- end
33
- rescue EOFError
34
- 0
35
- end
36
- end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::CurlPrimitives
2
4
  attr_reader :options
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open-uri'
2
4
  module Uricp
3
5
  class OrbitAuth
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pathname'
2
4
 
3
5
  module Uricp
@@ -67,7 +69,7 @@ module Uricp
67
69
  end
68
70
 
69
71
  def upload_segment(segment_number)
70
- segment_name = File.join(to.to_s, manifest_suffix, '%08d' % segment_number)
72
+ segment_name = File.join(to.to_s, manifest_suffix, format('%08d', segment_number))
71
73
  debug "Uploading with #{curl_upload_from('-', segment_name)}"
72
74
  open('|' + curl_upload_from('-', segment_name), 'w') do |destination|
73
75
  copy_length = IO.copy_stream(@source, destination, segment_size)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  module Uricp::Strategy
@@ -25,11 +27,11 @@ module Uricp::Strategy
25
27
  end
26
28
 
27
29
  def without_active_cache
28
- unless cache_root
29
- yield
30
- else
30
+ if cache_root
31
31
  debug "#{self.class.name}: cache active - not appropriate"
32
32
  false
33
+ else
34
+ yield
33
35
  end
34
36
  end
35
37
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Uricp::Strategy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class Cleaner
3
5
  include Uricp::Strategy::Common
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  module Common
3
5
  include Methadone::CLILogging
4
6
  include Uricp::CurlPrimitives
7
+ include Methadone::SH
5
8
 
6
9
  def initialize(options)
7
10
  @options = options
@@ -91,10 +94,10 @@ module Uricp::Strategy
91
94
  end
92
95
 
93
96
  PIPE_URI = URI('pipe:/')
94
- DRY_SNAP = 'uricp_snap'.freeze
97
+ DRY_SNAP = 'uricp_snap'
95
98
 
96
99
  def rbd_base_name
97
- 'base'.freeze
100
+ 'base'
98
101
  end
99
102
 
100
103
  def rbd_snapshot_name
@@ -103,7 +106,7 @@ module Uricp::Strategy
103
106
 
104
107
  def get_temp_filename(base_dir)
105
108
  t = Time.now.strftime('%Y%m%d')
106
- File.join(base_dir, "uricp-#{t}-#{$$}-#{rand(0x100000000).to_s(36)}")
109
+ File.join(base_dir, "uricp-#{t}-#{$PROCESS_ID}-#{rand(0x100000000).to_s(36)}")
107
110
  end
108
111
 
109
112
  def proposed_path
@@ -130,7 +133,7 @@ module Uricp::Strategy
130
133
  options['rbd_cache_name']
131
134
  end
132
135
 
133
- def rbd_clone_snapshot(cache=rbd_cache_name)
136
+ def rbd_clone_snapshot(cache = rbd_cache_name)
134
137
  "#{cache}@#{rbd_base_name}"
135
138
  end
136
139
 
@@ -158,13 +161,17 @@ module Uricp::Strategy
158
161
  uri.scheme == 'rbd' && uri.path.include?('@')
159
162
  end
160
163
 
164
+ def rbd_cache_upload_available?
165
+ rbd_cache_name && !rbd_cache_image_exists?(rbd_cache_name)
166
+ end
167
+
161
168
  def rbd_cache_image_exists?(target)
162
169
  command = "rbd status --id #{rbd_id} --format json #{target} 2>/dev/null"
163
170
  if dry_run?
164
171
  if options['dry-cache'] == :partial_rbd && options['cache_name'] !~ /srv-...../
165
- command = "exit 0"
172
+ command = 'exit 0'
166
173
  else
167
- command = "exit 2"
174
+ command = 'exit 2'
168
175
  end
169
176
  end
170
177
  sh!(command)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class LocalConvert
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class LocalLink
3
5
  include Uricp::Strategy::Common
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  module Uricp::Strategy
4
6
  class PipedCache
5
7
  include Uricp::Strategy::Common
6
8
  include Uricp::Strategy::CacheCommon
7
- include Methadone::SH
8
9
 
9
10
  def appropriate?
10
11
  with_active_cache do
@@ -26,7 +27,7 @@ module Uricp::Strategy
26
27
  @proposed_options = options.dup
27
28
  @proposed_options['sweep'] = [temp_cache_file, cache_file]
28
29
  image_spec_to_check = rbd_cache_image_spec(to)
29
- if to.scheme == 'rbd' && !rbd_cache_image_exists?(image_spec_to_check)
30
+ if to.scheme == 'rbd'
30
31
  @proposed_options['rbd_cache_name'] = image_spec_to_check
31
32
  end
32
33
  @proposed_options.delete('cache')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  module Uricp::Strategy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedCompress
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedDecompress
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedLocalCompress
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedLocalDecompress
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedLocalGet
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class PipedLocalPut
3
5
  include Uricp::Strategy::Common
@@ -1,15 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  module Uricp::Strategy
3
5
  class PipedRbdGet
4
6
  include Uricp::Strategy::Common
5
7
  include Uricp::Strategy::CacheCommon
6
- include Methadone::SH
7
8
 
8
9
  def appropriate?
9
10
  without_active_cache do
10
11
  if from.scheme == 'rbd' &&
11
- rbd_snapshot_spec?(from) &&
12
- to.scheme != 'rbd'
12
+ rbd_snapshot_spec?(from) &&
13
+ to.scheme != 'rbd'
13
14
  return proposal unless sequence_complete?
14
15
  end
15
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open-uri'
2
4
  module Uricp::Strategy
3
5
  class PipedRemoteGet
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RbdCacheBaseSnap
3
5
  include Uricp::Strategy::Common
4
- include Methadone::SH
5
6
 
6
7
  def appropriate?
7
8
  if rbd_cache_name &&
8
- rbd_image_spec(from) == rbd_cache_name
9
+ rbd_image_spec(from) == rbd_cache_name
9
10
  return proposal
10
11
  end
11
12
  debug "#{self.class.name}: not appropriate"
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Uricp::Strategy
4
6
  class RbdCacheCheck
5
7
  include Uricp::Strategy::Common
6
8
  include Uricp::Strategy::CacheCommon
7
- include Methadone::SH
8
9
 
9
10
  def appropriate?
10
11
  unless (from.scheme == 'rbd') != (to.scheme == 'rbd')
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Uricp::Strategy
4
6
  class RbdCacheClone
5
7
  include Uricp::Strategy::Common
6
8
  include Uricp::Strategy::CacheCommon
7
- include Methadone::SH
8
9
 
9
10
  def appropriate?
10
11
  unless from.scheme == 'rbd'
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RbdCacheUpload
3
5
  include Uricp::Strategy::Common
4
- include Methadone::SH
5
6
 
6
7
  def appropriate?
7
8
  if compression_required? || conversion_required?
8
9
  debug "#{self.class.name}: not ready to upload"
9
10
  return false
10
11
  end
11
- if rbd_cache_name
12
+ if rbd_cache_upload_available?
12
13
  case from.scheme
13
14
  when 'pipe', 'file'
14
15
  return proposal if to.scheme == 'rbd'
@@ -19,7 +20,7 @@ module Uricp::Strategy
19
20
  end
20
21
 
21
22
  def command
22
- "rbd import --no-progress --id #{rbd_id} #{data_source} '#{rbd_cache_name}';"
23
+ "rbd import --no-progress --id #{rbd_id} -#{data_source} '#{rbd_cache_name}';"
23
24
  end
24
25
 
25
26
  def proposal
@@ -29,12 +30,8 @@ module Uricp::Strategy
29
30
  end
30
31
 
31
32
  def data_source
32
- if from.scheme == 'pipe'
33
- '-'
34
- else
35
- "'#{from.path}'"
36
- end
33
+ return if from.scheme == 'pipe'
34
+ " <'#{from.path}'"
37
35
  end
38
-
39
36
  end
40
37
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Uricp::Strategy
4
6
  class RbdCachedGet
5
7
  include Uricp::Strategy::Common
6
8
  include Uricp::Strategy::CacheCommon
7
- include Methadone::SH
8
9
 
9
10
  def appropriate?
10
11
  if from.scheme != 'rbd' || rbd_snapshot_spec?(from)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RbdCachedPut
3
5
  include Uricp::Strategy::Common
@@ -5,16 +7,18 @@ module Uricp::Strategy
5
7
 
6
8
  def appropriate?
7
9
  return proposal if to.scheme == 'rbd' &&
8
- rbd_snapshot_spec?(from) &&
9
- rbd_cache_name.nil? &&
10
- !rbd_sequence_complete?
10
+ rbd_snapshot_spec?(from) &&
11
+ rbd_cache_name.nil? &&
12
+ !rbd_sequence_complete?
11
13
 
12
14
  debug "#{self.class.name}: not appropriate"
13
15
  false
14
16
  end
15
17
 
16
18
  def command
17
- "rbd clone --id #{rbd_id} '#{rbd_image_spec(from)}' '#{rbd_image_spec(to)}';"
19
+ "rbd clone --id #{rbd_id} '#{rbd_image_spec(from)}' "\
20
+ "'#{rbd_image_spec(to)}' || [ $? -eq 22 ] && "\
21
+ "rbd create --id #{rbd_id} -s 0 '#{rbd_image_spec(to)}';"
18
22
  end
19
23
 
20
24
  def proposal
@@ -27,6 +31,5 @@ module Uricp::Strategy
27
31
  end
28
32
  self
29
33
  end
30
-
31
34
  end
32
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RbdPut
3
5
  include Uricp::Strategy::Common
@@ -7,18 +9,20 @@ module Uricp::Strategy
7
9
  debug "#{self.class.name}: not ready to upload"
8
10
  return false
9
11
  end
10
- unless rbd_cache_name
11
- case from.scheme
12
- when 'pipe', 'file'
13
- return proposal if to.scheme == 'rbd'
14
- end
12
+ if rbd_cache_upload_available?
13
+ debug "#{self.class.name}: cacheing in RBD instead"
14
+ return false
15
+ end
16
+ case from.scheme
17
+ when 'pipe', 'file'
18
+ return proposal if to.scheme == 'rbd'
15
19
  end
16
20
  debug "#{self.class.name}: not appropriate"
17
21
  false
18
22
  end
19
23
 
20
24
  def command
21
- "rbd import --no-progress --id #{rbd_id} #{data_source} '#{rbd_image_spec(to)}';"
25
+ "rbd import --no-progress --id #{rbd_id} -#{data_source} '#{rbd_image_spec(to)}';"
22
26
  end
23
27
 
24
28
  def proposal
@@ -28,11 +32,8 @@ module Uricp::Strategy
28
32
  end
29
33
 
30
34
  def data_source
31
- if from.scheme == 'pipe'
32
- '-'
33
- else
34
- "'#{from.path}'"
35
- end
35
+ return if from.scheme == 'pipe'
36
+ " <'#{from.path}'"
36
37
  end
37
38
  end
38
39
  end
@@ -1,17 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  module Uricp::Strategy
3
5
  class RbdSnap
4
6
  include Uricp::Strategy::Common
5
7
  include Uricp::Strategy::CacheCommon
6
- include Methadone::SH
7
8
 
8
9
  def appropriate?
9
10
  without_active_cache do
10
11
  if from.scheme == 'rbd' &&
11
- options['rbd_snapshot'].nil? &&
12
- !rbd_snapshot_spec?(from) &&
13
- (rbd_cache_name.nil? ||
14
- !from.path.include?(rbd_cache_name))
12
+ options['rbd_snapshot'].nil? &&
13
+ !rbd_snapshot_spec?(from) &&
14
+ (rbd_cache_name.nil? ||
15
+ !from.path.include?(rbd_cache_name))
15
16
  if snap_in_progress?
16
17
  debug "#{self.class.name}: detected snapshot in progress"
17
18
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RbdSweeper
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class RemotePut
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class SegmentedRemotePut
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Uricp::Strategy
2
4
  class Sweeper
3
5
  include Uricp::Strategy::Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Uricp
data/lib/uricp/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uricp
4
- VERSION = '0.0.23'
4
+ VERSION = '0.0.27'
5
5
  DEFAULT_SEGMENT_SIZE = '5 GiB'
6
6
  end
data/uricp.gemspec CHANGED
@@ -1,32 +1,32 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'uricp/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "uricp"
8
+ spec.name = 'uricp'
8
9
  spec.version = Uricp::VERSION
9
- spec.authors = ["Neil Wilson"]
10
- spec.email = ["neil@aldur.co.uk"]
11
- spec.summary = %q{Copy one URL to another with optional cacheing}
12
- spec.description = %q{Copy one URL to another with optional cacheing}
13
- spec.homepage = ""
14
- spec.license = "gplv3"
10
+ spec.authors = ['Neil Wilson']
11
+ spec.email = ['neil@aldur.co.uk']
12
+ spec.summary = 'Copy one URL to another with optional cacheing'
13
+ spec.description = 'Copy one URL to another with optional cacheing'
14
+ spec.homepage = ''
15
+ spec.license = 'gplv3'
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0")
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
20
21
 
21
- spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency('rdoc', '~> 4.2.0')
23
22
  spec.add_development_dependency('aruba', '~> 0.6.0')
23
+ spec.add_development_dependency 'bundler', '~> 1.7'
24
24
  spec.add_development_dependency('cucumber', '~> 1.3')
25
+ spec.add_development_dependency('inifile', '~> 1.1')
25
26
  spec.add_development_dependency('rake', '~> 12.3')
27
+ spec.add_development_dependency('rdoc', '~> 4.2.0')
26
28
  spec.add_dependency('childprocess', '~> 1.0')
29
+ spec.add_dependency('filesize', '= 0.0.2')
27
30
  spec.add_dependency('methadone', '~> 2.0.2')
28
31
  spec.add_dependency('open4', '~> 1.3.0')
29
- spec.add_dependency('filesize', '= 0.0.2')
30
- spec.add_dependency('sendfile', '~> 1.2.0')
31
- spec.add_development_dependency('inifile', '~> 1.1')
32
32
  end
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uricp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil Wilson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
11
+ date: 2022-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: aruba
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: 0.6.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: 0.6.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rdoc
28
+ name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 4.2.0
33
+ version: '1.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 4.2.0
40
+ version: '1.7'
41
41
  - !ruby/object:Gem::Dependency
42
- name: aruba
42
+ name: cucumber
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.6.0
47
+ version: '1.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.6.0
54
+ version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
- name: cucumber
56
+ name: inifile
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '1.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.3'
68
+ version: '1.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -81,47 +81,33 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '12.3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: childprocess
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.0'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.0'
97
- - !ruby/object:Gem::Dependency
98
- name: methadone
84
+ name: rdoc
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 2.0.2
104
- type: :runtime
89
+ version: 4.2.0
90
+ type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 2.0.2
96
+ version: 4.2.0
111
97
  - !ruby/object:Gem::Dependency
112
- name: open4
98
+ name: childprocess
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: 1.3.0
103
+ version: '1.0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: 1.3.0
110
+ version: '1.0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: filesize
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -137,33 +123,33 @@ dependencies:
137
123
  - !ruby/object:Gem::Version
138
124
  version: 0.0.2
139
125
  - !ruby/object:Gem::Dependency
140
- name: sendfile
126
+ name: methadone
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - "~>"
144
130
  - !ruby/object:Gem::Version
145
- version: 1.2.0
131
+ version: 2.0.2
146
132
  type: :runtime
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
- version: 1.2.0
138
+ version: 2.0.2
153
139
  - !ruby/object:Gem::Dependency
154
- name: inifile
140
+ name: open4
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - "~>"
158
144
  - !ruby/object:Gem::Version
159
- version: '1.1'
160
- type: :development
145
+ version: 1.3.0
146
+ type: :runtime
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
150
  - - "~>"
165
151
  - !ruby/object:Gem::Version
166
- version: '1.1'
152
+ version: 1.3.0
167
153
  description: Copy one URL to another with optional cacheing
168
154
  email:
169
155
  - neil@aldur.co.uk