Class: WhatTheGem::Changes::ReleasesParser

Inherits:
Object
  • Object
show all
Extended by:
I::Callable
Defined in:
lib/whatthegem/changes/releases_parser.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from I::Callable

to_proc

Constructor Details

#initialize(releases) ⇒ ReleasesParser

Returns a new instance of ReleasesParser.



12
13
14
# File 'lib/whatthegem/changes/releases_parser.rb', line 12

def initialize(releases)
  @releases = releases
end

Instance Attribute Details

#releasesObject (readonly)

Returns the value of attribute releases.



10
11
12
# File 'lib/whatthegem/changes/releases_parser.rb', line 10

def releases
  @releases
end

Class Method Details

.call(releases) ⇒ Object



6
7
8
# File 'lib/whatthegem/changes/releases_parser.rb', line 6

def self.call(releases)
  new(releases).versions
end

Instance Method Details

#versionsObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/whatthegem/changes/releases_parser.rb', line 16

def versions
  releases.map { |rel|
    tag_name, name, body = rel.fetch_values(:tag_name, :name, :body)
    Version.new(
      number: tag_name[VERSION_LINE_REGEXP, :version],
      header: name.then.reject(&:empty?).first || tag_name,
      body: body
    )
  }.sort_by(&:number)
end