lull 0.0.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 +7 -0
- data/lib/lull.rb +73 -0
- metadata +63 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0763216dad2562c3e4c28117fde89340bc23d57a085fa382a2e491b35442ce54
|
4
|
+
data.tar.gz: e081fee19fbe4895d0da5d8c5ada4328b27c333fd025c9463d638e91dd260a78
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a9d93d402eb78cb5197522b70fd0d39edfe63e345d6f0face59d728bc53117bf87563a8e27788caabcae6ec52a441f2695d1008714dabe1668bc0432e2e3957a
|
7
|
+
data.tar.gz: 3bb756bcb6423d79d005ee6325988a11f45a7cceef5835ea66cd2a2c9f66a82574ecc99165df011169f992aa8544c97b0f8f573c9b36f1996864bfc6e6f43ada
|
data/lib/lull.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rest-client'
|
4
|
+
|
5
|
+
# Helper class for making rest calls
|
6
|
+
class Lull
|
7
|
+
attr_accessor :headers, :meth, :params, :url, :config
|
8
|
+
|
9
|
+
def initialize(headers: {}, meth: 'Get', params: {}, url: 'https://test/', config: {})
|
10
|
+
@headers = headers
|
11
|
+
@meth = meth.capitalize.to_sym
|
12
|
+
@params = params
|
13
|
+
@url = url
|
14
|
+
@config = config
|
15
|
+
@config['timeout'] = @config['timeout'] ||= 30
|
16
|
+
end
|
17
|
+
|
18
|
+
def make_call
|
19
|
+
response = RestClient::Request.execute(headers: @headers,
|
20
|
+
method: @meth, payload: @params,
|
21
|
+
timeout: @config['timeout'], url: @url, verify_ssl: false)
|
22
|
+
rescue SocketError, IOError => e
|
23
|
+
puts "#{e.class}: #{e.message}"
|
24
|
+
rescue StandardError => e
|
25
|
+
e.response
|
26
|
+
else
|
27
|
+
response
|
28
|
+
end
|
29
|
+
|
30
|
+
def cookie
|
31
|
+
if @url =~ %r{auth/session}
|
32
|
+
response = make_call
|
33
|
+
raise 'There was an issue getting a cookie!' unless response.code == 200
|
34
|
+
|
35
|
+
(response.cookies.map { |key, val| "#{key}=#{val}" })[0]
|
36
|
+
else
|
37
|
+
error_text('cookie', @url.to_s, 'auth/session')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# use rest-client with retry
|
42
|
+
def rest_try(tries = 3)
|
43
|
+
tries.times do |i|
|
44
|
+
response = make_call
|
45
|
+
unless response.nil?
|
46
|
+
break response if (200..299).include? response.code
|
47
|
+
break response if i > 1
|
48
|
+
end
|
49
|
+
puts "Failed #{@meth} on #{@url}, retry...#{i + 1}"
|
50
|
+
sleep 3 unless i > 1
|
51
|
+
return nil if i > 1 # Handles socket errors, etc. where there is no response.
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def error_text(method_name, url, wanted)
|
58
|
+
{
|
59
|
+
'response' =>
|
60
|
+
"ERROR: Wrong url for the #{method_name} method.\n"\
|
61
|
+
"Sent: #{url}\n"\
|
62
|
+
"Expected: \"#{wanted}\" as part of the url.",
|
63
|
+
'status' => 400
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
def responder(response)
|
68
|
+
{
|
69
|
+
'response' => JSON.parse(response.body),
|
70
|
+
'status' => response.code.to_i
|
71
|
+
}
|
72
|
+
end
|
73
|
+
end
|
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lull
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kody Wilson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-04-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.1.0
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.1.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.1.0
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.1.0
|
33
|
+
description: A simple wrapper for rest-client
|
34
|
+
email: kodywilson@gmail.com
|
35
|
+
executables: []
|
36
|
+
extensions: []
|
37
|
+
extra_rdoc_files: []
|
38
|
+
files:
|
39
|
+
- lib/lull.rb
|
40
|
+
homepage: https://github.com/kodywilson/lull
|
41
|
+
licenses:
|
42
|
+
- MIT
|
43
|
+
metadata: {}
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.7.0
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubygems_version: 3.1.4
|
60
|
+
signing_key:
|
61
|
+
specification_version: 4
|
62
|
+
summary: Rest helper
|
63
|
+
test_files: []
|