Class: Signalwire::Relay::Consumer
- Inherits:
-
Object
- Object
- Signalwire::Relay::Consumer
- Includes:
- Logger
- Defined in:
- lib/signalwire/relay/consumer.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#project ⇒ Object
readonly
Returns the value of attribute project.
-
#token ⇒ Object
readonly
Returns the value of attribute token.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(project: nil, token: nil, host: nil) ⇒ Consumer
constructor
Creates a Consumer instance ready to be run.
- #on_event(event) ⇒ Object
- #on_incoming_call(call) ⇒ Object
- #on_incoming_message(message) ⇒ Object
- #on_message_state_change(message) ⇒ Object
- #on_task(task) ⇒ Object
- #ready ⇒ Object
- #run ⇒ Object
- #setup ⇒ Object
- #stop ⇒ Object
- #teardown ⇒ Object
Methods included from Logger
Constructor Details
#initialize(project: nil, token: nil, host: nil) ⇒ Consumer
Creates a Consumer instance ready to be run
The initialization parameters can also be supplied via ENV variables (SIGNALWIRE_PROJECT_KEY, SIGNALWIRE_TOKEN and SIGNALWIRE_HOST) Passed-in values override the environment ones.
28 29 30 31 32 33 34 35 36 |
# File 'lib/signalwire/relay/consumer.rb', line 28 def initialize(project: nil, token: nil, host: nil) @project = project || ENV['SIGNALWIRE_PROJECT_KEY'] @token = token || ENV['SIGNALWIRE_TOKEN'] @url = host || ENV['SIGNALWIRE_HOST'] || Signalwire::Relay::DEFAULT_URL @client = Signalwire::Relay::Client.new(project: @project, token: @token, host: @url) @client.session.register_for_shutdown(self) end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
6 7 8 |
# File 'lib/signalwire/relay/consumer.rb', line 6 def client @client end |
#project ⇒ Object (readonly)
Returns the value of attribute project.
6 7 8 |
# File 'lib/signalwire/relay/consumer.rb', line 6 def project @project end |
#token ⇒ Object (readonly)
Returns the value of attribute token.
6 7 8 |
# File 'lib/signalwire/relay/consumer.rb', line 6 def token @token end |
Class Method Details
.contexts(val = nil) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/signalwire/relay/consumer.rb', line 9 def contexts(val = nil) if val.nil? @contexts || [] else @contexts = val end end |
Instance Method Details
#on_event(event) ⇒ Object
44 |
# File 'lib/signalwire/relay/consumer.rb', line 44 def on_event(event); end |
#on_incoming_call(call) ⇒ Object
45 |
# File 'lib/signalwire/relay/consumer.rb', line 45 def on_incoming_call(call); end |
#on_incoming_message(message) ⇒ Object
42 |
# File 'lib/signalwire/relay/consumer.rb', line 42 def (); end |
#on_message_state_change(message) ⇒ Object
43 |
# File 'lib/signalwire/relay/consumer.rb', line 43 def (); end |
#on_task(task) ⇒ Object
41 |
# File 'lib/signalwire/relay/consumer.rb', line 41 def on_task(task); end |
#ready ⇒ Object
39 |
# File 'lib/signalwire/relay/consumer.rb', line 39 def ready; end |
#run ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/signalwire/relay/consumer.rb', line 47 def run logger.info "Starting up #{self.class}" setup client.on :ready do setup_contexts end client.once :ready do setup_receive_listeners setup_all_events_listener setup_task_listeners setup_messaging_listeners ready end client.connect! end |
#setup ⇒ Object
38 |
# File 'lib/signalwire/relay/consumer.rb', line 38 def setup; end |
#stop ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/signalwire/relay/consumer.rb', line 65 def stop teardown logger_thread = Thread.new do logger.info "#{self.class} Consumer shutting down." end logger_thread.join client.disconnect! end |
#teardown ⇒ Object
40 |
# File 'lib/signalwire/relay/consumer.rb', line 40 def teardown; end |