class Troy::ExtensionMatcher

def default(&block)

def default(&block)
  matchers["default"] = block
  self
end

def initialize(path)

def initialize(path)
  @path = path
  @matchers = {}
end

def match

def match
  matchers.each do |ext, handler|
    return handler.call if File.extname(path) == ext
  end
  matchers["default"]&.call
end

def on(extension, &block)

def on(extension, &block)
  matchers[".#{extension}"] = block
  self
end