fetcher 0.4.3 → 0.4.4
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 +7 -0
- data/lib/fetcher.rb +5 -15
- data/lib/fetcher/version.rb +17 -1
- data/lib/fetcher/worker.rb +38 -7
- data/test/helper.rb +0 -3
- data/test/test_get.rb +1 -1
- metadata +35 -26
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 95db80b36d0be7460c96648620191047913fcec3
|
4
|
+
data.tar.gz: 4b6fa34c25e625ca71860da03a7831f26404d6d2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7fc927c713af888ef8049619fe0e368d3039119b57596091c6c8e02de21ae7800d741dd96df4da180807e1ad0df600f3a4fe1bc10ea31d0ca0a67540a7c8e2a0
|
7
|
+
data.tar.gz: 705e042295b9ca6bf8b8379145da4860f4e823f92ff0569573ba73959eea5dacc280db37f24389ecd7423e0ac2412e79b0640c9c9be06ce4c5219db2cc0a66e1
|
data/lib/fetcher.rb
CHANGED
@@ -25,22 +25,12 @@ require 'logutils'
|
|
25
25
|
|
26
26
|
# our own code
|
27
27
|
|
28
|
-
require 'fetcher/version'
|
28
|
+
require 'fetcher/version' # let version always go first
|
29
29
|
require 'fetcher/worker'
|
30
30
|
|
31
31
|
|
32
32
|
module Fetcher
|
33
33
|
|
34
|
-
# version string for generator meta tag (includes ruby version)
|
35
|
-
def self.banner
|
36
|
-
"fetcher/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.root
|
40
|
-
"#{File.expand_path( File.dirname(File.dirname(__FILE__)) )}"
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
34
|
def self.main
|
45
35
|
|
46
36
|
## NB: only load (require) cli code if called
|
@@ -58,11 +48,12 @@ module Fetcher
|
|
58
48
|
Runner.new.run(args)
|
59
49
|
end
|
60
50
|
|
51
|
+
|
61
52
|
#############################
|
62
53
|
# convenience shortcuts
|
63
54
|
|
64
|
-
def self.copy( src, dest )
|
65
|
-
Worker.new.copy( src, dest )
|
55
|
+
def self.copy( src, dest, opts={} )
|
56
|
+
Worker.new.copy( src, dest, opts )
|
66
57
|
end
|
67
58
|
|
68
59
|
def self.read( src )
|
@@ -79,6 +70,5 @@ end # module Fetcher
|
|
79
70
|
if __FILE__ == $0
|
80
71
|
Fetcher.main
|
81
72
|
else
|
82
|
-
# say hello
|
83
|
-
puts Fetcher.banner
|
73
|
+
puts Fetcher.banner # say hello
|
84
74
|
end
|
data/lib/fetcher/version.rb
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
|
2
2
|
module Fetcher
|
3
3
|
|
4
|
-
|
4
|
+
MAJOR = 0 ## todo: namespace inside version or something - why? why not??
|
5
|
+
MINOR = 4
|
6
|
+
PATCH = 4
|
7
|
+
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
8
|
+
|
9
|
+
def self.version
|
10
|
+
VERSION
|
11
|
+
end
|
12
|
+
|
13
|
+
# version string for generator meta tag (includes ruby version)
|
14
|
+
def self.banner
|
15
|
+
"fetcher/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.root
|
19
|
+
"#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
|
20
|
+
end
|
5
21
|
|
6
22
|
end # module Fetcher
|
7
23
|
|
data/lib/fetcher/worker.rb
CHANGED
@@ -2,6 +2,27 @@
|
|
2
2
|
|
3
3
|
module Fetcher
|
4
4
|
|
5
|
+
class Error < StandardError
|
6
|
+
end
|
7
|
+
|
8
|
+
####
|
9
|
+
# todo/check:
|
10
|
+
# rename to HttpRequestError or similar??
|
11
|
+
# use "common" error class - why? why not?
|
12
|
+
|
13
|
+
class HttpError < Error
|
14
|
+
attr_reader :code, :message
|
15
|
+
|
16
|
+
def initialize( code, message )
|
17
|
+
@code, @message = code, message
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_s
|
21
|
+
"HTTP request failed (NOK) => #{@code} #{@message}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
5
26
|
class Worker
|
6
27
|
|
7
28
|
include LogUtils::Logging
|
@@ -49,7 +70,7 @@ module Fetcher
|
|
49
70
|
end
|
50
71
|
|
51
72
|
|
52
|
-
def copy( src, dest )
|
73
|
+
def copy( src, dest, opts={} )
|
53
74
|
### fix: return true - success or
|
54
75
|
# false - error!!!
|
55
76
|
|
@@ -59,18 +80,28 @@ module Fetcher
|
|
59
80
|
|
60
81
|
response = get_response( src )
|
61
82
|
|
62
|
-
# on error
|
63
|
-
|
83
|
+
# NOTE: on error (NOK) raise exception; do NOT copy file; sorry
|
84
|
+
if response.code != '200'
|
85
|
+
raise HttpError.new( response.code, response.message )
|
86
|
+
end
|
87
|
+
|
88
|
+
### check:
|
89
|
+
## why not always use wb???
|
90
|
+
## how is it differet for text files?
|
91
|
+
## will convert newlines (from windows to unix) ???
|
64
92
|
|
65
93
|
# check for content type; use 'wb' for images
|
66
|
-
if response.content_type =~ /image/
|
94
|
+
if response.content_type =~ /image/ ||
|
95
|
+
response.content_type =~ /zip/ ## use application/zip or something - why? why not??
|
67
96
|
logger.debug ' switching to binary'
|
68
|
-
|
97
|
+
mode = 'wb'
|
69
98
|
else
|
70
|
-
|
99
|
+
mode = 'w'
|
71
100
|
end
|
72
101
|
|
73
|
-
|
102
|
+
mode = opts[:mode] if opts[:mode] # if mode flags passed in -take precedence
|
103
|
+
|
104
|
+
File.open( dest, mode ) do |f|
|
74
105
|
f.write( response.body )
|
75
106
|
end
|
76
107
|
end
|
data/test/helper.rb
CHANGED
data/test/test_get.rb
CHANGED
metadata
CHANGED
@@ -1,57 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fetcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gerald Bauer
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-11-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: logutils
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0.6'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.6'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rdoc
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- - ~>
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
+
version: '4.0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: hoe
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- - ~>
|
45
|
+
- - "~>"
|
42
46
|
- !ruby/object:Gem::Version
|
43
|
-
version: '3.
|
47
|
+
version: '3.13'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.13'
|
47
55
|
description: fetcher - Fetch Text Documents or Binary Blobs via HTTP, HTTPS
|
48
56
|
email: webslideshow@googlegroups.com
|
49
57
|
executables:
|
50
58
|
- fetch
|
51
59
|
extensions: []
|
52
60
|
extra_rdoc_files:
|
61
|
+
- HISTORY.md
|
53
62
|
- Manifest.txt
|
63
|
+
- README.md
|
54
64
|
files:
|
65
|
+
- ".gemtest"
|
55
66
|
- HISTORY.md
|
56
67
|
- Manifest.txt
|
57
68
|
- README.md
|
@@ -64,33 +75,31 @@ files:
|
|
64
75
|
- lib/fetcher/worker.rb
|
65
76
|
- test/helper.rb
|
66
77
|
- test/test_get.rb
|
67
|
-
- .gemtest
|
68
78
|
homepage: https://github.com/rubylibs/fetcher
|
69
79
|
licenses:
|
70
80
|
- Public Domain
|
81
|
+
metadata: {}
|
71
82
|
post_install_message:
|
72
83
|
rdoc_options:
|
73
|
-
- --main
|
84
|
+
- "--main"
|
74
85
|
- README.md
|
75
86
|
require_paths:
|
76
87
|
- lib
|
77
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
89
|
requirements:
|
80
|
-
- -
|
90
|
+
- - ">="
|
81
91
|
- !ruby/object:Gem::Version
|
82
92
|
version: 1.9.2
|
83
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
94
|
requirements:
|
86
|
-
- -
|
95
|
+
- - ">="
|
87
96
|
- !ruby/object:Gem::Version
|
88
97
|
version: '0'
|
89
98
|
requirements: []
|
90
|
-
rubyforge_project:
|
91
|
-
rubygems_version:
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 2.4.2
|
92
101
|
signing_key:
|
93
|
-
specification_version:
|
102
|
+
specification_version: 4
|
94
103
|
summary: fetcher - Fetch Text Documents or Binary Blobs via HTTP, HTTPS
|
95
104
|
test_files:
|
96
105
|
- test/test_get.rb
|