NoirTaggers
Constants
ENTRIES = begin
{% if true %}
[
{% for tagger in Tagger.all_subclasses
.select(&.annotation(Noir::TaggerFor))
.sort_by do |sub| (sub.annotation(Noir::TaggerFor))[:order] end %}
{% ann = tagger.annotation(Noir::TaggerFor) %}
Entry.new({{ ann[:key] }}, {{ ann[:name] }}, {{ ann[:desc] }},
{{ tagger.ancestors.includes?(FrameworkTagger) }}),
{% end %}
] of Entry
{% end %}
end
Every annotated tagger, in order. Derived from the classes, so a
tagger joins the registry by existing: the two hand-maintained hash
literals this replaces were a second place to remember, where
forgetting produced no error and no failing spec — just a tagger that
never ran.
FRAMEWORK_ENTRIES = ENTRIES.select(&.framework)
PLAIN_ENTRIES = ENTRIES.reject(&.framework)
Class methods
available_tagger_names
SourceInstantiates the tagger key names, or nil when nothing claims it.
framework_taggers
Sourcetaggers
SourceTechs a framework tagger declares an interest in; empty for plain taggers, which run against every endpoint.