Sha256: a4f370a9d419f50078549e7258ad1029550172ce9dd36164eea6d7482e907a2c

Contents?: true

Size: 767 Bytes

Versions: 3

Compression:

Stored size: 767 Bytes

Contents

require 'structured_changelog/version_pattern'

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

    def self.patterns
      [
        /^## ROADMAP #{VersionPattern}$/,
        /^## 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)

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

      Gem::Version.new("")
    end

    private

    attr_reader :contents
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
structured_changelog-0.11.2 lib/structured_changelog/roadmap.rb
structured_changelog-0.11.1 lib/structured_changelog/roadmap.rb
structured_changelog-0.11.0 lib/structured_changelog/roadmap.rb