stack-service-base 0.0.22 → 0.0.24

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: 99bb096f5c4352aec44aacf9f7453e5341f4236608f34329da857349598450aa
4
- data.tar.gz: 6433bfec1423c73e78370389d0cb9975de7973d5bb5931886994d468f6a16dca
3
+ metadata.gz: eb09aa868df30debf8076166baa7348b6782d50baac76cd39fc844099885fff8
4
+ data.tar.gz: 15e2f239fb0e6e9db9c64ce4ef48e8a2324057713e662278e0212c723064b8f7
5
5
  SHA512:
6
- metadata.gz: bd978f660cae501b938c4809cb9d91691d0725ef1c499dd5ffba82543086e045879d3640a6d9a6ba0b84c6edff0d338f0a2029e6ef31d8384fcb27a56a259972
7
- data.tar.gz: d7c577058adb0f958add55962be39f0b1356e7f784f92e32c3e45599c45289ec493fcecd2f90108367c13cb560fbd0a1700d37d5c5a9877b272d74a67813f06b
6
+ metadata.gz: 4a5cbfe9bad38ee68fb0a1f4713d0d8b0c92242fded408f94949b0982001476f4862291e5b4494a4978d5d422785dcea781a9364409e5977498f207912e8245f
7
+ data.tar.gz: 8adf9500ce61fdd4d856f7ae48193d3d55776cbb8bcce98d8ac67b5fc51e16e4302bcf5e67a233545d0ec1a9c8e374cbfda215d89a20c4e4b22db773398721d7
@@ -0,0 +1,47 @@
1
+ require "nats"
2
+
3
+ NATS_ENABLED = ENV['NATS_URL'].to_s != ''
4
+
5
+ NATS_URL = ENV['NATS_URL']# || 'nats://nats_single:4222'
6
+ NATS_STACK_NAME = ENV['STACK_NAME'] || 'undefined_stack'
7
+ NATS_SERVICE_NAME = ENV['STACK_SERVICE_NAME'] || 'undefined_service'
8
+
9
+ ENV['NATS_RECONNECT'] ||= 'true'
10
+ ENV['NATS_RECONNECT_TIME_WAIT'] ||= '1000'
11
+ ENV['NATS_MAX_RECONNECT_ATTEMPTS'] ||= '-1'
12
+
13
+ $nats_client = nil
14
+
15
+ def initialize_nats_service
16
+ LOGGER.info "Initializing NATS service"
17
+
18
+ $nats_client = NATS.connect NATS_URL
19
+
20
+ service = $nats_client.services.add(
21
+ name: "#{NATS_SERVICE_NAME}_#{NATS_STACK_NAME}",
22
+ version: "1.0.0",
23
+ description: "service-base auto service"
24
+ )
25
+
26
+ service.on_stop do
27
+ puts "Service stopped at #{Time.now}"
28
+ end
29
+
30
+ service.endpoints.add("min") do |message|
31
+ min = JSON.parse(message.data).min
32
+ message.respond(min.to_json)
33
+ end
34
+
35
+ service.endpoints.add("max") do |message|
36
+ max = JSON.parse(message.data).max
37
+ message.respond(max.to_json)
38
+ end
39
+
40
+ min = $nats_client.request("min", [5, 100, -7, 34].to_json, timeout: 10)
41
+ max = $nats_client.request("max", [5, 100, -7, 34].to_json, timeout: 10)
42
+
43
+ puts "min = #{min.data}, max = #{max.data}"
44
+
45
+ # service.stop
46
+
47
+ end
@@ -1,6 +1,7 @@
1
1
  require 'stack-service-base/logging'
2
2
  require 'stack-service-base/rack_helpers'
3
3
  require 'stack-service-base/open_telemetry'
4
+ require 'stack-service-base/nats_service'
4
5
 
5
6
  module StackServiceBase
6
7
  class << self
@@ -14,6 +15,10 @@ module StackServiceBase
14
15
  otel_initialize
15
16
  end
16
17
 
18
+ if NATS_ENABLED
19
+ initialize_nats_service
20
+ end
21
+
17
22
  RackHelpers.rack_setup app
18
23
 
19
24
  if ENV.fetch('PROMETHEUS_METRICS_EXPORT', 'true') == 'true'
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module StackServiceBase
2
2
  class Base
3
- VERSION = '0.0.22'
3
+ VERSION = '0.0.24'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-27 00:00:00.000000000 Z
11
+ date: 2025-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -94,6 +94,34 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: nats-pure
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: websocket
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rake
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +216,7 @@ files:
188
216
  - lib/stack-service-base/database.rb
189
217
  - lib/stack-service-base/fiber_pool.rb
190
218
  - lib/stack-service-base/logging.rb
219
+ - lib/stack-service-base/nats_service.rb
191
220
  - lib/stack-service-base/open_telemetry.rb
192
221
  - lib/stack-service-base/prometheus.rb
193
222
  - lib/stack-service-base/prometheus_parser.rb