Sha256: ca50b5611e7b6b545442e2bccd79f526024d4f51d458702a28264d72d4797897

Contents?: true

Size: 1.79 KB

Versions: 7

Compression:

Stored size: 1.79 KB

Contents

# frozen_string_literal: true

# Released under the MIT License.
# Copyright, 2020-2022, by Samuel Williams.

module Async
	module Container
		# Handles the details of several process readiness protocols.
		module Notify
			class Client
				# Notify the parent controller that the child has become ready, with a brief status message.
				# @parameters message [Hash] Additional details to send with the message.
				def ready!(**message)
					send(ready: true, **message)
				end
				
				# Notify the parent controller that the child is reloading.
				# @parameters message [Hash] Additional details to send with the message.
				def reloading!(**message)
					message[:ready] = false
					message[:reloading] = true
					message[:status] ||= "Reloading..."
					
					send(**message)
				end
				
				# Notify the parent controller that the child is restarting.
				# @parameters message [Hash] Additional details to send with the message.
				def restarting!(**message)
					message[:ready] = false
					message[:reloading] = true
					message[:status] ||= "Restarting..."
					
					send(**message)
				end
				
				# Notify the parent controller that the child is stopping.
				# @parameters message [Hash] Additional details to send with the message.
				def stopping!(**message)
					message[:stopping] = true
					
					send(**message)
				end
				
				# Notify the parent controller of a status change.
				# @parameters text [String] The details of the status change.
				def status!(text)
					send(status: text)
				end
				
				# Notify the parent controller of an error condition.
				# @parameters text [String] The details of the error condition.
				# @parameters message [Hash] Additional details to send with the message.
				def error!(text, **message)
					send(status: text, **message)
				end
			end
		end
	end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
async-container-0.18.3 lib/async/container/notify/client.rb
async-container-0.18.2 lib/async/container/notify/client.rb
async-container-0.18.1 lib/async/container/notify/client.rb
async-container-0.18.0 lib/async/container/notify/client.rb
async-container-0.17.1 lib/async/container/notify/client.rb
async-container-0.17.0 lib/async/container/notify/client.rb
async-container-0.16.13 lib/async/container/notify/client.rb