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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9b32474a263221d764bb23c5d787f80e67072c62e0fcfa9c59eb006cc0900e6
4
- data.tar.gz: 71bab1fba537e39782c0bdb93a64bbcb66a4385e7bb010b82e50248cfd1e4f25
3
+ metadata.gz: 5acc15c71cbae8bfd08633043e7b8c9f227110a2c15604e5463700d9f9c8a76f
4
+ data.tar.gz: 4d0b617fe087ac42b46bf412889c6c11314a449174fc347bfb34659eec3f1f05
5
5
  SHA512:
6
- metadata.gz: c9953e36b9c753ac698d3d8be088ad22f29d7897357d0ffd25aedeed55c8c6d99969632900c1df40798a5c54356dc2043147b20b4a9f6a691aeb922ed7f050db
7
- data.tar.gz: 26efa78b3d3a670e93a1bff5fe95fbc69686a230a55ae9863d43bc4cfb8dd2abdee5dfc2470e198114c3de7b130b95807efa2270d95bd7b588ab9239c945b690
6
+ metadata.gz: e60cec0819d361a387d4e26bbd1758cacffe160e4efc34f6b8958b03c4c393a854495c1664caf507ea18ad75a65c7d6d7ca7de849e6d79413b2cf9f9d8f6cab4
7
+ data.tar.gz: 769e708ff7f6c97fc55ba15e3f57c65b2d4daddb9f2eda279d140d15b646740ac2556b22e5ddf4a879ea56cdcfd8b0d0c7fc666ca779d1f5c7d54084bbd9e8c3
data/.gitignore CHANGED
@@ -21,3 +21,10 @@
21
21
  # Ignore IntelliJ files
22
22
  /.idea
23
23
  *.iml
24
+
25
+ # Ignore lock file
26
+ Gemfile.lock
27
+
28
+ # Version specific files
29
+ .ruby-version
30
+ .ruby-gemset
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.16.0', source: ENV['STACKIFY_RUBY_TEST_REPO']
3
+ gem 'stackify-ruby-apm', '~> 1.17.0.beta1', source: ENV['STACKIFY_RUBY_TEST_REPO']
4
4
  else
5
- gem 'stackify-ruby-apm', '~> 1.16.0'
5
+ gem 'stackify-ruby-apm', '~> 1.17.0.beta1'
6
6
  end
7
7
  end
8
8
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Stackify
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.0.beta1'
3
3
  end
@@ -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,4 @@
1
+ class DummyLoggerClient
2
+ def log num_level, level, msg, call_trace
3
+ end
4
+ 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
@@ -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 = '>= 3.0'
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.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: 2023-06-20 00:00:00.000000000 Z
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: '3.0'
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: '0'
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