Sha256: ae15177d0b680697537faedeee80427e8aee871ca0eb4c5315809b8bc20a8edc

Contents?: true

Size: 697 Bytes

Versions: 1

Compression:

Stored size: 697 Bytes

Contents

# frozen_string_literal: true

module PrChangelog
  # Represents a single change entry in the changelog
  class ChangeLine
    attr_reader :pr_number, :tag, :title

    SKIP_CI_PATTERN = /\s*\[(skip ci)\]\s*/im

    def initialize(pr_number, tag, title)
      @pr_number = pr_number
      @tag = tag
      @title = title.gsub(SKIP_CI_PATTERN, '')
    end

    def to_s
      if tag.nil?
        "- #{pr_number}: #{formatted_title}"
      else
        "- #{pr_number}: #{tag}: #{title.first_lowercase}"
      end
    end

    def formatted_title
      title.first_uppercase
    end

    def emojified_for(tag_object)
      "- #{pr_number}: #{tag_object.emoji} #{formatted_title}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pr_changelog-0.4.1 lib/pr_changelog/change_line.rb