Class: CelluloidIOPGListener::SuperviseSignature
- Inherits:
-
Object
- Object
- CelluloidIOPGListener::SuperviseSignature
- Defined in:
- lib/celluloid-io-pg-listener/supervise_signature.rb
Overview
Usage:
Given a yaml config file of this format:
listening_group:
-
listener_active: <%= ENV["LISTENER_ACTIVE"] || false %>
type: HerokuConnectListener::SalesforceAccountClient
as: insert_client
args:
database_url: <%= ENV["DATABASE_URL"] %>
redis_url: <%= ENV["REDISTOGO_URL"] || "redis://localhost:6379/" %>
callback_method: notify_callback
channel: <%= ENV["SCHEMA_NAME"] %>_account_insert
Create a Supervision Container such as:
class ListeningGroup < Celluloid::Supervision::Container
config_path = options[:config_path] || "config/settings.yml"
config = YAML::load(ERB.new(File.read(config_path)).result)
supervise CelluloidIOPGListener::SuperviseSignature.new(
type: config["type"],
as: config["as"],
args: config["args"]
).signature
end
ListeningGroup.run
Constant Summary collapse
- KEYS_WITH_SYMBOL_VALUES =
%( callback_method )
Instance Attribute Summary collapse
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#as ⇒ Object
readonly
Returns the value of attribute as.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#initialize(type:, as:, args:) ⇒ SuperviseSignature
constructor
A new instance of SuperviseSignature.
- #signature ⇒ Object
Constructor Details
#initialize(type:, as:, args:) ⇒ SuperviseSignature
Returns a new instance of SuperviseSignature.
37 38 39 40 41 42 43 44 45 |
# File 'lib/celluloid-io-pg-listener/supervise_signature.rb', line 37 def initialize(type:, as:, args:) @type = Kernel.const_get(type) @as = as.to_sym if has_database_url?(args) args.merge!(convert_database_url_to_hash(db_url: args.delete("database_url"))) end @args = [] @args << symbolize_keys(args) end |
Instance Attribute Details
#args ⇒ Object (readonly)
Returns the value of attribute args.
35 36 37 |
# File 'lib/celluloid-io-pg-listener/supervise_signature.rb', line 35 def args @args end |
#as ⇒ Object (readonly)
Returns the value of attribute as.
34 35 36 |
# File 'lib/celluloid-io-pg-listener/supervise_signature.rb', line 34 def as @as end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
33 34 35 |
# File 'lib/celluloid-io-pg-listener/supervise_signature.rb', line 33 def type @type end |
Instance Method Details
#signature ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/celluloid-io-pg-listener/supervise_signature.rb', line 47 def signature { type: type, as: as, args: args } end |