lib/tocer/transformers/finder.rb
# frozen_string_literal: true module Tocer module Transformers # Finds appropriate header transformer for matching pattern. class Finder TRANSFORMERS = {/\[.+\]\(.+\)/ => Transformers::Link, /.*/ => Transformers::Text}.freeze def initialize transformers: TRANSFORMERS @transformers = transformers end def call markdown transformers.find do |pattern, transformer| break transformer.new markdown if pattern.match? markdown end end private attr_reader :transformers end end end