stackify-api-ruby 1.3.0.beta1 → 2.1.0.beta1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae96dffa800668cd0f8ab55fc62232c43951fbe5bf9700992698ece32bbbf006
4
- data.tar.gz: 7e44e75717ecb342cdb632766708bb765793df1a92b534e689d59079c43d2bbd
3
+ metadata.gz: 5acc15c71cbae8bfd08633043e7b8c9f227110a2c15604e5463700d9f9c8a76f
4
+ data.tar.gz: 4d0b617fe087ac42b46bf412889c6c11314a449174fc347bfb34659eec3f1f05
5
5
  SHA512:
6
- metadata.gz: 032502e0aff449fa9ad239f282751ee0699cffcca713f14dff414eaac255cbabba348bcbabc5f5800be8aadecd787c1a7ba9d92620a86cb41ee7f579a1f6d56b
7
- data.tar.gz: 8e93149a91583a7f9accc6d6ba1e87767ea8daa96049fc25941b89b27f4a1c459e4d6cce050126306b8097d979b993b5ddfe0c984191b7f503a6bc3af50948a3
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.15', 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.15'
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? }
@@ -24,8 +25,12 @@ module Stackify
24
25
 
25
26
  protected
26
27
 
27
- def method_missing(name, *args, &block)
28
- @logger.send(name, *args, &block)
28
+ def method_missing(name, *args, **kwargs, &block)
29
+ @logger.send(name, *args, **kwargs, &block)
30
+ end
31
+
32
+ def respond_to_missing?(*args, **kwargs, &block)
33
+ @logger.respond_to?(*args, **kwargs, &block)
29
34
  end
30
35
 
31
36
  private
@@ -1,3 +1,3 @@
1
1
  module Stackify
2
- VERSION = '1.3.0.beta1'
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,18 +12,18 @@ 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 = '>= 1.9'
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) }
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_development_dependency 'bundler', '~> 1.6'
23
- spec.add_development_dependency 'rake', '~> 0'
22
+ spec.add_development_dependency 'bundler', '~> 2.0'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
24
  spec.add_development_dependency 'rspec', '~> 3.0'
25
25
 
26
- if RUBY_PLATFORM == 'i386-mingw32'
26
+ if RUBY_PLATFORM =~ /mingw32|win32|x64/
27
27
  spec.add_development_dependency 'tzinfo-data'
28
28
  end
29
29
 
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: 1.3.0.beta1
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: 2021-08-23 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
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -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: '1.9'
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
162
  version: 1.3.1
163
163
  requirements: []
164
- rubygems_version: 3.0.1
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,62 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- stackify-api-ruby (1.3.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.1.9)
12
- diff-lcs (1.4.4)
13
- et-orbi (1.2.4)
14
- tzinfo
15
- faraday (0.17.4)
16
- multipart-post (>= 1.2, < 3)
17
- fugit (1.5.0)
18
- et-orbi (~> 1.1, >= 1.1.8)
19
- raabro (~> 1.4)
20
- multipart-post (2.1.1)
21
- net_http_unix (0.2.2)
22
- raabro (1.4.0)
23
- rake (0.9.6)
24
- rspec (3.10.0)
25
- rspec-core (~> 3.10.0)
26
- rspec-expectations (~> 3.10.0)
27
- rspec-mocks (~> 3.10.0)
28
- rspec-core (3.10.1)
29
- rspec-support (~> 3.10.0)
30
- rspec-expectations (3.10.1)
31
- diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.10.0)
33
- rspec-mocks (3.10.2)
34
- diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.10.0)
36
- rspec-support (3.10.2)
37
- rufus-scheduler (3.8.0)
38
- fugit (~> 1.1, >= 1.1.6)
39
- stackify-ruby-apm (1.15.1)
40
- concurrent-ruby (~> 1.0)
41
- faraday (~> 0.8)
42
- net_http_unix (~> 0.2)
43
- rufus-scheduler (~> 3.0)
44
- tzinfo (2.0.4)
45
- concurrent-ruby (~> 1.0)
46
- tzinfo-data (1.2021.1)
47
- tzinfo (>= 1.0.0)
48
-
49
- PLATFORMS
50
- ruby
51
- x86-mingw32
52
-
53
- DEPENDENCIES
54
- bundler (~> 1.6)
55
- rake (~> 0)
56
- rspec (~> 3.0)
57
- stackify-api-ruby!
58
- stackify-ruby-apm (~> 1.15)
59
- tzinfo-data
60
-
61
- BUNDLED WITH
62
- 1.17.13