Class: Nifty::Event::Converter
- Inherits:
-
Object
- Object
- Nifty::Event::Converter
- Defined in:
- lib/nifty/event/converter.rb
Overview
Converts appliances into events
Class Method Summary collapse
-
.convert_appliance(appliance, backend, transfer_method, parameters) ⇒ Nifty::Event
Converts appliance into event.
Class Method Details
.convert_appliance(appliance, backend, transfer_method, parameters) ⇒ Nifty::Event
Converts appliance into event
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/nifty/event/converter.rb', line 13 def self.convert_appliance(appliance, backend, transfer_method, parameters) events_module = "Nifty::Events::#{backend.name.demodulize}".constantize logger.debug "Converting appliance #{appliance.inspect}" event_type = "#{appliance.action}_event".camelize fail Nifty::Errors::Event::ConverterError, "No such event type for action #{appliance.action.inspect}" unless events_module.constants.include?(event_type.to_sym) event_class = events_module.const_get(event_type) fail Nifty::Errors::Event::ConverterError, "Class #{event_class.inspect} doesn't represent an event" unless (event_class.respond_to?('event?') && event_class.event? && event_class.public_instance_methods.include?(:run)) event = backend.create_event(event_class, appliance, transfer_method, parameters) logger.debug "Converted event: #{event.inspect}" event end |