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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 42a684599ec2f5f4ce219ff383bb91f280f3551633c88e5c854971e358b4d40a
|
|
4
|
+
data.tar.gz: 900890a86bfc5070661c1dcf7b533994685cfd118197d960e16bff8fe2236722
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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*')
|
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.
|
|
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
|