lib/deimos/utils/schema_class.rb in deimos-ruby-1.14.1 vs lib/deimos/utils/schema_class.rb in deimos-ruby-1.14.2
- old
+ new
@@ -4,13 +4,15 @@
module Utils
# Class used by SchemaClassGenerator and Consumer/Producer interfaces
module SchemaClass
class << self
# Converts a raw payload into an instance of the Schema Class
- # @param payload [Hash]
+ # @param payload [Hash, Deimos::SchemaClass::Base]
# @param schema [String]
# @return [Deimos::SchemaClass::Record]
def instance(payload, schema)
+ return payload if payload.is_a?(Deimos::SchemaClass::Base)
+
klass = "Schemas::#{schema.underscore.camelize}".safe_constantize
return payload if klass.nil? || payload.nil?
klass.new(**payload.symbolize_keys)
end