Class: JekyllImgFlow::Tags::TagRegistry
- Inherits:
-
Object
- Object
- JekyllImgFlow::Tags::TagRegistry
- Defined in:
- lib/jekyll-imgflow/tags/tag_registry.rb
Overview
Registry for managing tags
Class Method Summary collapse
- .available_tags ⇒ Object
-
.discover_tags ⇒ Object
Dynamic tag discovery.
- .get_tag(name) ⇒ Object
- .register_tag(name, tag_class) ⇒ Object
- .register_tag_from_file(name) ⇒ Object
-
.reset! ⇒ Object
Force discovery (useful for testing).
- .tags_discovered? ⇒ Boolean
Class Method Details
.available_tags ⇒ Object
20 21 22 23 24 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 20 def self. @tags ||= {} unless @tags_discovered @tags.keys end |
.discover_tags ⇒ Object
Dynamic tag discovery
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 27 def self. return if @tags_discovered @tags ||= {} = File.dirname(__FILE__) Dir.glob(File.join(, "*_tag.rb")).each do |file| next if File.basename(file) == "base_tag.rb" tag_name = File.basename(file, ".rb").gsub("_tag", "") register_tag_from_file(tag_name) end @tags_discovered = true Jekyll.logger.debug "ImgFlow:", "Discovered #{@tags.size} tags" end |
.get_tag(name) ⇒ Object
14 15 16 17 18 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 14 def self.get_tag(name) @tags ||= {} unless @tags_discovered @tags[name.to_sym] end |
.register_tag(name, tag_class) ⇒ Object
9 10 11 12 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 9 def self.register_tag(name, tag_class) @tags ||= {} @tags[name.to_sym] = tag_class end |
.register_tag_from_file(name) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 44 def self.register_tag_from_file(name) class_name = "#{name.split('_').map(&:capitalize).join}Tag" begin require_relative "#{name}_tag" tag_class = JekyllImgFlow::Tags.const_get(class_name) register_tag name.to_sym, tag_class Jekyll.logger.debug "ImgFlow:", "Registered tag: #{name} (#{class_name})" rescue NameError => e Jekyll.logger.warn "ImgFlow:", "Failed to load tag #{name}: #{e.}" rescue LoadError => e Jekyll.logger.warn "ImgFlow:", "Failed to require tag #{name}: #{e.}" end end |
.reset! ⇒ Object
Force discovery (useful for testing)
64 65 66 67 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 64 def self.reset! @tags = {} @tags_discovered = false end |
.tags_discovered? ⇒ Boolean
59 60 61 |
# File 'lib/jekyll-imgflow/tags/tag_registry.rb', line 59 def self. @tags_discovered ||= false end |