Class: Factor::Connector::ServiceInstance
- Defined in:
- lib/instances/service_instance.rb
Instance Attribute Summary collapse
-
#action_instances ⇒ Object
Returns the value of attribute action_instances.
-
#callback ⇒ Object
Returns the value of attribute callback.
-
#definition ⇒ Object
Returns the value of attribute definition.
-
#listener_instances ⇒ Object
Returns the value of attribute listener_instances.
-
#step_data ⇒ Object
Returns the value of attribute step_data.
Attributes inherited from Instance
Instance Method Summary collapse
- #call_action(action_id, params) ⇒ Object
- #call_hook(listener_id, hook_id, data, request, response) ⇒ Object
- #has_action?(action_id) ⇒ Boolean
- #has_listener?(listener_id) ⇒ Boolean
-
#initialize(options = {}) ⇒ ServiceInstance
constructor
A new instance of ServiceInstance.
- #start_listener(listener_id, params) ⇒ Object
- #stop_action(action_id) ⇒ Object
- #stop_listener(listener_id) ⇒ Object
Methods inherited from Instance
#debug, #error, #id, #info, #log, #respond, #warn
Constructor Details
#initialize(options = {}) ⇒ ServiceInstance
Returns a new instance of ServiceInstance.
22 23 24 25 26 27 |
# File 'lib/instances/service_instance.rb', line 22 def initialize( = {}) @listener_instances = {} @action_instances = {} @instance_id = SecureRandom.hex super() end |
Instance Attribute Details
#action_instances ⇒ Object
Returns the value of attribute action_instances.
20 21 22 |
# File 'lib/instances/service_instance.rb', line 20 def action_instances @action_instances end |
#callback ⇒ Object
Returns the value of attribute callback.
20 21 22 |
# File 'lib/instances/service_instance.rb', line 20 def callback @callback end |
#definition ⇒ Object
Returns the value of attribute definition.
20 21 22 |
# File 'lib/instances/service_instance.rb', line 20 def definition @definition end |
#listener_instances ⇒ Object
Returns the value of attribute listener_instances.
20 21 22 |
# File 'lib/instances/service_instance.rb', line 20 def listener_instances @listener_instances end |
#step_data ⇒ Object
Returns the value of attribute step_data.
20 21 22 |
# File 'lib/instances/service_instance.rb', line 20 def step_data @step_data end |
Instance Method Details
#call_action(action_id, params) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/instances/service_instance.rb', line 34 def call_action(action_id,params) action_instance = ActionInstance.new action_instance.service_id = self.id action_instance.instance_id = @instance_id action_instance.definition = @definition.actions[action_id] action_instance.callback = @callback action_instances[action_id] = action_instance action_instance.async.start(params) end |
#call_hook(listener_id, hook_id, data, request, response) ⇒ Object
29 30 31 32 |
# File 'lib/instances/service_instance.rb', line 29 def call_hook(listener_id,hook_id,data,request,response) listener_instance = @listener_instances[listener_id] listener_instance.async.call_web_hook(hook_id,data,request,response) end |
#has_action?(action_id) ⇒ Boolean
72 73 74 |
# File 'lib/instances/service_instance.rb', line 72 def has_action?(action_id) @definition.actions.include?(action_id) end |
#has_listener?(listener_id) ⇒ Boolean
76 77 78 |
# File 'lib/instances/service_instance.rb', line 76 def has_listener?(listener_id) @definition.listeners.include?(listener_id) end |
#start_listener(listener_id, params) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/instances/service_instance.rb', line 44 def start_listener(listener_id,params) listener_instance = ListenerInstance.new listener_instance.service_id = self.id listener_instance.instance_id = @instance_id listener_instance.definition = @definition.listeners[listener_id] listener_instance.callback = @callback @listener_instances[listener_id]=listener_instance listener_instance.async.start(params) end |
#stop_action(action_id) ⇒ Object
65 66 67 68 69 70 |
# File 'lib/instances/service_instance.rb', line 65 def stop_action(action_id) if @action_instances[action_id] @action_instances[action_id].terminate @action_instances.delete action_id end end |
#stop_listener(listener_id) ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/instances/service_instance.rb', line 54 def stop_listener(listener_id) if !@listener_instances[listener_id] warn "Listener isn't running, no need to stop" respond type:'stopped' else @listener_instances[listener_id].stop @listener_instances[listener_id].terminate @listener_instances.delete listener_id end end |