stack-service-base 0.0.73 → 0.0.74

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: 679a0bd930fa1400a380ea5631805ccdbab5ff079652acf5a9a506b561d1878a
4
+ data.tar.gz: 9b35e48681c7180c2771e36ed2913645404bd7ba0a82f752ad5a34e5151da7fc
5
5
  SHA512:
6
- metadata.gz: 1b2dfe8af5b3d60fc61d6c089b474045ee67aae19a310b4fa1f18ea18645f9ce2f3f0878cc78acd0f34fb4f441f43e3ed4dd89e61acf9f55eb4885d9d20fe221
7
- data.tar.gz: f896068deea3423d5271993d5d7696f8c4c4d468238299275638ed50e3759a8bf01259c5ebee77761a4ed69b6a0ddd4eb4ab8a396dde328b84397f71e030c78d
6
+ metadata.gz: 29414e3d8df2788f01595758c0429a14400347bf3d94a0b08910093027009414b9b9dd5a2e31fe70b015afbcc27ea627c7b8b3cdebf6f1847283471c39c6944d
7
+ data.tar.gz: 05a90cc00ae3b2da0c86453d1083cf32d91f0f12fe5b607ee93d4b718f931c43e3610e5753d8e1b3bcb28c12c10328a4d5ab77af909985aeeeb15e3c4e5df159
@@ -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
+
@@ -1,3 +1,3 @@
1
1
  module StackServiceBase
2
- VERSION = '0.0.73'
2
+ VERSION = '0.0.74'
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.74
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