Sha256: d601032271c6e06befda46e1ee8b7dbe005fc4c0d5992e0cbc953f9baca669d6

Contents?: true

Size: 673 Bytes

Versions: 3

Compression:

Stored size: 673 Bytes

Contents

class StructuredChangelog
  class Roadmap
    def self.start_with?(line)
      patterns.any? { |pattern| line =~ pattern }
    end

    def self.patterns
      [
        /^## ROADMAP (?<version>\d+\.\d+\.\d+\S*)$/,
        /^## ROADMAP/,
        /^## NEXT RELEASE/,
      ]
    end

    def <=>(roadmap)
      version <=> roadmap.version
    end

    def initialize(contents)
      @contents = contents.strip
    end

    def version
      self.class.patterns.each do |pattern|
        match = contents.match(pattern)

        return match[:version] if match && match.names.include?('version')
      end

      nil
    end

    private

    attr_reader :contents
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
structured_changelog-0.7.0 lib/structured_changelog/roadmap.rb
structured_changelog-0.6.2 lib/structured_changelog/roadmap.rb
structured_changelog-0.6.1 lib/structured_changelog/roadmap.rb