Module: Insta::Serializers

Defined in:
lib/insta/serializers/base.rb,
lib/insta/serializers/json.rb,
lib/insta/serializers/yaml.rb,
lib/insta/serializers/string.rb,
lib/insta/serializers/inspect.rb,
sig/insta/serializers/base.rbs,
sig/insta/serializers/json.rbs,
sig/insta/serializers/yaml.rbs,
sig/insta/serializers/string.rbs,
sig/insta/serializers/inspect.rbs

Defined Under Namespace

Classes: Base, InspectSerializer, JSONSerializer, StringSerializer, YAMLSerializer

Constant Summary collapse

REGISTRY =

: Hash[Symbol, singleton(Base)] # rubocop:disable Style/MutableConstant

Returns:

  • (Hash[Symbol, singleton(Base)])
{}

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ singleton(Base)

: (Symbol) -> singleton(Base)

Parameters:

  • (Symbol)

Returns:



20
21
22
23
24
# File 'lib/insta/serializers/base.rb', line 20

def self.fetch(name)
  REGISTRY.fetch(name) do
    raise ArgumentError, "Unknown serializer: #{name.inspect}. Available: #{REGISTRY.keys.join(", ")}"
  end
end

.register(name, serializer) ⇒ void

This method returns an undefined value.

: (Symbol, singleton(Base)) -> void

Parameters:

  • (Symbol)
  • (singleton(Base))


15
16
17
# File 'lib/insta/serializers/base.rb', line 15

def self.register(name, serializer)
  REGISTRY[name] = serializer
end

.serialize(name, value) ⇒ String

: (Symbol, untyped) -> String

Parameters:

  • (Symbol)
  • (Object)

Returns:

  • (String)


27
28
29
# File 'lib/insta/serializers/base.rb', line 27

def self.serialize(name, value)
  fetch(name).serialize(value)
end