Class: JsDuck::MetaTagRegistry

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/jsduck/meta_tag_registry.rb

Overview

Access to meta-tags

Instance Method Summary collapse

Constructor Details

#initializeMetaTagRegistry

Returns a new instance of MetaTagRegistry.



10
11
12
13
# File 'lib/jsduck/meta_tag_registry.rb', line 10

def initialize
  @tags = []
  @map = {}
end

Instance Method Details

#[](name) ⇒ Object

Accesses tag by key or name



40
41
42
# File 'lib/jsduck/meta_tag_registry.rb', line 40

def [](name)
  @map[name]
end

#formatterObject

Returns the formatter assigned to tags



45
46
47
# File 'lib/jsduck/meta_tag_registry.rb', line 45

def formatter
  @formatter
end

#formatter=(doc_formatter) ⇒ Object

Sets the doc-formatter for all tags



50
51
52
53
# File 'lib/jsduck/meta_tag_registry.rb', line 50

def formatter=(doc_formatter)
  @formatter = doc_formatter
  @tags.each {|tag| tag.formatter = doc_formatter }
end

#load(paths) ⇒ Object

Loads meta-tags from the given paths. See MetaTagLoader#load for details.

This should only be called once. Calling it twice will override the previously loaded tags.



20
21
22
23
24
# File 'lib/jsduck/meta_tag_registry.rb', line 20

def load(paths)
  loader = MetaTagLoader.new
  paths.each {|p| loader.load(p) }
  register(loader.meta_tags)
end

#register(tags) ⇒ Object

Registers MetaTag instances.

NB! This is for testing purposes only, elsewhere always use #load.



29
30
31
32
# File 'lib/jsduck/meta_tag_registry.rb', line 29

def register(tags)
  @tags = tags
  register_keys
end

#signaturesObject

Returns array of attributes to be shown in member signatures (and in order they should be shown in).



57
58
59
60
61
62
63
64
65
66
# File 'lib/jsduck/meta_tag_registry.rb', line 57

def signatures
  if !@signatures
    @signatures = @tags.find_all(&:signature).map do |tag|
      s = tag.signature
      s[:key] = tag.key
      s
    end
  end
  @signatures
end

#tagsObject

Returns array of all available tag instances



35
36
37
# File 'lib/jsduck/meta_tag_registry.rb', line 35

def tags
  @tags
end