Sha256: a5cb9a14ce8d7ff847ab36375829174d77a5bc314cab3c63734e7ee227fcd92f

Contents?: true

Size: 572 Bytes

Versions: 38

Compression:

Stored size: 572 Bytes

Contents

# 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

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
tocer-19.1.0 lib/tocer/transformers/finder.rb
tocer-19.0.0 lib/tocer/transformers/finder.rb
tocer-18.7.0 lib/tocer/transformers/finder.rb
tocer-18.6.0 lib/tocer/transformers/finder.rb
tocer-18.5.0 lib/tocer/transformers/finder.rb
tocer-18.4.0 lib/tocer/transformers/finder.rb
tocer-18.3.0 lib/tocer/transformers/finder.rb
tocer-18.2.0 lib/tocer/transformers/finder.rb
tocer-18.1.0 lib/tocer/transformers/finder.rb
tocer-18.0.0 lib/tocer/transformers/finder.rb
tocer-17.5.0 lib/tocer/transformers/finder.rb
tocer-17.3.0 lib/tocer/transformers/finder.rb
tocer-17.2.0 lib/tocer/transformers/finder.rb
tocer-17.1.0 lib/tocer/transformers/finder.rb
tocer-17.0.0 lib/tocer/transformers/finder.rb
tocer-16.2.1 lib/tocer/transformers/finder.rb
tocer-16.2.0 lib/tocer/transformers/finder.rb
tocer-16.1.0 lib/tocer/transformers/finder.rb
tocer-16.0.3 lib/tocer/transformers/finder.rb
tocer-16.0.2 lib/tocer/transformers/finder.rb