polyseerio 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +55 -26
- data/lib/agent/agent.rb +2 -0
- data/lib/agent/default_config.rb +7 -2
- data/lib/agent/enum.rb +7 -2
- data/lib/agent/executor.rb +3 -0
- data/lib/agent/handler/fact.rb +25 -3
- data/lib/agent/helper.rb +7 -1
- data/lib/constant.rb +9 -8
- data/lib/log.rb +52 -0
- data/lib/polyseerio.rb +6 -3
- data/lib/resource/base.rb +12 -2
- data/lib/resource/helper.rb +5 -0
- data/lib/sdk/factory.rb +6 -2
- data/lib/sdk/helper.rb +10 -0
- data/lib/sdk/method/add_fact.rb +2 -2
- data/lib/sdk/method/add_gauge.rb +2 -2
- data/lib/sdk/method/attach.rb +21 -4
- data/polyseerio.gemspec +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16f2ef0fd6b6622958565152391927ab6ae358e7
|
4
|
+
data.tar.gz: 9166ea14ae11b4c31a068501e9f10aac305ba309
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb3b8b002effa1260fba13e39b656a63328fb539e6b33b6ce80b7745b23c671993221fab0b02588ff43ce5a606eecd825bb0a3345ba2bf5acea87d0b099cd6b2
|
7
|
+
data.tar.gz: 88edf82571ff4fcba7583d57a501774d2fb61abd17d91a29302c5d0b9f533eab8df881263bf61ed00dc9b5c11f9ec320ca3ffaa30e779b24ada9bf75663cd941
|
data/README.md
CHANGED
@@ -4,6 +4,12 @@
|
|
4
4
|
|
5
5
|
The official Polyseer.io SDK for Ruby. Detailed API information can be found at (https://polyseer.io/documentation).
|
6
6
|
|
7
|
+
## About
|
8
|
+
|
9
|
+
Polyseer.io is an Integrated Development Platform that instantly
|
10
|
+
provides teams with the resources needed to build, support, and maintain world
|
11
|
+
class software products.
|
12
|
+
|
7
13
|
## Requirements
|
8
14
|
- Ruby
|
9
15
|
- gem
|
@@ -20,14 +26,15 @@ To add to your project Gemfile, insert:
|
|
20
26
|
|
21
27
|
## Example
|
22
28
|
|
23
|
-
|
29
|
+
Be sure to check out the examples in /example.
|
24
30
|
|
25
31
|
## Environment Variables
|
26
32
|
|
27
33
|
Certain values can be set in environment variables:
|
28
34
|
|
29
|
-
* POLYSEERIO_TOKEN
|
30
|
-
* RAILS_ENV
|
35
|
+
* POLYSEERIO_TOKEN access-token used for API calls
|
36
|
+
* RAILS_ENV the current environment
|
37
|
+
* POLYSEERIO_LOG_LEVEL SDK logging level
|
31
38
|
|
32
39
|
## Usage
|
33
40
|
|
@@ -63,7 +70,7 @@ delaying and chaining async work.
|
|
63
70
|
|
64
71
|
## Example
|
65
72
|
|
66
|
-
|
73
|
+
Be sure to check out the examples in /example.
|
67
74
|
|
68
75
|
## SDK Resources
|
69
76
|
|
@@ -74,20 +81,20 @@ client has been created you may use any of its resources.
|
|
74
81
|
### Polyseerio
|
75
82
|
|
76
83
|
* Polyseerio
|
77
|
-
* .`start(options = {}) ⇒ Polyseerio::Client`
|
78
|
-
* Create a client and start an Agent.
|
79
|
-
* `options (Hash)`
|
80
|
-
- `:env` environment variable that holds the current environment
|
81
|
-
- `:token` an api token
|
82
|
-
- `:token_env` if no token is provided, this environment variable will be checked
|
83
|
-
- `:agent` a hash that will be used when starting this client's agent
|
84
|
-
- `:upsert_env` if an environment cannot be found it will be created
|
85
|
-
- `:version` api version to use
|
86
|
-
- `:timeout` integer containing number of ms to wait for server responses
|
87
|
-
- `:deduce` if the environment should be deduced when not supplied
|
88
84
|
* .`make(options = {}) ⇒ Polyseerio::Client`
|
89
85
|
* Create a client.
|
90
86
|
* `options (Hash)` see Polyseerio.start options.
|
87
|
+
- `:deduce (Boolean)` if the environment should be deduced when not supplied
|
88
|
+
- `:env (String)` environment variable that holds the current environment
|
89
|
+
- `:timeout (Integer)` integer containing number of ms to wait for server responses
|
90
|
+
- `:token (String)` an api token
|
91
|
+
- `:token_env (String)` if no token is provided, this environment variable will be checked
|
92
|
+
- `:upsert_env (Boolean)` if an environment cannot be found it will be created
|
93
|
+
- `:version (String)` api version to use
|
94
|
+
* .`start(options = {}) ⇒ Polyseerio::Client`
|
95
|
+
* Create a client and start an Agent.
|
96
|
+
* `options (Hash)`
|
97
|
+
- `:agent (Hash)` agent options (see client.start_agent options)
|
91
98
|
* `::Enum`
|
92
99
|
* `::Color (Hash)` platform color values
|
93
100
|
* `::Determiner (Hash)` expectation deteriner types
|
@@ -104,17 +111,34 @@ client has been created you may use any of its resources.
|
|
104
111
|
* `.current_environment ⇒ client.Environment`
|
105
112
|
* Resolves the current environment **IF** it has been deduced.
|
106
113
|
* `.start_agent(options = {}) ⇒ Polyseerio::Client`
|
107
|
-
* Starts the Polyseer.io agent
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
114
|
+
* Starts the Polyseer.io agent for this client.
|
115
|
+
* `options`
|
116
|
+
- `.attach (Boolean)`
|
117
|
+
- `.attach_strategy (Symbol)`
|
118
|
+
- `.name (String)` instance name (will be used as a unique id)
|
119
|
+
- `.description (String)` a description of this instance
|
120
|
+
- `.group (String)` what group this instance belongs to
|
121
|
+
- `.direction (String)` the monitoring direction (inbound) // force this
|
122
|
+
- `.subtype (Polyseerio::Enum::Subtype)` the instance subtype: periodic or long_running.
|
123
|
+
- `.expectation` will be upserted for this instance
|
124
|
+
- `.is_alive (Boolean)` create an expectation that this process is alive
|
125
|
+
- `.fact`
|
126
|
+
- `.engine (Boolean)` the current ruby engine
|
127
|
+
- `.gid (Boolean)` the group if othe process is running under
|
128
|
+
- `.launch_arguments (Boolean)` command used to launch the instance
|
129
|
+
- `.pid (Boolean)` the id of the process
|
130
|
+
- `.platform (Boolean)` the operating platform of
|
131
|
+
- `.ruby_version (Boolean)` the version of ruby being used
|
132
|
+
- `.uid (Boolean)` user id the process is running as
|
133
|
+
- `.metric`
|
134
|
+
- `.cpu (Boolean)` track user and system cpu usage
|
135
|
+
- `.memory (Boolean)` track memory usage
|
136
|
+
- `.uptime (Boolean)` track process uptime
|
137
|
+
- `.event`
|
138
|
+
- `.start (Boolean)` event notice when agent starts
|
139
|
+
- `.stop (Boolean)` event notice when agent stops
|
140
|
+
- `.process_event`
|
141
|
+
- `.exit (Boolean)` event notice on process exit
|
118
142
|
|
119
143
|
### Alert
|
120
144
|
|
@@ -305,3 +329,8 @@ Requires the environment to have a root level access-token defined as:
|
|
305
329
|
### All
|
306
330
|
|
307
331
|
make test
|
332
|
+
|
333
|
+
## Debugging
|
334
|
+
|
335
|
+
Set the environment variable POLYSEERIO_LOG_LEVEL to debug in order to get
|
336
|
+
detailed logging information.
|
data/lib/agent/agent.rb
CHANGED
data/lib/agent/default_config.rb
CHANGED
@@ -24,8 +24,13 @@ module Polyseerio
|
|
24
24
|
is_alive: true
|
25
25
|
},
|
26
26
|
fact: {
|
27
|
-
|
28
|
-
|
27
|
+
Enum::Fact::ENGINE => true,
|
28
|
+
Enum::Fact::GID => true,
|
29
|
+
Enum::Fact::LAUNCH_ARGUMENTS => true,
|
30
|
+
Enum::Fact::PID => true,
|
31
|
+
Enum::Fact::PLATFORM => true,
|
32
|
+
Enum::Fact::RUBY_VERSION => true,
|
33
|
+
Enum::Fact::UID => true
|
29
34
|
},
|
30
35
|
metric: {
|
31
36
|
memory: true,
|
data/lib/agent/enum.rb
CHANGED
@@ -11,8 +11,13 @@ module Polyseerio
|
|
11
11
|
end
|
12
12
|
|
13
13
|
module Fact
|
14
|
-
|
15
|
-
GID
|
14
|
+
ENGINE = :engine
|
15
|
+
GID = :gid
|
16
|
+
LAUNCH_ARGUMENTS = :launch_arguments
|
17
|
+
PID = :pid
|
18
|
+
PLATFORM = :platform
|
19
|
+
RUBY_VERSION = :ruby_version
|
20
|
+
UID = :uid
|
16
21
|
end
|
17
22
|
|
18
23
|
module Signal
|
data/lib/agent/executor.rb
CHANGED
@@ -11,6 +11,8 @@ module Polyseerio
|
|
11
11
|
module Executor
|
12
12
|
# Setsup a client's agent.
|
13
13
|
def self.setup(client, options = {})
|
14
|
+
Polyseerio.log 'debug', 'Setting up client agent.'
|
15
|
+
|
14
16
|
options = Polyseerio::Helper.defaults(options, DEFAULT_CONFIG)
|
15
17
|
|
16
18
|
Concurrent::Promise.new do
|
@@ -42,6 +44,7 @@ module Polyseerio
|
|
42
44
|
Concurrent::Promise.zip(*setups).execute.value
|
43
45
|
|
44
46
|
# Start monitoring.
|
47
|
+
Polyseerio.log 'debug', 'Attaching instance to Polyseer.io'
|
45
48
|
instance.attach.execute.value
|
46
49
|
|
47
50
|
instance
|
data/lib/agent/handler/fact.rb
CHANGED
@@ -4,12 +4,34 @@ module Polyseerio
|
|
4
4
|
module Handler
|
5
5
|
def self.fact
|
6
6
|
{
|
7
|
-
Fact::
|
8
|
-
client.instance.
|
7
|
+
Fact::ENGINE => proc do |_config, client|
|
8
|
+
client.instance.add_fact('engine', RUBY_ENGINE)
|
9
9
|
end,
|
10
10
|
|
11
11
|
Fact::GID => proc do |_config, client|
|
12
|
-
client.instance.
|
12
|
+
client.instance.add_fact('gid', ::Process.gid)
|
13
|
+
end,
|
14
|
+
|
15
|
+
Fact::LAUNCH_ARGUMENTS => proc do |_config, client|
|
16
|
+
value = ARGV.join('')
|
17
|
+
|
18
|
+
client.instance.add_fact('launch_arguments', value)
|
19
|
+
end,
|
20
|
+
|
21
|
+
Fact::PID => proc do |_config, client|
|
22
|
+
client.instance.add_fact('pid', ::Process.pid)
|
23
|
+
end,
|
24
|
+
|
25
|
+
Fact::PLATFORM => proc do |_config, client|
|
26
|
+
client.instance.add_fact('platform', RUBY_PLATFORM)
|
27
|
+
end,
|
28
|
+
|
29
|
+
Fact::RUBY_VERSION => proc do |_config, client|
|
30
|
+
client.instance.add_fact('ruby_version', RUBY_VERSION)
|
31
|
+
end,
|
32
|
+
|
33
|
+
Fact::UID => proc do |_config, client|
|
34
|
+
client.instance.add_fact('uid', ::Process.uid)
|
13
35
|
end
|
14
36
|
}
|
15
37
|
end
|
data/lib/agent/helper.rb
CHANGED
@@ -23,7 +23,9 @@ module Polyseerio
|
|
23
23
|
def self.create_handler(iteratee)
|
24
24
|
proc do |map, client, config, type, *args|
|
25
25
|
if map.key? type.to_sym
|
26
|
-
if config.key? type
|
26
|
+
if config.key? type # to_sym?
|
27
|
+
Polyseerio.log 'debug', "Performing handler work for: #{type}."
|
28
|
+
|
27
29
|
# TODO: unit-test passed args
|
28
30
|
work = config.fetch(type)
|
29
31
|
.map(&iteratee.call(map.fetch(type), client, *args))
|
@@ -42,6 +44,8 @@ module Polyseerio
|
|
42
44
|
# Returns a setup handler function.
|
43
45
|
@setup = proc do |handlers_outer, *args_outer|
|
44
46
|
setup_iterator = proc do |handlers, key, value, *args|
|
47
|
+
Polyseerio.log 'debug', "Setting up handler for: #{key}."
|
48
|
+
|
45
49
|
handler = handlers.fetch(key)
|
46
50
|
|
47
51
|
if handler.respond_to? :call
|
@@ -59,6 +63,8 @@ module Polyseerio
|
|
59
63
|
|
60
64
|
@teardown = proc do |handlers_outer, *args_outer|
|
61
65
|
teardown_iterator = proc do |handlers, key, _value, *args|
|
66
|
+
Polyseerio.log 'debug', "Tearing down handler for: #{key}."
|
67
|
+
|
62
68
|
if handlers.fetch(key).key? Handler::Interface::TEARDOWN
|
63
69
|
handlers.fetch(key).fetch(Handler::Interface::TEARDOWN).call(*args)
|
64
70
|
else
|
data/lib/constant.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module Polyseerio
|
2
2
|
module Constant
|
3
|
-
ACCESS_TOKEN_HEADER
|
4
|
-
DEFAULT_API_BASE_URL
|
5
|
-
DEFAULT_API_PROTOCOL
|
6
|
-
DEFAULT_API_VERSION
|
7
|
-
DEFAULT_ENV
|
8
|
-
DEFAULT_ENVIRONMENT
|
9
|
-
|
10
|
-
|
3
|
+
ACCESS_TOKEN_HEADER = 'X-AUTH-HEADER'.freeze
|
4
|
+
DEFAULT_API_BASE_URL = 'api.polyseer.io/polyseer'.freeze
|
5
|
+
DEFAULT_API_PROTOCOL = 'https://'.freeze
|
6
|
+
DEFAULT_API_VERSION = 'v1'.freeze
|
7
|
+
DEFAULT_ENV = 'RAILS_ENV'.freeze
|
8
|
+
DEFAULT_ENVIRONMENT = 'development'.freeze
|
9
|
+
DEFAULT_HEARTBEAT_DELAY = 30_000
|
10
|
+
DEFAULT_TIMEOUT = 10_000
|
11
|
+
DEFAULT_TOKEN_ENV = 'POLYSEERIO_TOKEN'.freeze
|
11
12
|
end
|
12
13
|
end
|
data/lib/log.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
# Introduces a logger into the main module.
|
4
|
+
module Polyseerio
|
5
|
+
class << self
|
6
|
+
attr_writer :logger
|
7
|
+
|
8
|
+
# Convert a string log level to a severity.
|
9
|
+
def level_to_severity(level) # rubocop:disable all
|
10
|
+
case level
|
11
|
+
when 'debug'
|
12
|
+
Logger::DEBUG
|
13
|
+
when 'error'
|
14
|
+
Logger::ERROR
|
15
|
+
when 'fatal'
|
16
|
+
Logger::FATAL
|
17
|
+
when 'info'
|
18
|
+
Logger::INFO
|
19
|
+
when 'unknown'
|
20
|
+
Logger::UNKNOWN
|
21
|
+
when 'warn'
|
22
|
+
Logger::WARN
|
23
|
+
else
|
24
|
+
raise ArgumentError, "Unsupported log level: #{level}."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Gem logger.
|
29
|
+
def logger
|
30
|
+
@logger ||= Logger.new($stdout).tap do |log|
|
31
|
+
log.level = if ENV.key? 'POLYSEERIO_LOG_LEVEL'
|
32
|
+
level_to_severity ENV['POLYSEERIO_LOG_LEVEL']
|
33
|
+
else
|
34
|
+
Logger::ERROR
|
35
|
+
end
|
36
|
+
|
37
|
+
log.progname = name
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Convenience logging method.
|
42
|
+
def log(severity, *args)
|
43
|
+
severity = if severity.is_a? String
|
44
|
+
level_to_severity severity
|
45
|
+
else
|
46
|
+
severity
|
47
|
+
end
|
48
|
+
|
49
|
+
logger.log(severity, *args)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/polyseerio.rb
CHANGED
@@ -2,6 +2,7 @@ require 'resource/factory'
|
|
2
2
|
require 'request'
|
3
3
|
require 'middleware'
|
4
4
|
require 'constant'
|
5
|
+
require 'log'
|
5
6
|
require 'enum'
|
6
7
|
require 'client'
|
7
8
|
require 'url_builder'
|
@@ -52,10 +53,12 @@ module Polyseerio
|
|
52
53
|
}.freeze
|
53
54
|
|
54
55
|
# Create a client and start it's agent.
|
55
|
-
def self.start(
|
56
|
-
|
56
|
+
def self.start(options = {})
|
57
|
+
options = Helper.defaults(options, DEFAULT_CLIENT_OPTIONS)
|
58
|
+
|
59
|
+
client = make(options)
|
57
60
|
|
58
|
-
client.start_agent
|
61
|
+
client.start_agent(options[:agent])
|
59
62
|
end
|
60
63
|
|
61
64
|
@make_call_count = 0
|
data/lib/resource/base.rb
CHANGED
@@ -48,6 +48,16 @@ module Polyseerio
|
|
48
48
|
id.nil?
|
49
49
|
end
|
50
50
|
|
51
|
+
# TODO: move towards this
|
52
|
+
def get(key, default = nil)
|
53
|
+
@attributes.fetch(key, default)
|
54
|
+
end
|
55
|
+
|
56
|
+
# TODO: move towards this
|
57
|
+
def set(key, value)
|
58
|
+
@attributes[key] = value
|
59
|
+
end
|
60
|
+
|
51
61
|
def method_missing(name, *args) # rubocop:disable all
|
52
62
|
# Setter.
|
53
63
|
if name =~ /^(\w+)=$/
|
@@ -60,8 +70,8 @@ module Polyseerio
|
|
60
70
|
@attributes.fetch(name, nil)
|
61
71
|
end
|
62
72
|
|
63
|
-
def respond_to_missing?(
|
64
|
-
|
73
|
+
def respond_to_missing?(method_name)
|
74
|
+
!methods.include(method_name)
|
65
75
|
end
|
66
76
|
|
67
77
|
private
|
data/lib/resource/helper.rb
CHANGED
@@ -13,6 +13,11 @@ module Polyseerio
|
|
13
13
|
|
14
14
|
# Given a request path an eid is returned or nil
|
15
15
|
def self.get_eid_from_resource_path(path)
|
16
|
+
# TODO: consolidate with regex?
|
17
|
+
if path.include? '/environments/name/'
|
18
|
+
return path.split('/environments/name/').last
|
19
|
+
end
|
20
|
+
|
16
21
|
result = EID_REGEX.match path
|
17
22
|
|
18
23
|
return result if result.nil?
|
data/lib/sdk/factory.rb
CHANGED
@@ -12,7 +12,7 @@ module Polyseerio
|
|
12
12
|
|
13
13
|
statics = statics.each_with_object({}, &accumulator)
|
14
14
|
|
15
|
-
# curry request,
|
15
|
+
# curry request, resource, and options
|
16
16
|
statics.each_with_object(statics) do |(name, static), hash|
|
17
17
|
if static.arity > 3
|
18
18
|
hash[name] = static.curry.call(request, resource, options)
|
@@ -27,7 +27,11 @@ module Polyseerio
|
|
27
27
|
module Method
|
28
28
|
# Generates method (instance) functions.
|
29
29
|
def self.factory(_request, _resource, methods = [], _options = {})
|
30
|
-
|
30
|
+
accumulator = Helper.accumulate_procs('method', MAP)
|
31
|
+
|
32
|
+
methods = methods.each_with_object({}, &accumulator)
|
33
|
+
|
34
|
+
methods
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
data/lib/sdk/helper.rb
CHANGED
@@ -6,6 +6,16 @@ module Polyseerio
|
|
6
6
|
module SDK
|
7
7
|
# SDK helpers.
|
8
8
|
module Helper
|
9
|
+
# Takes a hash and returns a new one that only contains values
|
10
|
+
# that are blocks / procs / anything callable aka resolvable.
|
11
|
+
def self.remove_non_resolving_values(hash)
|
12
|
+
hash.each_with_object({}) do |(key, value), acc|
|
13
|
+
acc[key] = value if value.respond_to? :call
|
14
|
+
|
15
|
+
acc
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
# Takes an instance and returns a uri.
|
10
20
|
def self.instance_to_uri(instance)
|
11
21
|
URL.get_resource_path(
|
data/lib/sdk/method/add_fact.rb
CHANGED
data/lib/sdk/method/add_gauge.rb
CHANGED
data/lib/sdk/method/attach.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'sdk/helper'
|
2
2
|
require 'concurrent'
|
3
|
+
require 'constant'
|
3
4
|
|
4
5
|
module Polyseerio
|
5
6
|
module SDK
|
@@ -7,13 +8,29 @@ module Polyseerio
|
|
7
8
|
module Method
|
8
9
|
def self.attach
|
9
10
|
proc do |instance|
|
11
|
+
options = Polyseerio::Helper.defaults(
|
12
|
+
{},
|
13
|
+
delay: Constant::DEFAULT_HEARTBEAT_DELAY
|
14
|
+
)
|
15
|
+
|
10
16
|
uri = Helper.instance_to_uri instance
|
11
17
|
|
18
|
+
options[:delay] = Polyseerio::Helper.ms_to_seconds options[:delay]
|
19
|
+
|
12
20
|
Concurrent::Promise.new do
|
13
|
-
heartbeat_thread = Thread.new(instance
|
14
|
-
|
15
|
-
|
16
|
-
|
21
|
+
heartbeat_thread = Thread.new(instance, options) do |inst, opts|
|
22
|
+
begin
|
23
|
+
loop do
|
24
|
+
payload = {}
|
25
|
+
|
26
|
+
Polyseerio.log 'debug', 'Sending heartbeat.'
|
27
|
+
inst.request.post("#{uri}/heartbeat", payload).execute.value
|
28
|
+
|
29
|
+
sleep(opts[:delay])
|
30
|
+
end
|
31
|
+
rescue => err
|
32
|
+
Polyseerio.log 'error', 'Heartbeat failed.'
|
33
|
+
Polyseerio.log 'error', err.message
|
17
34
|
end
|
18
35
|
end
|
19
36
|
|
data/polyseerio.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polyseerio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Feigenbaum
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- lib/constant.rb
|
139
139
|
- lib/enum.rb
|
140
140
|
- lib/helper.rb
|
141
|
+
- lib/log.rb
|
141
142
|
- lib/middleware.rb
|
142
143
|
- lib/polyseerio.rb
|
143
144
|
- lib/request.rb
|
@@ -198,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
199
|
version: '0'
|
199
200
|
requirements: []
|
200
201
|
rubyforge_project:
|
201
|
-
rubygems_version: 2.
|
202
|
+
rubygems_version: 2.5.1
|
202
203
|
signing_key:
|
203
204
|
specification_version: 4
|
204
205
|
summary: Polyseer.io SDK for Ruby.
|