Sha256: ca2c7135bbf1da8d5af92cd1158ca375bd66fa7b89c28bf822cafe6d91c3e460

Contents?: true

Size: 658 Bytes

Versions: 12

Compression:

Stored size: 658 Bytes

Contents

# frozen_string_literal: true

require "refinements/binding"

module Milestoner
  module Renderers
    # The primary renderer for multiple input formats as HTML.
    class Universal
      include Import[:settings]

      using Refinements::Binding

      DELEGATES = {asciidoc: Asciidoc.new, markdown: Markdown.new}.freeze

      def initialize(delegates: DELEGATES, **)
        super(**)
        @delegates = delegates
        @default_format = settings.commit_format.to_sym
      end

      def call(content, for: default_format) = delegates.fetch(binding[:for]).call content

      private

      attr_reader :delegates, :default_format
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
milestoner-18.12.0 lib/milestoner/renderers/universal.rb
milestoner-18.11.0 lib/milestoner/renderers/universal.rb
milestoner-18.10.0 lib/milestoner/renderers/universal.rb
milestoner-18.9.0 lib/milestoner/renderers/universal.rb
milestoner-18.8.0 lib/milestoner/renderers/universal.rb
milestoner-18.7.0 lib/milestoner/renderers/universal.rb
milestoner-18.6.0 lib/milestoner/renderers/universal.rb
milestoner-18.5.0 lib/milestoner/renderers/universal.rb
milestoner-18.4.0 lib/milestoner/renderers/universal.rb
milestoner-18.3.0 lib/milestoner/renderers/universal.rb
milestoner-18.2.0 lib/milestoner/renderers/universal.rb
milestoner-18.1.0 lib/milestoner/renderers/universal.rb