stack-service-base 0.0.73 → 0.0.75

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: 632c6fec4c3cbc54cc102efae0276161230257a416c39d2f53dcb71866f9e7bd
4
- data.tar.gz: 013fabef26f4637e462e0d36df2d6ee90afe70341f2a2b288dc6620fae9e23dd
3
+ metadata.gz: 42a684599ec2f5f4ce219ff383bb91f280f3551633c88e5c854971e358b4d40a
4
+ data.tar.gz: 900890a86bfc5070661c1dcf7b533994685cfd118197d960e16bff8fe2236722
5
5
  SHA512:
6
- metadata.gz: 1b2dfe8af5b3d60fc61d6c089b474045ee67aae19a310b4fa1f18ea18645f9ce2f3f0878cc78acd0f34fb4f441f43e3ed4dd89e61acf9f55eb4885d9d20fe221
7
- data.tar.gz: f896068deea3423d5271993d5d7696f8c4c4d468238299275638ed50e3759a8bf01259c5ebee77761a4ed69b6a0ddd4eb4ab8a396dde328b84397f71e030c78d
6
+ metadata.gz: b5d88abae4042bfbb7dff5a190c1d31c27fc8a712eda46984c47f4c5e301a56cf25484a6ae49ed573b066d9c7776d8fbc05d14c865651d70696daa8236f8dacf
7
+ data.tar.gz: 189b5f00ebb89a0d08e1d482c27795f95697ac8e00388940e073218790420d0fe8cd8ab329ed7a441d6450dec2e6b653899f111bc408aeddfdfb75a14ca46ddd
@@ -0,0 +1,37 @@
1
+ class Sequel::Dataset
2
+ def self.===(obj) = obj.is_a?(DProxy) || super
3
+ end
4
+
5
+ class DProxy
6
+ def initialize(dataset, model, path = [], &block)
7
+ @model, @dataset, @final, @path = model, dataset, block, path
8
+ end
9
+
10
+ def indent(str) = puts "\t" * @path.size + str
11
+ def method_missing(name, *args, **kwargs, &block)
12
+ all_args = [*args, **kwargs, block:].reject(&:nil?)
13
+ # indent "DProxy::#{@model} #{name}(#{all_args}) => IN" unless QUIET
14
+
15
+ response = if @final && name.to_sym == :all
16
+ @final.call self, *all_args
17
+ else
18
+ @dataset.send(name, *args, **kwargs, &block)
19
+ end
20
+ # indent "DProxy::#{@model} #{name}(#{all_args}) OUT => #{response.inspect}" unless QUIET
21
+ wrap?(response) ? self.class.new(response, @model, @path + [name => all_args, prev: self], &@final) : response
22
+ end
23
+
24
+ def wrap?(r) = r.is_a?(Sequel::Dataset::PlaceholderLiteralizer) || r.is_a?(Sequel::Dataset)
25
+
26
+ def respond_to_missing?(method_name, include_private = false)
27
+ @dataset.respond_to?(method_name, include_private)
28
+ end
29
+
30
+ alias_method :_clone, :clone
31
+
32
+ def clone( *args, **kwargs, &block)
33
+ method_missing(:clone, *args, **kwargs, &block)
34
+ end
35
+ end
36
+
37
+
@@ -4,9 +4,18 @@ ENV['OTEL_LOG_LEVEL'] ||= 'debug'
4
4
  ENV['OTEL_TRACES_EXPORTER'] ||= 'console,otlp'
5
5
  ENV['OTEL_LOGS_EXPORTER'] ||= 'otlp,console'
6
6
 
7
+ class Otel
8
+ class << self
9
+ attr_accessor :enabled # To temporally disable Otel
10
+ end
11
+ end
12
+
7
13
  unless defined? OTEL_ENABLED
8
14
  OTEL_ENABLED = !ENV['OTEL_EXPORTER_OTLP_ENDPOINT'].to_s.empty?
9
15
  end
16
+
17
+ Otel.enabled = OTEL_ENABLED
18
+
10
19
  $stdout.puts "OTEL_ENABLED: #{OTEL_ENABLED}"
11
20
 
12
21
  # require 'async'
@@ -142,7 +151,7 @@ end
142
151
 
143
152
  def otl_span(name, attributes = {})
144
153
  # span_ = OpenTelemetry::Trace.current_span
145
- return yield(nil) unless OTEL_ENABLED
154
+ return yield(nil) unless OTEL_ENABLED && Otel.enabled
146
155
 
147
156
  return yield(nil) unless $tracer_
148
157
  $tracer_&.in_span(name, attributes: flatten_hash(attributes.transform_keys(&:to_s).transform_values{_1 || 'n/a'}) ) do |span|
@@ -151,7 +160,7 @@ def otl_span(name, attributes = {})
151
160
  end
152
161
 
153
162
  def otl_current_span
154
- return unless OTEL_ENABLED
163
+ return unless OTEL_ENABLED && Otel.enabled
155
164
  yield OpenTelemetry::Trace.current_span
156
165
  end
157
166
 
@@ -161,7 +170,7 @@ end
161
170
  # end
162
171
 
163
172
  def otl_traceparent_id
164
- return nil unless OTEL_ENABLED
173
+ return nil unless OTEL_ENABLED && Otel.enabled
165
174
 
166
175
  span_context = OpenTelemetry::Trace.current_span.context
167
176
  trace_id = span_context.trace_id.unpack1('H*')
@@ -1,3 +1,3 @@
1
1
  module StackServiceBase
2
- VERSION = '0.0.73'
2
+ VERSION = '0.0.75'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.73
4
+ version: 0.0.75
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
@@ -412,6 +412,7 @@ files:
412
412
  - lib/stack-service-base/command_init.rb
413
413
  - lib/stack-service-base/command_line.rb
414
414
  - lib/stack-service-base/database.rb
415
+ - lib/stack-service-base/db_ext/db_proxy.rb
415
416
  - lib/stack-service-base/db_ext/geo_ext.rb
416
417
  - lib/stack-service-base/debugger.rb
417
418
  - lib/stack-service-base/examples/mcp_config.ru