module ContentFS::Renderers

Public Class Methods

register(name, format:, constant:, path:) click to toggle source
# File lib/contentfs/renderers.rb, line 16
def register(name, format:, constant:, path:)
  (renderers[format.to_sym] ||= []) << {
    name: name.to_sym,
    constant: constant.to_s,
    path: Pathname.new(path)
  }
end
resolve(format) click to toggle source
# File lib/contentfs/renderers.rb, line 6
def resolve(format)
  renderers[format.to_sym].to_a.each do |renderer|
    if (resolved = try(renderer))
      return resolved
    end
  end

  nil
end

Private Class Methods

renderers() click to toggle source

@api private

# File lib/contentfs/renderers.rb, line 37
        def renderers
  @_renderers ||= {}
end
try(renderer) click to toggle source

@api private

# File lib/contentfs/renderers.rb, line 25
        def try(renderer)
  require(renderer[:path])
  const_get(renderer[:constant])
rescue LoadError
  # swallow load errors
rescue NameError
  # TODO: maybe print name errors
rescue
  # TODO: maybe print other errors
end