module Pronto::Formatter

def get(names)

def get(names)
  names ||= 'text'
  Array(names).map { |name| @formatters[name.to_s] || TextFormatter }
    .uniq.map(&:new)
end

def names

def names
  @formatters.keys
end

def register(formatter_klass)

def register(formatter_klass)
  unless formatter_klass.method_defined?(:format)
    raise NoMethodError, "format method is not declared in the #{formatter_klass.name} class."
  end
  base = Pronto::Formatter::Base
  raise "#{formatter_klass.name} is not a #{base}" unless formatter_klass.ancestors.include?(base)
  @formatters ||= {}
  @formatters[formatter_klass.name] = formatter_klass
end