Class: ApiConsumer::ParserRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/api_consumer/parser_registry.rb

Constant Summary collapse

DEFAULT_NAMESPACE =
:root

Class Method Summary collapse

Class Method Details

.has_namespace?(namespace) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/api_consumer/parser_registry.rb', line 26

def has_namespace?(namespace)
  self.registered_parsers.has_key? namespace
end

.parser_for(key, namespace = DEFAULT_NAMESPACE) ⇒ Object



39
40
41
42
# File 'lib/api_consumer/parser_registry.rb', line 39

def parser_for(key, namespace = DEFAULT_NAMESPACE)
  return self.registered_parsers.fetch(namespace).fetch(key) if registered? key, namespace
  return self.registered_parsers.fetch(DEFAULT_NAMESPACE).fetch(key) if registered? key
end

.register(name, parser, namespace = DEFAULT_NAMESPACE) ⇒ Object



34
35
36
37
# File 'lib/api_consumer/parser_registry.rb', line 34

def register(name, parser, namespace = DEFAULT_NAMESPACE)
  self.registered_parsers[namespace] ||= {}
  registered[namespace][name] = parser
end

.registeredObject



12
13
14
# File 'lib/api_consumer/parser_registry.rb', line 12

def registered
  self.registered_parsers
end

.registered?(name, namespace = DEFAULT_NAMESPACE) ⇒ Boolean

Return whether or not the namespace has a parser in the registry with the given name

Returns:

  • (Boolean)


18
19
20
21
22
23
24
# File 'lib/api_consumer/parser_registry.rb', line 18

def registered?(name, namespace = DEFAULT_NAMESPACE)
  registered = has_namespace? namespace
  if registered
    registered = self.registered_parsers[namespace].has_key? name
  end
  registered
end

.registered_namespacesObject



30
31
32
# File 'lib/api_consumer/parser_registry.rb', line 30

def registered_namespaces
  registered.keys
end