stackify-api-ruby 1.3.0.beta1 → 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: 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