stackify-api-ruby 2.0.0 → 2.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +7 -0
- data/Gemfile +2 -2
- data/lib/stackify/engine.rb +1 -1
- data/lib/stackify/logger_proxy.rb +5 -0
- data/lib/stackify/version.rb +1 -1
- data/spec/helpers/dummy_logger.rb +41 -0
- data/spec/helpers/dummy_logger_client.rb +4 -0
- data/spec/stackify/logger_proxy_spec.rb +52 -0
- data/stackify-api-ruby.gemspec +1 -1
- metadata +11 -8
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/Gemfile.lock +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5acc15c71cbae8bfd08633043e7b8c9f227110a2c15604e5463700d9f9c8a76f
|
4
|
+
data.tar.gz: 4d0b617fe087ac42b46bf412889c6c11314a449174fc347bfb34659eec3f1f05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e60cec0819d361a387d4e26bbd1758cacffe160e4efc34f6b8958b03c4c393a854495c1664caf507ea18ad75a65c7d6d7ca7de849e6d79413b2cf9f9d8f6cab4
|
7
|
+
data.tar.gz: 769e708ff7f6c97fc55ba15e3f57c65b2d4daddb9f2eda279d140d15b646740ac2556b22e5ddf4a879ea56cdcfd8b0d0c7fc666ca779d1f5c7d54084bbd9e8c3
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
group :test do
|
2
2
|
if ENV['STACKIFY_RUBY_TEST']
|
3
|
-
gem 'stackify-ruby-apm', '~> 1.
|
3
|
+
gem 'stackify-ruby-apm', '~> 1.17.0.beta1', source: ENV['STACKIFY_RUBY_TEST_REPO']
|
4
4
|
else
|
5
|
-
gem 'stackify-ruby-apm', '~> 1.
|
5
|
+
gem 'stackify-ruby-apm', '~> 1.17.0.beta1'
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
data/lib/stackify/engine.rb
CHANGED
@@ -3,7 +3,7 @@ module Stackify
|
|
3
3
|
class Engine < ::Rails::Engine
|
4
4
|
|
5
5
|
if Rails.version > '3.1'
|
6
|
-
initializer 'Stackify set up of logger', group: :all do
|
6
|
+
initializer 'Stackify set up of logger', after: :initialize_logger , group: :all do
|
7
7
|
if Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new('4.0')
|
8
8
|
# check if the client app is using the ActiveSupport::Logger
|
9
9
|
is_activesupport_logger = ::Rails.logger.is_a?(ActiveSupport::Logger)
|
@@ -6,6 +6,7 @@ module Stackify
|
|
6
6
|
rails_logger = logger
|
7
7
|
num_level = logger.level
|
8
8
|
@logger = rails_logger
|
9
|
+
|
9
10
|
%w(debug info warn error fatal unknown).each do |level|
|
10
11
|
stackify_logger = if level == 'debug'
|
11
12
|
-> (msg, caller) { Stackify.logger_client.log(num_level, level.downcase, msg, caller) unless msg.to_s.empty? }
|
@@ -28,6 +29,10 @@ module Stackify
|
|
28
29
|
@logger.send(name, *args, **kwargs, &block)
|
29
30
|
end
|
30
31
|
|
32
|
+
def respond_to_missing?(*args, **kwargs, &block)
|
33
|
+
@logger.respond_to?(*args, **kwargs, &block)
|
34
|
+
end
|
35
|
+
|
31
36
|
private
|
32
37
|
|
33
38
|
def message *args, &block
|
data/lib/stackify/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
class DummyLogger
|
2
|
+
attr_reader :logs
|
3
|
+
attr_accessor :level
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@logs = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def debug(message)
|
10
|
+
log('debug', message)
|
11
|
+
end
|
12
|
+
|
13
|
+
def info(message)
|
14
|
+
log('info', message)
|
15
|
+
end
|
16
|
+
|
17
|
+
def warn(message)
|
18
|
+
log('warn', message)
|
19
|
+
end
|
20
|
+
|
21
|
+
def error(message)
|
22
|
+
log('error', message)
|
23
|
+
end
|
24
|
+
|
25
|
+
def fatal(message)
|
26
|
+
log('fatal', message)
|
27
|
+
end
|
28
|
+
|
29
|
+
def unknown(message)
|
30
|
+
log('unknown', message)
|
31
|
+
end
|
32
|
+
|
33
|
+
def broadcast_to(arg1, arg2)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def log(level, message)
|
39
|
+
@logs << { level: level, message: message }
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'stackify-api-ruby'
|
2
|
+
require_relative '../helpers/dummy_logger'
|
3
|
+
require_relative '../helpers/dummy_logger_client'
|
4
|
+
require 'logger'
|
5
|
+
|
6
|
+
RSpec.describe ::Stackify::LoggerProxy do
|
7
|
+
let(:proxy_logger) { DummyLogger.new() }
|
8
|
+
let(:stackify_logger) { instance_double(DummyLoggerClient) }
|
9
|
+
|
10
|
+
before do
|
11
|
+
allow(stackify_logger).to receive(:log)
|
12
|
+
allow(::Stackify).to receive(:logger_client).and_return(stackify_logger)
|
13
|
+
allow(proxy_logger).to receive(:level).and_return(Logger::INFO)
|
14
|
+
end
|
15
|
+
|
16
|
+
subject { described_class.new(proxy_logger) }
|
17
|
+
|
18
|
+
describe '#initialize' do
|
19
|
+
it 'sets up the logger methods' do
|
20
|
+
expect(subject).to respond_to(:debug)
|
21
|
+
expect(subject).to respond_to(:info)
|
22
|
+
expect(subject).to respond_to(:warn)
|
23
|
+
expect(subject).to respond_to(:error)
|
24
|
+
expect(subject).to respond_to(:fatal)
|
25
|
+
expect(subject).to respond_to(:unknown)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'log forwarding' do
|
30
|
+
it 'forwards log calls to Stackify and original logger' do
|
31
|
+
message = 'Test log message'
|
32
|
+
|
33
|
+
expect(Stackify.logger_client).to receive(:log).with(Logger::INFO, 'debug', message, any_args).once
|
34
|
+
expect(proxy_logger).to receive(:debug).with(message).once
|
35
|
+
|
36
|
+
subject.debug(message)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Add more test cases for other log levels and scenarios
|
41
|
+
describe 'method_missing and respond_to_missing?' do
|
42
|
+
it 'forwards undefined methods to the original logger' do
|
43
|
+
# since broadcast_to is available only on the DummyLogger
|
44
|
+
expect(proxy_logger).to receive(:broadcast_to).with('arg1', 'arg2').once
|
45
|
+
subject.broadcast_to('arg1', 'arg2')
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'correctly responds to defined and undefined methods' do
|
49
|
+
expect(subject).to respond_to(:broadcast_to)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/stackify-api-ruby.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = 'Stackify Logs and Metrics API for Ruby'
|
13
13
|
spec.homepage = 'http://www.stackify.com/'
|
14
14
|
spec.license = 'Apache-2.0'
|
15
|
-
spec.required_ruby_version = '>=
|
15
|
+
spec.required_ruby_version = '>= 2.0'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0")
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackify-api-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stackify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -88,10 +88,7 @@ extensions: []
|
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
90
|
- ".gitignore"
|
91
|
-
- ".ruby-gemset"
|
92
|
-
- ".ruby-version"
|
93
91
|
- Gemfile
|
94
|
-
- Gemfile.lock
|
95
92
|
- README.md
|
96
93
|
- Rakefile
|
97
94
|
- lib/core_ext/core_ext.rb
|
@@ -139,8 +136,11 @@ files:
|
|
139
136
|
- lib/stackify/workers/logs_sender_worker.rb
|
140
137
|
- lib/stackify/workers/msgs_queue_worker.rb
|
141
138
|
- lib/stackify/workers/worker.rb
|
139
|
+
- spec/helpers/dummy_logger.rb
|
140
|
+
- spec/helpers/dummy_logger_client.rb
|
142
141
|
- spec/rum_spec.rb
|
143
142
|
- spec/spec_helper.rb
|
143
|
+
- spec/stackify/logger_proxy_spec.rb
|
144
144
|
- stackify-api-ruby.gemspec
|
145
145
|
homepage: http://www.stackify.com/
|
146
146
|
licenses:
|
@@ -154,17 +154,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
154
154
|
requirements:
|
155
155
|
- - ">="
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version: '
|
157
|
+
version: '2.0'
|
158
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- - "
|
160
|
+
- - ">"
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
162
|
+
version: 1.3.1
|
163
163
|
requirements: []
|
164
164
|
rubygems_version: 3.4.10
|
165
165
|
signing_key:
|
166
166
|
specification_version: 4
|
167
167
|
summary: Stackify API for Ruby
|
168
168
|
test_files:
|
169
|
+
- spec/helpers/dummy_logger.rb
|
170
|
+
- spec/helpers/dummy_logger_client.rb
|
169
171
|
- spec/rum_spec.rb
|
170
172
|
- spec/spec_helper.rb
|
173
|
+
- spec/stackify/logger_proxy_spec.rb
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
stackify-api-ruby
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-2.1.2
|
data/Gemfile.lock
DELETED
@@ -1,84 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
stackify-api-ruby (2.0.0.beta1)
|
5
|
-
faraday (~> 0.8)
|
6
|
-
net_http_unix (~> 0.2)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
concurrent-ruby (1.2.2)
|
12
|
-
delegate_matcher (0.4.3)
|
13
|
-
proc_extensions (~> 0.2)
|
14
|
-
diff-lcs (1.4.4)
|
15
|
-
et-orbi (1.2.7)
|
16
|
-
tzinfo
|
17
|
-
faraday (0.17.4)
|
18
|
-
multipart-post (>= 1.2, < 3)
|
19
|
-
file-tail (1.2.0)
|
20
|
-
tins (~> 1.0)
|
21
|
-
fugit (1.8.1)
|
22
|
-
et-orbi (~> 1, >= 1.2.7)
|
23
|
-
raabro (~> 1.4)
|
24
|
-
multipart-post (2.1.1)
|
25
|
-
net_http_unix (0.2.2)
|
26
|
-
proc_extensions (0.2)
|
27
|
-
sourcify (~> 0.5)
|
28
|
-
raabro (1.4.0)
|
29
|
-
rake (10.5.0)
|
30
|
-
rspec (3.10.0)
|
31
|
-
rspec-core (~> 3.10.0)
|
32
|
-
rspec-expectations (~> 3.10.0)
|
33
|
-
rspec-mocks (~> 3.10.0)
|
34
|
-
rspec-core (3.10.1)
|
35
|
-
rspec-support (~> 3.10.0)
|
36
|
-
rspec-expectations (3.10.1)
|
37
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
-
rspec-support (~> 3.10.0)
|
39
|
-
rspec-mocks (3.10.2)
|
40
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
41
|
-
rspec-support (~> 3.10.0)
|
42
|
-
rspec-support (3.10.2)
|
43
|
-
ruby2ruby (2.5.0)
|
44
|
-
ruby_parser (~> 3.1)
|
45
|
-
sexp_processor (~> 4.6)
|
46
|
-
ruby_parser (3.20.1)
|
47
|
-
sexp_processor (~> 4.16)
|
48
|
-
rufus-scheduler (3.8.2)
|
49
|
-
fugit (~> 1.1, >= 1.1.6)
|
50
|
-
sexp_processor (4.17.0)
|
51
|
-
sourcify (0.5.0)
|
52
|
-
file-tail (>= 1.0.5)
|
53
|
-
ruby2ruby (>= 1.2.5)
|
54
|
-
ruby_parser (>= 2.0.5)
|
55
|
-
sexp_processor (>= 3.0.5)
|
56
|
-
stackify-ruby-apm (1.16.0.beta1)
|
57
|
-
concurrent-ruby
|
58
|
-
delegate_matcher
|
59
|
-
faraday
|
60
|
-
net_http_unix
|
61
|
-
rufus-scheduler
|
62
|
-
sync (0.5.0)
|
63
|
-
tins (1.32.1)
|
64
|
-
sync
|
65
|
-
tzinfo (2.0.6)
|
66
|
-
concurrent-ruby (~> 1.0)
|
67
|
-
tzinfo-data (1.2023.3)
|
68
|
-
tzinfo (>= 1.0.0)
|
69
|
-
|
70
|
-
PLATFORMS
|
71
|
-
ruby
|
72
|
-
x64-mingw-ucrt
|
73
|
-
x86-mingw32
|
74
|
-
|
75
|
-
DEPENDENCIES
|
76
|
-
bundler (~> 2.0)
|
77
|
-
rake (~> 10.0)
|
78
|
-
rspec (~> 3.0)
|
79
|
-
stackify-api-ruby!
|
80
|
-
stackify-ruby-apm (~> 1.16.0.beta1)
|
81
|
-
tzinfo-data
|
82
|
-
|
83
|
-
BUNDLED WITH
|
84
|
-
2.4.10
|