wikk_webbrowser 0.9.6 → 0.9.7

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +2 -0
  3. data/lib/wikk_webbrowser.rb +62 -1
  4. data/version +1 -1
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b68922378ce9c4777c7810d94449ec8c4cdd738d9480b80430aa9f8829cd0d97
4
- data.tar.gz: 33654b9c6d202036b39895c2b41facba850bfcee44e211866cca373a45443c8f
3
+ metadata.gz: 271c33be56dd2927bb32996ed6e373d7c28fdebd533cc600786023986fe294ab
4
+ data.tar.gz: b3dbb2f606d3bc176a72fb00a81e32c8d253e2f89ae3558395a0ddb09b391e47
5
5
  SHA512:
6
- metadata.gz: a3ed4f35c54b8d96baddfe7e21afc0fdf674706daf36aa5a97a0da5717a3fb513a1bbda23c7840765b9891d314a3ff26601847272b8c146b34bf196c7c9f0534
7
- data.tar.gz: 9bafdc4f3fd1b77d92b749b5970e224811a631a3f1fc8c9f48cbf59b07a884f8a12d9431620ef331bd8afc0e99d4cbb6a109f09c315f1e5722eb4a2ae569b680
6
+ metadata.gz: b9cdfbeab4339aa17b567581d715160ec3d709441a343604eb877c400bb8d9ecb8100c5ee1de3e498fdc1b06c05cf89e65597bc190df81037d5cc567c5df974c
7
+ data.tar.gz: d7d9b2ab219818510dc48c9bc0ac4e99d25dc4c5903d7754dd9c3988ba97d65a935d778d9f75e57198d4ee6e5fd068d0059333ff02051ff7c781626bf890fc1a
data/History.txt CHANGED
@@ -1,3 +1,5 @@
1
+ robertburrowes Mon May 9 17:02:06 2022 +1200
2
+ Duplicated Put, changing all Puts to Patch
1
3
  robertburrowes Mon Sep 20 12:14:31 2021 +1200
2
4
  Add aliases for put,post,get and delete
3
5
  robertburrowes Mon Sep 20 12:14:09 2021 +1200
@@ -13,7 +13,7 @@ module WIKK # :nodoc:
13
13
  # response = get_page(query: ,'/')
14
14
  # end
15
15
  class WebBrowser
16
- VERSION = '0.9.6'
16
+ VERSION = '0.9.7'
17
17
 
18
18
  class Error < RuntimeError # :nodoc:
19
19
  attr_accessor :web_return_code
@@ -387,6 +387,67 @@ module WIKK # :nodoc:
387
387
 
388
388
  alias put put_req
389
389
 
390
+ # send a PATCH query to the server and return the response.
391
+ # @param query [String] URL, less the 'http://host/' part
392
+ # @param authorization [String] If present, add Authorization header, using this string
393
+ # @param content_type [String] Posted content type
394
+ # @param data [String] Text to add to body of post to the web server
395
+ # @param extra_headers [Hash] Add these to standard headers
396
+ # @param extra_cookies [Hash] Add these to standard cookies
397
+ # @return [String] The Net::HTTPResponse.body text response from the web server
398
+ def patch_req(query:, authorization: nil, content_type: '"application/octet-stream"', data: nil, extra_headers: {}, extra_cookies: {})
399
+ url = URI.parse("#{@use_ssl ? 'https' : 'http'}://#{@host}/#{query}")
400
+ req = Net::HTTP::Patch.new(url.path)
401
+
402
+ header = { 'HOST' => @host }
403
+ header['Accept'] = '*/*'
404
+ header['Accept-Encoding'] = 'gzip, deflate, br'
405
+ header['Accept-Language'] = 'en-US,en;q=0.5'
406
+ header['Connection'] = 'keep-alive'
407
+ header['User-Agent'] = 'Mozilla/5.0'
408
+ header['Content-Type'] = content_type
409
+ add_cookies(extra_cookies)
410
+ header['Cookie'] = cookies_to_s if @cookies.length > 0
411
+ header['DNT'] = '1'
412
+ header['Authorization'] = authorization if authorization != nil
413
+
414
+ extra_headers.each do |k, v|
415
+ header[k] = v
416
+ end
417
+ req.initialize_http_header( header )
418
+
419
+ if data.nil?
420
+ req.body = ''
421
+ elsif data.instance_of?(Hash)
422
+ if content_type =~ /application\/octet-stream/
423
+ req.set_form_data(data, '&')
424
+ else
425
+ req.set_form_data.to_j
426
+ end
427
+ else
428
+ req.body = data # If json as a string or raw string
429
+ end
430
+
431
+ @response = @session.request(req)
432
+ save_cookies(@response)
433
+
434
+ if @response.code.to_i >= 300
435
+ if @response.code.to_i == 302
436
+ # ignore the redirects.
437
+ # puts "302"
438
+ # @response.each {|key, val| printf "%s = %s\n", key, val } #Location seems to have cgi params removed. End up with .../cginame?&
439
+ # puts "Redirect of Post to #{@response['location']}" #Location seems to have cgi params removed. End up with .../cginame?&
440
+ return
441
+ end
442
+
443
+ raise Error.new(web_return_code: @response.code, message: "#{@response.code} #{@response.message} #{query} #{data} #{@response.body}")
444
+ end
445
+
446
+ return @response.body
447
+ end
448
+
449
+ alias patch patch_req
450
+
390
451
  # Extract form field values from the html body.
391
452
  # @param body [String] The html response body
392
453
  # @return [Hash] Keys are the field names, values are the field values
data/version CHANGED
@@ -1,2 +1,2 @@
1
1
  PROJECT="wikk_webbrowser"
2
- VERSION="0.9.6"
2
+ VERSION="0.9.7"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikk_webbrowser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Burrowes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-20 00:00:00.000000000 Z
11
+ date: 2022-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
- rubygems_version: 3.1.4
125
+ rubygems_version: 3.2.22
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Wrapper around ruby http and https libraries