injest-client 0.1.5 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/README.md +18 -0
- data/lib/injest/http_client.rb +1 -1
- data/lib/injest/middleware.rb +1 -0
- data/lib/injest/writer.rb +38 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d0693548127e95424b8163d5b76979759d60ab69360b48d97aa902bc6a4bf9b
|
4
|
+
data.tar.gz: 33337fa8f25784efc17e309945a309433b5b73441d18bb713a1df16f89dadfd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d167f7a7baa9d1762bdf7cdff253c5bb12010c9a2c96b5e8ce4fd9666f8705b663d7fb845dda00a1e764689a1ee654068209a2b83635d3a09f976ce175c6e977
|
7
|
+
data.tar.gz: 1a6d1bb5f865c30a794273133fea236d05e6d7c22c1845ff05a05ae5d7b583c664c6f8de0482387e6c4ad1d2e253b045230873e40e70c5313732e3c5ec90f318
|
data/lib/README.md
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
## Changelog
|
4
4
|
|
5
|
+
### 0.1.7
|
6
|
+
|
7
|
+
- Support multiple strategies via the `INJEST_STRATEGY` env var, example: `INJEST_STRATEGY="stdout,http"`
|
8
|
+
- Added the `jsonout` strategy
|
9
|
+
|
10
|
+
### 0.1.6
|
11
|
+
|
12
|
+
- fix bad exception raise
|
13
|
+
|
5
14
|
### 0.1.5
|
6
15
|
|
7
16
|
- remove consumer
|
@@ -22,7 +31,16 @@ ENV vars
|
|
22
31
|
- `INJEST_JWT`: a JWT required with strategy `http` or `push`
|
23
32
|
- `INJEST_CLIENT`: (optional) a string to bind to a specific client
|
24
33
|
|
34
|
+
## Release
|
35
|
+
|
36
|
+
```bash
|
37
|
+
./console.sh build
|
38
|
+
./console.sh release
|
39
|
+
```
|
40
|
+
|
25
41
|
## TODO:
|
26
42
|
|
43
|
+
- **use json output wich ideally should not depend on sidekiq**
|
44
|
+
|
27
45
|
- Customization with procs
|
28
46
|
- Tests: https://guides.rubygems.org/make-your-own-gem/#writing-tests
|
data/lib/injest/http_client.rb
CHANGED
@@ -107,7 +107,7 @@ class Injest::HttpClient
|
|
107
107
|
else
|
108
108
|
data = JSON.parse(response.body) unless response.body.blank?
|
109
109
|
puts "Endpoint replied with #{response.code} - #{data['error_code']}", data: data
|
110
|
-
raise "Endpoint replied with #{response.code} - #{data['error_code']}"
|
110
|
+
raise "Endpoint replied with #{response.code} - #{data['error_code']}"
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
data/lib/injest/middleware.rb
CHANGED
data/lib/injest/writer.rb
CHANGED
@@ -4,27 +4,48 @@ class Injest::Writer
|
|
4
4
|
attr_reader :configuration, :http_client
|
5
5
|
|
6
6
|
def append(data, sync: false)
|
7
|
-
|
8
|
-
when 'push', 'http'
|
7
|
+
if @strategies.include?('push') || @strategies.include?('http')
|
9
8
|
if sync
|
10
9
|
http_client.push(data)
|
11
10
|
else
|
12
11
|
Injest::Worker.perform_async(data)
|
13
12
|
end
|
14
|
-
|
15
|
-
|
13
|
+
end
|
14
|
+
|
15
|
+
if @strategies.include?('stdout')
|
16
16
|
print(data)
|
17
|
+
end
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
if @strategies.include?('jsonout')
|
20
|
+
if Kernel.const_defined?('Rails')
|
21
|
+
Rails.logger.info(data.to_json)
|
22
|
+
else
|
23
|
+
puts data.to_json
|
24
|
+
end
|
22
25
|
end
|
26
|
+
|
27
|
+
# case configuration.strategy
|
28
|
+
# when 'push', 'http'
|
29
|
+
# if sync
|
30
|
+
# http_client.push(data)
|
31
|
+
# else
|
32
|
+
# Injest::Worker.perform_async(data)
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# when 'stdout'
|
36
|
+
# print(data)
|
37
|
+
#
|
38
|
+
# when 'null'
|
39
|
+
# # Do nothing
|
40
|
+
# else
|
41
|
+
# # Do nothing
|
42
|
+
# end
|
23
43
|
end
|
24
44
|
|
25
45
|
private
|
26
46
|
def initialize
|
27
47
|
@configuration = Injest::Configuration.instance
|
48
|
+
set_strategies
|
28
49
|
@http_client = Injest::HttpClient.new(configuration)
|
29
50
|
end
|
30
51
|
|
@@ -60,4 +81,13 @@ class Injest::Writer
|
|
60
81
|
puts "Response: #{data[:response][:status]}"
|
61
82
|
puts data[:response][:body].inspect
|
62
83
|
end
|
84
|
+
|
85
|
+
def set_strategies
|
86
|
+
raw = @configuration.strategy
|
87
|
+
if raw == nil || raw == ''
|
88
|
+
@strategies = ['null']
|
89
|
+
else
|
90
|
+
@strategies = raw.split(',')
|
91
|
+
end
|
92
|
+
end
|
63
93
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: injest-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Lampis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|