Class: Consolle::Server::ConsoleSocketServer
- Inherits:
-
Object
- Object
- Consolle::Server::ConsoleSocketServer
- Defined in:
- lib/consolle/server/console_socket_server.rb
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#socket_path ⇒ Object
readonly
Returns the value of attribute socket_path.
Instance Method Summary collapse
-
#initialize(socket_path:, rails_root:, rails_env: 'development', logger: nil, command: nil, wait_timeout: nil) ⇒ ConsoleSocketServer
constructor
A new instance of ConsoleSocketServer.
- #running? ⇒ Boolean
- #start ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(socket_path:, rails_root:, rails_env: 'development', logger: nil, command: nil, wait_timeout: nil) ⇒ ConsoleSocketServer
Returns a new instance of ConsoleSocketServer.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/consolle/server/console_socket_server.rb', line 15 def initialize(socket_path:, rails_root:, rails_env: 'development', logger: nil, command: nil, wait_timeout: nil) @socket_path = socket_path @rails_root = rails_root @rails_env = rails_env @command = command || 'bin/rails console' @wait_timeout = wait_timeout @logger = logger || begin log = Logger.new(STDOUT) log.level = Logger::DEBUG log end @running = false @server = nil @supervisor = nil @broker = nil @accept_thread = nil end |
Instance Attribute Details
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
13 14 15 |
# File 'lib/consolle/server/console_socket_server.rb', line 13 def logger @logger end |
#socket_path ⇒ Object (readonly)
Returns the value of attribute socket_path.
13 14 15 |
# File 'lib/consolle/server/console_socket_server.rb', line 13 def socket_path @socket_path end |
Instance Method Details
#running? ⇒ Boolean
78 79 80 |
# File 'lib/consolle/server/console_socket_server.rb', line 78 def running? @running && @supervisor&.running? end |
#start ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/consolle/server/console_socket_server.rb', line 33 def start return false if @running setup_socket setup_supervisor setup_broker setup_signal_handlers @running = true @accept_thread = start_accept_loop logger.info "[ConsoleSocketServer] Started at #{@socket_path}" true rescue StandardError => e logger.error "[ConsoleSocketServer] Failed to start: #{e.}" cleanup raise end |
#stop ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/consolle/server/console_socket_server.rb', line 52 def stop return false unless @running @running = false # Stop accepting new connections begin @server&.close rescue StandardError nil end @accept_thread&.join(5) # Stop broker @broker&.stop # Stop supervisor @supervisor&.stop # Clean up socket file File.unlink(@socket_path) if File.exist?(@socket_path) logger.info '[ConsoleSocketServer] Stopped' true end |