uricp 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 37bb516638075a8d54d891f2d1049e5abe1197e4
4
+ data.tar.gz: 31d80850767fad7b32d5f9282031e6acdaa60b3f
5
+ SHA512:
6
+ metadata.gz: d137a74223d94356968ddaba23d2d855d0127fbea9f19fc2cee96a05c37f7900d3fe433fcccb3b6e12608d252174b9848fd882548319e794995c8828804bec2a
7
+ data.tar.gz: c49e4055788800047b66611d56de7fc0270e96bb88f2fccd0e7b0da7f329e739ca7daef0b672d44df94c3f816a9158204589c4f403f0e018e771c210193a90df
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- uricp (0.0.9)
4
+ uricp (0.0.10)
5
5
  filesize (= 0.0.2)
6
6
  methadone (~> 1.8.0)
7
7
  open4 (~> 1.3.0)
@@ -17,22 +17,22 @@ GEM
17
17
  builder (3.2.2)
18
18
  childprocess (0.5.6)
19
19
  ffi (~> 1.0, >= 1.0.11)
20
- cucumber (1.3.19)
20
+ cucumber (1.3.20)
21
21
  builder (>= 2.1.2)
22
22
  diff-lcs (>= 1.1.3)
23
23
  gherkin (~> 2.12)
24
24
  multi_json (>= 1.7.5, < 2.0)
25
25
  multi_test (>= 0.1.2)
26
26
  diff-lcs (1.2.5)
27
- ffi (1.9.8)
27
+ ffi (1.9.10)
28
28
  filesize (0.0.2)
29
29
  gherkin (2.12.2)
30
30
  multi_json (~> 1.3)
31
31
  inifile (1.1.0)
32
- json (1.8.2)
32
+ json (1.8.3)
33
33
  methadone (1.8.0)
34
34
  bundler
35
- multi_json (1.11.0)
35
+ multi_json (1.11.2)
36
36
  multi_test (0.1.2)
37
37
  open4 (1.3.4)
38
38
  rake (10.4.2)
@@ -45,14 +45,14 @@ GEM
45
45
  rspec-core (2.99.2)
46
46
  rspec-expectations (2.99.2)
47
47
  diff-lcs (>= 1.1.3, < 2.0)
48
- rspec-mocks (2.99.3)
48
+ rspec-mocks (2.99.4)
49
49
  sendfile (1.2.2)
50
50
 
51
51
  PLATFORMS
52
52
  ruby
53
53
 
54
54
  DEPENDENCIES
55
- aruba
55
+ aruba (~> 0.6.0)
56
56
  bundler (~> 1.7)
57
57
  cucumber (~> 1.3)
58
58
  inifile (~> 1.1)
data/bin/uricp CHANGED
@@ -98,6 +98,8 @@ class App
98
98
  "Compress output")
99
99
  on("--[no-]dry-run",
100
100
  "Show what would be run,", "but don't run the command")
101
+ on("--[no-]force",
102
+ "Always write sparsely")
101
103
  #Arguments
102
104
  arg :from_uri, "URI to copy from"
103
105
  arg :to_uri, "URI to copy to"
@@ -18,6 +18,7 @@ Feature: Documented Help
18
18
  |--segment|
19
19
  And the option "compress" should be documented which is negatable
20
20
  And the option "dry-run" should be documented which is negatable
21
+ And the option "force" should be documented which is negatable
21
22
  And the banner should document that this app's arguments are:
22
23
  |from_uri|which is required|
23
24
  |to_uri|which is required|
@@ -83,14 +83,14 @@ end
83
83
  When(/^I retrieve "([^"]*)" with options "([^"]*)" from container "([^"]*)" into "([^"]*)"$/) do |name, runoptions, container, target|
84
84
  url = File.join(@current_storage_url, container, name)
85
85
  steps %{
86
- When I successfully run `uricp #{runoptions} --auth-token #{@current_auth_token} #{url} #{target}`
86
+ When I successfully run `uricp --force #{runoptions} --auth-token #{@current_auth_token} #{url} #{target}`
87
87
  }
88
88
  end
89
89
 
90
90
  When(/^I retrieve "([^"]*)" from container "([^"]*)" into "([^"]*)" with a userid$/) do |name, container, target|
91
91
  url = File.join(@current_storage_url, container, name)
92
92
  steps %{
93
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' #{url} #{target}`
93
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' #{url} #{target}`
94
94
  }
95
95
  end
96
96
 
@@ -99,7 +99,7 @@ When(/^I store "([^"]*)" into container "([^"]*)" from "([^"]*)" with a userid$/
99
99
  @current_name = name
100
100
  url = File.join(@current_storage_url, container, name)
101
101
  steps %{
102
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' #{source} #{url}`
102
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' #{source} #{url}`
103
103
  }
104
104
  end
105
105
 
@@ -114,7 +114,7 @@ When(/^I store "([^"]*)" with options "([^"]*)" into container "([^"]*)" from "(
114
114
  @current_name = name
115
115
  url = File.join(@current_storage_url, container, name)
116
116
  steps %{
117
- When I successfully run `uricp #{runoptions} --auth-token #{@current_auth_token} #{source} #{url}`
117
+ When I successfully run `uricp --force #{runoptions} --auth-token #{@current_auth_token} #{source} #{url}`
118
118
  }
119
119
  end
120
120
 
@@ -123,7 +123,7 @@ When(/^I store "([^"]*)" with segment size "([^"]*)" into container "([^"]*)" fr
123
123
  @current_name = name
124
124
  url = File.join(@current_storage_url, container, name)
125
125
  steps %{
126
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
126
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
127
127
  }
128
128
  end
129
129
 
@@ -132,7 +132,7 @@ When(/^I store "([^"]*)" with segment size "([^"]*)" and options "([^"]*)" into
132
132
  @current_name = name
133
133
  url = File.join(@current_storage_url, container, name)
134
134
  steps %{
135
- When I successfully run `uricp #{runoptions} --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
135
+ When I successfully run `uricp --force #{runoptions} --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
136
136
  }
137
137
  end
138
138
 
@@ -35,6 +35,10 @@ module Uricp::Strategy
35
35
  options['target-format']
36
36
  end
37
37
 
38
+ def always_write_sparse?
39
+ options['force']
40
+ end
41
+
38
42
  def lz4?(magic)
39
43
  magic.unpack('V') == [0x184D2204]
40
44
  end
@@ -0,0 +1,42 @@
1
+ module Uricp::Strategy
2
+
3
+ class PipedLocalDecompress
4
+
5
+ include Uricp::Strategy::Common
6
+
7
+ def appropriate?
8
+ case from.scheme
9
+ when 'pipe'
10
+ if raw_target? && lz4_source? && to.scheme == 'file'
11
+ if always_write_sparse?
12
+ return proposal
13
+ else
14
+ debug "#{self.class.name}: using safe sparse expansion via stream"
15
+ end
16
+ end
17
+ end
18
+ debug "#{self.class.name}: not appropriate"
19
+ false
20
+ end
21
+
22
+ def command
23
+ "lz4 -qd - #{to.path};"
24
+ end
25
+
26
+ def proposal
27
+ @proposed_options = options.dup
28
+ @proposed_options.delete('source-format')
29
+ if @proposed_options['target-format']
30
+ @proposed_options['source-format'] = :raw
31
+ if @proposed_options['source-format'] == @proposed_options['target-format']
32
+ @proposed_options.delete('source-format')
33
+ @proposed_options.delete('target-format')
34
+ end
35
+ end
36
+ @proposed_options['from_uri'] = @proposed_options['to_uri']
37
+ self
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -39,6 +39,8 @@ module Uricp::Strategy
39
39
  else
40
40
  raise
41
41
  end
42
+ rescue SocketError => e
43
+ raise SocketError, options['from_uri'].to_s+" inaccessible: "+e.message
42
44
  end
43
45
 
44
46
  def headers
@@ -30,6 +30,7 @@ module Uricp
30
30
  Strategy::PipedRemoteGet,
31
31
  Strategy::PipedCacheConvert,
32
32
  Strategy::PipedCache,
33
+ Strategy::PipedLocalDecompress,
33
34
  Strategy::PipedDecompress,
34
35
  Strategy::LocalConvert,
35
36
  Strategy::LocalLink,
data/lib/uricp/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Uricp
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  DEFAULT_SEGMENT_SIZE = "5 GiB"
4
4
  end
data/lib/uricp.rb CHANGED
@@ -11,6 +11,7 @@ require 'uricp/strategy/piped_local_put'
11
11
  require 'uricp/strategy/piped_remote_get'
12
12
  require 'uricp/strategy/piped_compress'
13
13
  require 'uricp/strategy/piped_decompress'
14
+ require 'uricp/strategy/piped_local_decompress'
14
15
  require 'uricp/strategy/piped_local_compress'
15
16
  require 'uricp/strategy/segmented_remote_put'
16
17
  require 'uricp/strategy/remote_put'
data/uricp.gemspec CHANGED
@@ -19,9 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
22
  spec.add_development_dependency('rdoc')
24
- spec.add_development_dependency('aruba')
23
+ spec.add_development_dependency('aruba', '~> 0.6.0')
25
24
  spec.add_development_dependency('cucumber', '~> 1.3')
26
25
  spec.add_development_dependency('rake')
27
26
  spec.add_dependency('methadone', '~> 1.8.0')
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uricp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
5
- prerelease:
4
+ version: 0.0.10
6
5
  platform: ruby
7
6
  authors:
8
7
  - Neil Wilson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-26 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,63 +20,41 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.7'
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '10.0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '10.0'
46
27
  - !ruby/object:Gem::Dependency
47
28
  name: rdoc
48
29
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
30
  requirements:
51
- - - ! '>='
31
+ - - '>='
52
32
  - !ruby/object:Gem::Version
53
33
  version: '0'
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
37
  requirements:
59
- - - ! '>='
38
+ - - '>='
60
39
  - !ruby/object:Gem::Version
61
40
  version: '0'
62
41
  - !ruby/object:Gem::Dependency
63
42
  name: aruba
64
43
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ! '>='
45
+ - - ~>
68
46
  - !ruby/object:Gem::Version
69
- version: '0'
47
+ version: 0.6.0
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - ~>
76
53
  - !ruby/object:Gem::Version
77
- version: '0'
54
+ version: 0.6.0
78
55
  - !ruby/object:Gem::Dependency
79
56
  name: cucumber
80
57
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
58
  requirements:
83
59
  - - ~>
84
60
  - !ruby/object:Gem::Version
@@ -86,7 +62,6 @@ dependencies:
86
62
  type: :development
87
63
  prerelease: false
88
64
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
66
  - - ~>
92
67
  - !ruby/object:Gem::Version
@@ -94,23 +69,20 @@ dependencies:
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: rake
96
71
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
72
  requirements:
99
- - - ! '>='
73
+ - - '>='
100
74
  - !ruby/object:Gem::Version
101
75
  version: '0'
102
76
  type: :development
103
77
  prerelease: false
104
78
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
79
  requirements:
107
- - - ! '>='
80
+ - - '>='
108
81
  - !ruby/object:Gem::Version
109
82
  version: '0'
110
83
  - !ruby/object:Gem::Dependency
111
84
  name: methadone
112
85
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
86
  requirements:
115
87
  - - ~>
116
88
  - !ruby/object:Gem::Version
@@ -118,7 +90,6 @@ dependencies:
118
90
  type: :runtime
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
93
  requirements:
123
94
  - - ~>
124
95
  - !ruby/object:Gem::Version
@@ -126,7 +97,6 @@ dependencies:
126
97
  - !ruby/object:Gem::Dependency
127
98
  name: open4
128
99
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
100
  requirements:
131
101
  - - ~>
132
102
  - !ruby/object:Gem::Version
@@ -134,7 +104,6 @@ dependencies:
134
104
  type: :runtime
135
105
  prerelease: false
136
106
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
107
  requirements:
139
108
  - - ~>
140
109
  - !ruby/object:Gem::Version
@@ -142,7 +111,6 @@ dependencies:
142
111
  - !ruby/object:Gem::Dependency
143
112
  name: filesize
144
113
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
114
  requirements:
147
115
  - - '='
148
116
  - !ruby/object:Gem::Version
@@ -150,7 +118,6 @@ dependencies:
150
118
  type: :runtime
151
119
  prerelease: false
152
120
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
121
  requirements:
155
122
  - - '='
156
123
  - !ruby/object:Gem::Version
@@ -158,7 +125,6 @@ dependencies:
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: sendfile
160
127
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
128
  requirements:
163
129
  - - ~>
164
130
  - !ruby/object:Gem::Version
@@ -166,7 +132,6 @@ dependencies:
166
132
  type: :runtime
167
133
  prerelease: false
168
134
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
135
  requirements:
171
136
  - - ~>
172
137
  - !ruby/object:Gem::Version
@@ -174,7 +139,6 @@ dependencies:
174
139
  - !ruby/object:Gem::Dependency
175
140
  name: rspec
176
141
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
142
  requirements:
179
143
  - - ~>
180
144
  - !ruby/object:Gem::Version
@@ -182,7 +146,6 @@ dependencies:
182
146
  type: :development
183
147
  prerelease: false
184
148
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
149
  requirements:
187
150
  - - ~>
188
151
  - !ruby/object:Gem::Version
@@ -190,7 +153,6 @@ dependencies:
190
153
  - !ruby/object:Gem::Dependency
191
154
  name: inifile
192
155
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
156
  requirements:
195
157
  - - ~>
196
158
  - !ruby/object:Gem::Version
@@ -198,7 +160,6 @@ dependencies:
198
160
  type: :development
199
161
  prerelease: false
200
162
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
163
  requirements:
203
164
  - - ~>
204
165
  - !ruby/object:Gem::Version
@@ -252,6 +213,7 @@ files:
252
213
  - lib/uricp/strategy/piped_compress.rb
253
214
  - lib/uricp/strategy/piped_decompress.rb
254
215
  - lib/uricp/strategy/piped_local_compress.rb
216
+ - lib/uricp/strategy/piped_local_decompress.rb
255
217
  - lib/uricp/strategy/piped_local_get.rb
256
218
  - lib/uricp/strategy/piped_local_put.rb
257
219
  - lib/uricp/strategy/piped_remote_get.rb
@@ -265,27 +227,26 @@ files:
265
227
  homepage: ''
266
228
  licenses:
267
229
  - gplv3
230
+ metadata: {}
268
231
  post_install_message:
269
232
  rdoc_options: []
270
233
  require_paths:
271
234
  - lib
272
235
  required_ruby_version: !ruby/object:Gem::Requirement
273
- none: false
274
236
  requirements:
275
- - - ! '>='
237
+ - - '>='
276
238
  - !ruby/object:Gem::Version
277
239
  version: '0'
278
240
  required_rubygems_version: !ruby/object:Gem::Requirement
279
- none: false
280
241
  requirements:
281
- - - ! '>='
242
+ - - '>='
282
243
  - !ruby/object:Gem::Version
283
244
  version: '0'
284
245
  requirements: []
285
246
  rubyforge_project:
286
- rubygems_version: 1.8.23
247
+ rubygems_version: 2.4.8
287
248
  signing_key:
288
- specification_version: 3
249
+ specification_version: 4
289
250
  summary: Copy one URL to another with optional cacheing
290
251
  test_files:
291
252
  - features/auth_download.feature