class Prettyp::FormatterRegistry

Attributes

formatters[R]

Public Class Methods

new(formatters = Formatter::BaseFormatter.inherited_classes) click to toggle source
# File lib/prettyp/formatter_registry.rb, line 6
def initialize formatters = Formatter::BaseFormatter.inherited_classes
  determine_formatters formatters
end

Public Instance Methods

formatter_for(language) click to toggle source
# File lib/prettyp/formatter_registry.rb, line 10
def formatter_for language
  formatters[format_language_key(language)].first
end

Private Instance Methods

determine_formatters(formatters) click to toggle source
# File lib/prettyp/formatter_registry.rb, line 15
def determine_formatters formatters
  our_formatters = Hash.new {|h,k| h[k]=[]}

  formatters.each do |clazz|
    clazz.languages.each { |l| our_formatters[format_language_key(l)] << clazz } if clazz.check_requirement
  end

  @formatters = our_formatters
end
format_language_key(l) click to toggle source
# File lib/prettyp/formatter_registry.rb, line 25
def format_language_key l
  l.downcase.to_sym
end