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.basename(path).end_with?(ext) end matchers["default"]&.call end
def on(extension, &block)
def on(extension, &block) matchers[".#{extension}"] = block self end