webget 0.1.1 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f30b181118ed0b78e2617246be67187afbc82b06
4
- data.tar.gz: a70be1694115592004e896f2b762db231896fdf2
3
+ metadata.gz: fbf6e29e3e80b0a0fe7b80ad8a4870c00601006c
4
+ data.tar.gz: c03efecb7b2362efef7392f26293c921f8422eca
5
5
  SHA512:
6
- metadata.gz: 2279af9b0b84949ef8e175acdda2e91cdf2d41bda3a6048bfd43e1759731fe3f92f8f9f4008137017659644d4d013257bb551fb7d823c3217f1808470df3a8cf
7
- data.tar.gz: 5551d7778d4c8e2664a34aa6f873189be48fdf64681e4a6b84eb9e73f11ec5109ccf5e5b6a0cdba9ee6bcea7f35bc9a1337723d5fe9ff1b3c8ca74eacaed7963
6
+ metadata.gz: a3d026c4b3b6932eca4b22377ce1da9b08bd7836713c4e69c6a5fd28ba8de52449b28bca2be877e759eb73a30fb17b62966b779bed25a26fd072913abd284120
7
+ data.tar.gz: 5f7822300304672b181a3001fb5d5e4cb3ad2adc55853179895ba100e03b21a8ede90a800ad2cced34e3b13603162d22876acaf34abfabe61c665f1d821f0455
@@ -5,5 +5,4 @@ Rakefile
5
5
  lib/webget.rb
6
6
  lib/webget/version.rb
7
7
  lib/webget/webcache.rb
8
- lib/webget/webclient.rb
9
8
  lib/webget/webget.rb
data/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  # webget
2
2
 
3
- webget gem - yet (another) network client for world wide web (www) requests via HTTP
3
+ webget gem - a web (go get) crawler incl. web cache
4
4
 
5
- * home :: [github.com/rubycoco/fetcher](https://github.com/rubycoco/fetcher)
6
- * bugs :: [github.com/rubycoco/fetcher/issues](https://github.com/rubycoco/fetcher/issues)
5
+ * home :: [github.com/rubycoco/webclient](https://github.com/rubycoco/webclient)
6
+ * bugs :: [github.com/rubycoco/webclient/issues](https://github.com/rubycoco/webclient/issues)
7
7
  * gem :: [rubygems.org/gems/webget](https://rubygems.org/gems/webget)
8
8
  * rdoc :: [rubydoc.info/gems/webget](http://rubydoc.info/gems/webget)
9
+ * forum :: [groups.google.com/group/wwwmake](https://groups.google.com/group/wwwmake)
9
10
 
10
11
 
11
12
  ## Usage
data/Rakefile CHANGED
@@ -5,10 +5,10 @@ Hoe.spec 'webget' do
5
5
 
6
6
  self.version = Webget::VERSION
7
7
 
8
- self.summary = 'webget gem - yet (another) network client for world wide web (www) requests'
8
+ self.summary = 'webget gem - a web (go get) crawler incl. web cache'
9
9
  self.description = summary
10
10
 
11
- self.urls = { home: 'https://github.com/rubycoco/fetcher' }
11
+ self.urls = { home: 'https://github.com/rubycoco/webclient' }
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
14
  self.email = 'ruby-talk@ruby-lang.org'
@@ -17,7 +17,9 @@ Hoe.spec 'webget' do
17
17
  self.readme_file = 'README.md'
18
18
  self.history_file = 'CHANGELOG.md'
19
19
 
20
- self.extra_deps = []
20
+ self.extra_deps = [
21
+ ['webclient', '>= 0.1.0']
22
+ ]
21
23
 
22
24
  self.licenses = ['Public Domain']
23
25
 
@@ -1,20 +1,7 @@
1
- require 'pp'
2
- require 'time'
3
- require 'date'
4
- require 'fileutils'
5
-
6
- require 'uri'
7
- require 'net/http'
8
- require 'net/https'
9
-
10
- require 'json'
11
- require 'yaml'
12
-
13
-
1
+ require 'webclient'
14
2
 
15
3
  ## our own code
16
4
  require 'webget/version' # let version go first
17
- require 'webget/webclient'
18
5
  require 'webget/webcache'
19
6
  require 'webget/webget'
20
7
 
@@ -24,7 +11,6 @@ require 'webget/webget'
24
11
  ############
25
12
  ## add convenience alias for camel case / alternate different spelling
26
13
  WebCache = Webcache
27
- WebClient = Webclient
28
14
  WebGet = Webget
29
15
 
30
16
  ## use Webgo as (alias) name (keep reserver for now) - why? why not?
@@ -2,8 +2,8 @@
2
2
  class Webget
3
3
 
4
4
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
5
- MINOR = 1
6
- PATCH = 1
5
+ MINOR = 2
6
+ PATCH = 0
7
7
  VERSION = [MAJOR,MINOR,PATCH].join('.')
8
8
 
9
9
  def self.version
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-05 00:00:00.000000000 Z
11
+ date: 2020-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: webclient
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rdoc
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,7 +58,7 @@ dependencies:
44
58
  - - "~>"
45
59
  - !ruby/object:Gem::Version
46
60
  version: '3.22'
47
- description: webget gem - yet (another) network client for world wide web (www) requests
61
+ description: webget gem - a web (go get) crawler incl. web cache
48
62
  email: ruby-talk@ruby-lang.org
49
63
  executables: []
50
64
  extensions: []
@@ -60,9 +74,8 @@ files:
60
74
  - lib/webget.rb
61
75
  - lib/webget/version.rb
62
76
  - lib/webget/webcache.rb
63
- - lib/webget/webclient.rb
64
77
  - lib/webget/webget.rb
65
- homepage: https://github.com/rubycoco/fetcher
78
+ homepage: https://github.com/rubycoco/webclient
66
79
  licenses:
67
80
  - Public Domain
68
81
  metadata: {}
@@ -87,5 +100,5 @@ rubyforge_project:
87
100
  rubygems_version: 2.5.2
88
101
  signing_key:
89
102
  specification_version: 4
90
- summary: webget gem - yet (another) network client for world wide web (www) requests
103
+ summary: webget gem - a web (go get) crawler incl. web cache
91
104
  test_files: []
@@ -1,85 +0,0 @@
1
-
2
- class Webclient
3
-
4
- class Response # nested class - wrap Net::HTTP::Response
5
- def initialize( response )
6
- @response = response
7
- end
8
- def raw() @response; end
9
-
10
-
11
- def text
12
- # note: Net::HTTP will NOT set encoding UTF-8 etc.
13
- # will be set to ASCII-8BIT == BINARY == Encoding Unknown; Raw Bytes Here
14
- # thus, set/force encoding to utf-8
15
- text = @response.body.to_s
16
- text = text.force_encoding( Encoding::UTF_8 )
17
- text
18
- end
19
-
20
- ## convenience helper; returns parsed json data
21
- def json() JSON.parse( text ); end
22
-
23
-
24
-
25
- class Headers # nested (nested) class
26
- def initialize( response )
27
- @response = response
28
- end
29
- def each( &blk )
30
- @response.each_header do |key, value| # Iterate all response headers
31
- blk.call( key, value )
32
- end
33
- end
34
- end
35
- def headers() @headers ||= Headers.new( @response ); end
36
-
37
- class Status # nested (nested) class
38
- def initialize( response )
39
- @response = response
40
- end
41
- def code() @response.code.to_i; end
42
- def ok?() code == 200; end
43
- def nok?() code != 200; end
44
- def message() @response.message; end
45
- end
46
- def status() @status ||= Status.new( @response ); end
47
- end # (nested) class Response
48
-
49
-
50
- def self.get( url, headers: {} )
51
-
52
- uri = URI.parse( url )
53
- http = Net::HTTP.new( uri.host, uri.port )
54
-
55
- if uri.instance_of? URI::HTTPS
56
- http.use_ssl = true
57
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
58
- end
59
-
60
- request = Net::HTTP::Get.new( uri.request_uri )
61
-
62
- ### add (custom) headers if any
63
- ## check/todo: is there are more idiomatic way for Net::HTTP ???
64
- ## use
65
- ## request = Net::HTTP::Get.new( uri.request_uri, headers )
66
- ## why? why not?
67
- ## instead of e.g.
68
- ## request['X-Auth-Token'] = 'xxxxxxx'
69
- ## request['User-Agent'] = 'ruby'
70
- ## request['Accept'] = '*/*'
71
- if headers && headers.size > 0
72
- headers.each do |key,value|
73
- request[ key ] = value
74
- end
75
- end
76
-
77
-
78
- response = http.request( request )
79
-
80
- ## note: return "unified" wrapped response
81
- Response.new( response )
82
- end # method self.get
83
-
84
- end # class Webclient
85
-