Sha256: 95e47147f7575b07f8ca73a30c7c3ca08731c95389b77256b336892a8e6995c1

Contents?: true

Size: 654 Bytes

Versions: 10

Compression:

Stored size: 654 Bytes

Contents

# frozen_string_literal: true

module Pragmater
  module Formatters
    # Formats all pragmas in a consistent manner.
    class Main
      FORMATTERS = [General, Shebang].freeze
      PATTERN = FORMATTERS.map { |formatter| formatter::PATTERN }
                          .then { |patterns| Regexp.union(*patterns) }
                          .freeze

      def initialize string, formatters: FORMATTERS
        @string = string
        @formatters = formatters
      end

      def call
        formatters.reduce(string) { |pragma, formatter| formatter.new(pragma).call }
      end

      private

      attr_reader :string, :formatters
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pragmater-9.3.0 lib/pragmater/formatters/main.rb
pragmater-9.2.0 lib/pragmater/formatters/main.rb
pragmater-9.1.2 lib/pragmater/formatters/main.rb
pragmater-9.1.1 lib/pragmater/formatters/main.rb
pragmater-9.1.0 lib/pragmater/formatters/main.rb
pragmater-9.0.0 lib/pragmater/formatters/main.rb
pragmater-8.3.0 lib/pragmater/formatters/main.rb
pragmater-8.2.0 lib/pragmater/formatters/main.rb
pragmater-8.1.0 lib/pragmater/formatters/main.rb
pragmater-8.0.0 lib/pragmater/formatters/main.rb