Class: Protocol::Media::Map::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/protocol/media/map.rb

Overview

Incrementally constructs an immutable media map.

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Initialize an empty media map builder.



15
16
17
# File 'lib/protocol/media/map.rb', line 15

def initialize
	@index = {}
end

Instance Method Details

#[]=(media_type, object) ⇒ Object

Associate a concrete media type with an object.



23
24
25
26
27
28
29
30
# File 'lib/protocol/media/map.rb', line 23

def []=(media_type, object)
	media_type = Type.for(media_type)
	
	# Preserve the first registration as the default for wildcard queries:
	@index["*/*"] ||= object
	@index["#{media_type.type}/*"] ||= object
	@index[media_type.name] = object
end

#buildObject

Compile the current registrations into an immutable map.



34
35
36
# File 'lib/protocol/media/map.rb', line 34

def build
	return Map.new(@index).freeze
end