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

Version Path
dji_mqtt_connect-0.1.21 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.20.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.20 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.19.2 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.19.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.19 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.18 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.17.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.17 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.16.2 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.16.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.16 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.15.2 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.15.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.15 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.14.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.14 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.13.1 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.13 lib/dji_mqtt_connect/utils/message_parsing.rb
dji_mqtt_connect-0.1.12.1 lib/dji_mqtt_connect/utils/message_parsing.rb