everylog_ruby_client 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/README.md +50 -0
- data/lib/everylog_ruby_client/version.rb +5 -0
- data/lib/everylog_ruby_client.rb +76 -0
- metadata +53 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a41febdaeb7e75805abe0fb888b1967757bbeb652ebc6178329f74035a578cfc
|
4
|
+
data.tar.gz: '08e6751b3e68e5151769e28b6422ef439be51ca215bf9f2761431539ff5f6b53'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0ff1922e485792cae0c20d20c889eed0365f6af4cc297685fb7e0a1ca03fb6ce99983ec7321c947a3b4a190533561f712dd28280113248ddd5fd7b19f88fd70d
|
7
|
+
data.tar.gz: 072bc8c0756b36d07b110d4bc958f07dc2083c7a19418c2388ac94521474bf4be2f78f10da97bc47443c9e526e513da09744797cc7ae327ae2ca9bc75ad363b9
|
data/CHANGELOG.md
ADDED
data/README.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
# EveryLog Ruby Client
|
2
|
+
|
3
|
+
A fantastic (and simple) gem to interact with the EveryLog API
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'everylog_ruby_client'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle install
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install everylog_ruby_client
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
```ruby
|
23
|
+
require 'everylog_ruby_client'
|
24
|
+
|
25
|
+
# @param [Hash] options
|
26
|
+
# @option options [String] :api_key for authenticate against EveryLog server
|
27
|
+
# @option options [String] :everylog_url (https://api.everylog.io/api/v1/log-entries) to reach Everlog server
|
28
|
+
$EveryLogClient = EveryLog::Client.instance.setup(api_key: <YOUR_API_KEY>)
|
29
|
+
|
30
|
+
# @param [Hash] options
|
31
|
+
# @option options [String] :projectId name of the project
|
32
|
+
# @option options [String] :title to display in the application and if enabled in the notification
|
33
|
+
# @option options [String] :summary is a not so long text to display on the application and if enabled in the notification
|
34
|
+
# @option options [String] :body it can contain a long text simple formatted, no html to display in the application
|
35
|
+
# @option options [Array] :tags it can be used to categorize the notification, must be strings
|
36
|
+
# @option options [String] :link it can be used to display on the application and if enabled in the notification
|
37
|
+
# @option options [Boolean] :push if True, a push notification is sent to application
|
38
|
+
$EveryLogClient.notify(...)
|
39
|
+
```
|
40
|
+
## Contributing
|
41
|
+
|
42
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/everylogsaas/everylog_ruby_client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/everylogsaas/everylog_ruby_client/blob/master/CODE_OF_CONDUCT.md).
|
43
|
+
|
44
|
+
## License
|
45
|
+
|
46
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
47
|
+
|
48
|
+
## Code of Conduct
|
49
|
+
|
50
|
+
Everyone interacting in the EveryLog ruby client project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/everylogsaas/everylog_ruby_client/blob/master/CODE_OF_CONDUCT.md).
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require_relative "everylog_ruby_client/version"
|
2
|
+
require "singleton"
|
3
|
+
require "uri"
|
4
|
+
require "net/http"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module EveryLog
|
8
|
+
class Client
|
9
|
+
include ::Singleton
|
10
|
+
|
11
|
+
SETUP_DEFAULTS = {
|
12
|
+
api_key: nil,
|
13
|
+
everylog_url: "https://api.everylog.io/api/v1/log-entries"
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
NOTIFY_DEFAULTS = {
|
17
|
+
projectId: nil,
|
18
|
+
title: nil,
|
19
|
+
summary: nil,
|
20
|
+
body: nil,
|
21
|
+
tags: [],
|
22
|
+
link: "",
|
23
|
+
push: false
|
24
|
+
}.freeze
|
25
|
+
|
26
|
+
attr_reader :options
|
27
|
+
|
28
|
+
# @param [Hash] options
|
29
|
+
# @option options [String] :api_key for authenticate against Everylog server
|
30
|
+
# @option options [String] :everylog_url (https://api.everylog.io/api/v1/log-entries) to reach Everlog server
|
31
|
+
def setup(options = {})
|
32
|
+
@options = _parse_options(options, SETUP_DEFAULTS)
|
33
|
+
self
|
34
|
+
end
|
35
|
+
|
36
|
+
# @param [Hash] options
|
37
|
+
# @option options [String] :projectId name of the project
|
38
|
+
# @option options [String] :title to display in the application and if enabled in the notification
|
39
|
+
# @option options [String] :summary is a not so long text to display on the application and if enabled in the notification
|
40
|
+
# @option options [String] :body it can contain a long text simple formatted, no html to display in the application
|
41
|
+
# @option options [Array] :tags it can be used to categorize the notification, must be strings
|
42
|
+
# @option options [String] :link it can be used to display on the application and if enabled in the notification
|
43
|
+
# @option options [Boolean] :push if True, a push notification is sent to application
|
44
|
+
def notify(notify_options = {})
|
45
|
+
@notify_options = _parse_options(notify_options, NOTIFY_DEFAULTS)
|
46
|
+
uri = URI(options[:everylog_url])
|
47
|
+
req = Net::HTTP::Post.new(uri, {
|
48
|
+
"Content-Type": "application/json",
|
49
|
+
"Authorization": "Bearer #{options[:api_key]}"
|
50
|
+
})
|
51
|
+
req.body = @notify_options.to_json
|
52
|
+
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
|
53
|
+
http.request(req)
|
54
|
+
end
|
55
|
+
res.body
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def _parse_options(options, defaults_to_dup)
|
61
|
+
defaults = defaults_to_dup.dup
|
62
|
+
result_parsed_options = options.dup
|
63
|
+
|
64
|
+
defaults.each_key do |key|
|
65
|
+
defaults[key] = defaults[key].call if defaults[key].respond_to?(:call)
|
66
|
+
result_parsed_options[key] = result_parsed_options[key.to_s] if result_parsed_options.key?(key.to_s)
|
67
|
+
end
|
68
|
+
|
69
|
+
defaults.each_key do |key|
|
70
|
+
result_parsed_options[key] = defaults[key] if result_parsed_options[key].nil?
|
71
|
+
end
|
72
|
+
|
73
|
+
result_parsed_options
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
metadata
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: everylog_ruby_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gilberto Maccacaro
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-04-22 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: " A simple Ruby with no external dependencies, to easily integrate
|
14
|
+
with Everylog API\n"
|
15
|
+
email:
|
16
|
+
- gilberto.maccacaro@devinterface.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- CHANGELOG.md
|
22
|
+
- README.md
|
23
|
+
- lib/everylog_ruby_client.rb
|
24
|
+
- lib/everylog_ruby_client/version.rb
|
25
|
+
homepage: https://github.com/everylogsaas/everylog_ruby_client
|
26
|
+
licenses:
|
27
|
+
- MIT
|
28
|
+
metadata:
|
29
|
+
bug_tracker_uri: https://github.com/everylogsaas/everylog_ruby_client/issues
|
30
|
+
changelog_uri: https://github.com/everylogsaas/everylog_ruby_client/blob/master/CHANGELOG.md
|
31
|
+
documentation_uri: https://www.rubydoc.info/gems/everylog_ruby_client/1.0.1
|
32
|
+
homepage_uri: https://github.com/everylogsaas/everylog_ruby_client
|
33
|
+
source_code_uri: https://github.com/everylogsaas/everylog_ruby_client/tree/v1.0.1
|
34
|
+
post_install_message:
|
35
|
+
rdoc_options: []
|
36
|
+
require_paths:
|
37
|
+
- lib
|
38
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.5'
|
43
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
requirements: []
|
49
|
+
rubygems_version: 3.3.3
|
50
|
+
signing_key:
|
51
|
+
specification_version: 4
|
52
|
+
summary: A Ruby client library for Everylog API
|
53
|
+
test_files: []
|