Sha256: ea721b5f80ad4373a10028c83d38cca1dc3a7948f6d386fa2566a0b07b494051

Contents?: true

Size: 552 Bytes

Versions: 28

Compression:

Stored size: 552 Bytes

Contents

class RestPack::Serializer::Factory
  def self.create(*identifiers)
    serializers = identifiers.map { |identifier| self.classify(identifier) }
    serializers.count == 1 ? serializers.first : serializers
  end

  private

  def self.classify(identifier)
    normalised_identifier = identifier.to_s.underscore
    [normalised_identifier, normalised_identifier.singularize].each do |format|
      klass = RestPack::Serializer.class_map[format]
      return klass.new if klass
    end

    raise "Invalid RestPack::Serializer : #{identifier}"
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
restpack_serializer-0.6.15 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.14 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.13 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.12 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.11 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.10 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.9 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.8 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.7 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.6 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.5 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.4 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.3 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.2 lib/restpack_serializer/factory.rb
restpack_serializer-0.6.1 lib/restpack_serializer/factory.rb
restpack_serializer-0.5.10 lib/restpack_serializer/factory.rb
restpack_serializer-0.5.9 lib/restpack_serializer/factory.rb
restpack_serializer-0.5.8 lib/restpack_serializer/factory.rb
restpack_serializer-0.5.7 lib/restpack_serializer/factory.rb
restpack_serializer-0.5.6 lib/restpack_serializer/factory.rb