Sha256: c74e6eefc8e0335022a489ff6b689dfab9d069da936da388c99b08d7f54a9c64

Contents?: true

Size: 839 Bytes

Versions: 48

Compression:

Stored size: 839 Bytes

Contents

# frozen_string_literal: true

module Pragmater
  module Formatters
    # Formats general pragmas in a consistent manner.
    class General
      PATTERN = /
        \A      # Start of line.
        \#      # Start of comment.
        \s?     # Space - optional.
        \w+     # Key - One or more word characters only.
        :       # Delimiter.
        \s?     # Space - optional.
        [\w-]+  # Value - One or more word or dash characters.
        \Z      # End of line.
      /x

      def initialize string, pattern: PATTERN
        @string = string
        @pattern = pattern
      end

      def call
        return string unless string.match? pattern

        string.split(":").then { |key, value| "# #{key.gsub(/\#\s?/, "")}: #{value.strip}" }
      end

      private

      attr_reader :string, :pattern
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
pragmater-13.0.3 lib/pragmater/formatters/general.rb
pragmater-13.0.2 lib/pragmater/formatters/general.rb
pragmater-13.0.1 lib/pragmater/formatters/general.rb
pragmater-13.0.0 lib/pragmater/formatters/general.rb
pragmater-12.2.0 lib/pragmater/formatters/general.rb
pragmater-12.1.2 lib/pragmater/formatters/general.rb
pragmater-12.1.1 lib/pragmater/formatters/general.rb
pragmater-12.1.0 lib/pragmater/formatters/general.rb
pragmater-12.0.0 lib/pragmater/formatters/general.rb
pragmater-11.5.0 lib/pragmater/formatters/general.rb
pragmater-11.4.0 lib/pragmater/formatters/general.rb
pragmater-11.3.0 lib/pragmater/formatters/general.rb
pragmater-11.2.0 lib/pragmater/formatters/general.rb
pragmater-11.1.0 lib/pragmater/formatters/general.rb
pragmater-11.0.1 lib/pragmater/formatters/general.rb
pragmater-11.0.0 lib/pragmater/formatters/general.rb
pragmater-10.3.1 lib/pragmater/formatters/general.rb
pragmater-10.3.0 lib/pragmater/formatters/general.rb
pragmater-10.2.0 lib/pragmater/formatters/general.rb
pragmater-10.1.0 lib/pragmater/formatters/general.rb