Sha256: 5218f6828245f434c9109568b7fc5785a43bcd581abd77ae833df8fc6c3a5ef4
Contents?: true
Size: 830 Bytes
Versions: 28
Compression:
Stored size: 830 Bytes
Contents
# frozen_string_literal: true module DjiMqttConnect module Utils module MessageParsing private def message_class_from_message_method(message_method, generic_class) return generic_class if message_method.blank? # update_topo => UpdateTopo classified_method = message_method.split("_").collect! { |w| w.capitalize }.join # UpdateTopo => DjiMqttConnect::Sys::Product::UpdateTopoStatusMessage module_prefix, joiner, class_suffix = generic_class.name.rpartition("::") message_class_name = [module_prefix, joiner, classified_method, class_suffix].join # Constantize an instance of the message-specific class, or fallback to a generic message ActiveSupport::Inflector.safe_constantize(message_class_name) || generic_class end end end end
Version data entries
28 entries across 28 versions & 1 rubygems