Module: Ccp::Serializers

Extended by:
Serializers
Includes:
Enumerable
Included in:
Serializers
Defined in:
lib/ccp/serializers.rb,
lib/ccp/serializers/core.rb,
lib/ccp/serializers/json.rb,
lib/ccp/serializers/yaml.rb,
lib/ccp/serializers/msgpack.rb

Defined Under Namespace

Modules: Core, Json, Msgpack, Yaml

Constant Summary collapse

NotFound =
Class.new(RuntimeError)
DICTIONARY =

cache for (extname -> Serializer)

{}

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object Also known as: lookup



16
17
18
19
20
# File 'lib/ccp/serializers.rb', line 16

def [](name)
  return name.must.coerced(Core, Symbol => :to_s, String => proc{|key| DICTIONARY[key]}) {
    raise NotFound, "%s(%s) for %s" % [name, name.class, DICTIONARY.keys.inspect]
  }
end

#[]=(key, val) ⇒ Object



22
23
24
# File 'lib/ccp/serializers.rb', line 22

def []=(key, val)
  DICTIONARY[key.to_s] = val.must(Core)
end

#each(&block) ⇒ Object



12
13
14
# File 'lib/ccp/serializers.rb', line 12

def each(&block)
  DICTIONARY.each_value(&block)
end