bayserver-docker-terminal 3.0.3 → 3.3.1

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: 3645bf6dd47e096f0c0b5f58e92f134608b19605e7078d614b2f5c40edc6fe60
4
- data.tar.gz: c1c3a274de354e6f059f5ea7cdc6aeca4ed4a75c6261a66f879ef75eba6fd522
3
+ metadata.gz: b29fc2210cde24c4e1429a6caa214bc51bb5fa42f1fe89867a10927f567133ae
4
+ data.tar.gz: 137951ca4d31d6ab9aefcdd00fbf9504ba7e745e8cf0b3900b92d4adf0d794a4
5
5
  SHA512:
6
- metadata.gz: d5942354f190d978b617bb85453c1f9fefd4a78a862e3c1fe516cf46f88e9c5e36c449dd412774ca297f681198ea0895bec17bf8a5b2bf9d934b092667806661
7
- data.tar.gz: 7afc208bf97ae4d2c0972017086ad6063697f1df67700e2449653386c4a3e9f538b094bf5eb3673328e9ba43cb37e47c38b4e9e1269ff51af4375c532788de99
6
+ metadata.gz: ddcabf4216f6d51052fe6c769c9276b75f3d897c9a69a51b2e00c90b9ea7df61f4421432bd1e82acbe06cf666578e9e13b56243161481ca14fbe4710e9e39e63
7
+ data.tar.gz: 7ee7ce088212ebb94139a764765db6d3d4952ae38ae63644eea91d964758dac6fd9dd469d72baee5c179164aec7d9b8b6ec5b846fc5e88398913c6be68a6d4c0
@@ -3,6 +3,7 @@ require 'baykit/bayserver/agent/multiplexer/plain_transporter'
3
3
  require 'baykit/bayserver/rudders/io_rudder'
4
4
  require 'baykit/bayserver/docker/base/port_base'
5
5
  require 'baykit/bayserver/tours/content_consume_listener'
6
+ require 'baykit/bayserver/common/rudder_state_store'
6
7
 
7
8
  require 'baykit/bayserver/docker/terminal/fully_hijackers_ship'
8
9
  require 'baykit/bayserver/docker/terminal/terminal_train'
@@ -18,6 +19,7 @@ module Baykit
18
19
  include Baykit::BayServer::Agent::Multiplexer
19
20
  include Baykit::BayServer::Rudders
20
21
  include Baykit::BayServer::Tours
22
+ include Baykit::BayServer::Common
21
23
 
22
24
  RACK_TERMINAL_PIPE = "rack.terminal.pipe"
23
25
  DEFAULT_POST_CACHE_THRESHOLD = 1024 * 128 # 128 KB
@@ -57,7 +59,7 @@ module Baykit
57
59
  require 'rack/handler/bayserver'
58
60
 
59
61
  if Rack::Handler::BayServer.app != nil
60
- # rackup mode
62
+ # Application is already established on rackup mode
61
63
  @app = Rack::Handler::BayServer.app
62
64
  else
63
65
  if !StringUtil.set?(@config)
@@ -69,12 +71,55 @@ module Baykit
69
71
  @environment = "deployment"
70
72
  end
71
73
  options = {
72
- :server => "terminal",
73
- :config => @config,
74
- :environment => @environment,
75
- :docker => self,
74
+ server: "terminal", # Server/handler name (used by rack or rackup)
75
+ config: @config, # Path to config.ru
76
+ environment: @environment, # Rack environment (development, production, etc.)
77
+ docker: self, # Custom option passed to the server
76
78
  }
77
- Rack::Server.start options
79
+
80
+ # Rack 3.x moved Server/Handler to the `rackup` gem.
81
+ begin
82
+ require "rackup" # Rack 3.x (or environments with rackup installed)
83
+ require "rackup/handler/terminal"
84
+ use_rackup = true
85
+ rescue LoadError
86
+ require "rack"
87
+ require "rack/server" # Rack 2.x
88
+ use_rackup = false
89
+ end
90
+
91
+ if !use_rackup
92
+ # Rack 2.x: start server via Rack::Server
93
+ Rack::Server.start(options)
94
+ else
95
+ # Rack 3.x: start server via rackup
96
+
97
+ opts = options.dup
98
+
99
+ # Extract server/handler name (e.g. "puma", "webrick", "bayserver")
100
+ server_name = opts.delete(:server) || 'bayserver'
101
+
102
+ # Extract config.ru path
103
+ config_file = opts.delete(:config)
104
+
105
+ # Load Rack application and options from config.ru
106
+ app, config_opts = Rack::Builder.parse_file(config_file)
107
+ if config_opts == nil
108
+ config_opts = {}
109
+ end
110
+
111
+ # Merge options from config.ru with runtime options
112
+ opts = config_opts.merge(opts)
113
+
114
+ # Set default port if not specified
115
+ opts[:Port] ||= 9292
116
+
117
+ # Resolve handler via rackup
118
+ handler =Rackup::Handler.get(server_name.to_s)
119
+
120
+ # Run the Rack application using the selected handler
121
+ handler.run(app, **opts)
122
+ end
78
123
  end
79
124
 
80
125
  @available = true
@@ -202,7 +247,9 @@ module Baykit
202
247
  end
203
248
  end
204
249
 
205
- mpx.add_rudder_state(rd_read, RudderState.new(rd_read, tp))
250
+ st = RudderStateStore.get_store(tur.ship.agent_id).rent
251
+ st.init(rd_read, tp)
252
+ mpx.add_rudder_state(rd_read, st)
206
253
  mpx.req_read(rd_read)
207
254
 
208
255
  w_pipe
@@ -25,6 +25,7 @@ module Baykit
25
25
  include Baykit::BayServer::Util
26
26
  include Baykit::BayServer::Train
27
27
  include Baykit::BayServer::Tours
28
+ include Baykit::BayServer::Common
28
29
 
29
30
  attr :terminal_docker
30
31
  attr :tour
@@ -131,7 +132,9 @@ module Baykit
131
132
  end
132
133
  end
133
134
 
134
- mpx.add_rudder_state(rd_read, RudderState.new(rd_read, tp))
135
+ st = RudderStateStore.get_store(@tour.ship.agent_id).rent
136
+ st.init(rd_read, tp)
137
+ mpx.add_rudder_state(rd_read, st)
135
138
  mpx.req_read(rd_read)
136
139
 
137
140
  hijack.call pip[1]
@@ -1,4 +1,3 @@
1
- require 'rack/handler'
2
1
  require 'baykit/bayserver/bayserver'
3
2
  require 'baykit/bayserver/util/string_util'
4
3
 
@@ -52,15 +51,26 @@ EOF
52
51
  ::File.write(bserv_plan, plan_str)
53
52
  end
54
53
 
55
- Baykit::BayServer::BayServer.init bserv_home, bserv_plan
54
+ Baykit::BayServer::BayServer.get_home bserv_home
55
+ Baykit::BayServer::BayServer.get_plan bserv_plan
56
+ Baykit::BayServer::BayServer.get_lib
57
+ Baykit::BayServer::BayServer.init
56
58
  Baykit::BayServer::BayServer.start
57
59
  end
58
60
 
59
61
  end
60
62
 
63
+ if Rack::Handler.respond_to?(:register)
64
+ # use register method for Rack 1.x
65
+ Rack::Handler.register(:bayserver, Rack::Handler::BayServer)
66
+ else
67
+ # use Handler for Rack 2.0
68
+ unless defined?(Rack::Handler::HANDLERS)
69
+ # HANDLERS 定数が未定義の場合は作成する
70
+ Rack::Handler.const_set(:HANDLERS, {})
71
+ end
72
+ Rack::Handler::HANDLERS[:bayserver] = __FILE__
73
+ end
61
74
 
62
-
63
-
64
- register :bayserver, BayServer
65
75
  end
66
76
  end
@@ -1,4 +1,11 @@
1
- require 'rack/handler'
1
+ # Rack 2.x handler (Rack::Handler)
2
+ begin
3
+ require "rack/handler"
4
+ rescue LoadError
5
+ # Rack 3.x: Rack::Handler is not available. Provide a no-op here and rely on rackup handler.
6
+ return
7
+ end
8
+
2
9
 
3
10
 
4
11
  module Rack
@@ -0,0 +1,16 @@
1
+ require "rackup"
2
+
3
+
4
+ module Rackup
5
+ module Handler
6
+ module Terminal
7
+
8
+ def self.run(app, **options)
9
+ dkr = options[:docker]
10
+ dkr.app = app
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ Rackup::Handler.register :terminal, Rackup::Handler::Terminal
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bayserver-docker-terminal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michisuke-P
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-24 00:00:00.000000000 Z
11
+ date: 2026-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bayserver-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.3
19
+ version: 3.3.1
20
20
  type: :runtime
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: 3.0.3
26
+ version: 3.3.1
27
27
  description: BayServer is one of the high-speed web servers. It operates as a single-threaded,
28
28
  asynchronous server, which makes it exceptionally fast. It also supports multi-core
29
29
  processors, harnessing the full potential of the CPU's capabilities.
@@ -40,11 +40,12 @@ files:
40
40
  - lib/baykit/bayserver/docker/terminal/terminal_train.rb
41
41
  - lib/rack/handler/bayserver.rb
42
42
  - lib/rack/handler/terminal.rb
43
+ - lib/rackup/handler/terminal.rb
43
44
  homepage: https://baykit.yokohama
44
45
  licenses:
45
46
  - MIT
46
47
  metadata: {}
47
- post_install_message:
48
+ post_install_message:
48
49
  rdoc_options: []
49
50
  require_paths:
50
51
  - lib
@@ -59,8 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
62
  requirements: []
62
- rubygems_version: 3.1.6
63
- signing_key:
63
+ rubygems_version: 3.4.19
64
+ signing_key:
64
65
  specification_version: 4
65
66
  summary: Terminal docker of BayServer
66
67
  test_files: []