Sha256: 4b478fa754df8ee36238ae96b71897ea2b05ade23936369d55a075bc83c1f4af

Contents?: true

Size: 506 Bytes

Versions: 18

Compression:

Stored size: 506 Bytes

Contents

# frozen_string_literal: true

class Panko::SerializerResolver
  def self.resolve(name)
    serializer_name = "#{name.singularize.camelize}Serializer"
    serializer_const = safe_const_get(serializer_name)

    return nil if serializer_const.nil?
    return nil unless is_serializer(serializer_const)

    serializer_const
  end

  private

  def self.is_serializer(const)
    const < Panko::Serializer
  end

  def self.safe_const_get(name)
    Object.const_get(name)
  rescue NameError
    nil
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
panko_serializer-0.7.4 lib/panko/serializer_resolver.rb
panko_serializer-0.7.3 lib/panko/serializer_resolver.rb
panko_serializer-0.7.2 lib/panko/serializer_resolver.rb
panko_serializer-0.7.1 lib/panko/serializer_resolver.rb
panko_serializer-0.7.0 lib/panko/serializer_resolver.rb
panko_serializer-0.6.0 lib/panko/serializer_resolver.rb
panko_serializer-0.5.10 lib/panko/serializer_resolver.rb
panko_serializer-0.5.9 lib/panko/serializer_resolver.rb
panko_serializer-0.5.8 lib/panko/serializer_resolver.rb
panko_serializer-0.5.7 lib/panko/serializer_resolver.rb
panko_serializer-0.5.6 lib/panko/serializer_resolver.rb
panko_serializer-0.5.5 lib/panko/serializer_resolver.rb
panko_serializer-0.5.4 lib/panko/serializer_resolver.rb
panko_serializer-0.5.3 lib/panko/serializer_resolver.rb
panko_serializer-0.5.2 lib/panko/serializer_resolver.rb
panko_serializer-0.5.1 lib/panko/serializer_resolver.rb
panko_serializer-0.5.0 lib/panko/serializer_resolver.rb
panko_serializer-0.4.4 lib/panko/serializer_resolver.rb