Module: Changelog::Helpers::Changes

Defined in:
lib/changelog/helpers/changes.rb

Instance Method Summary collapse

Instance Method Details

#changelog_files(folder) ⇒ Object



56
57
58
59
60
# File 'lib/changelog/helpers/changes.rb', line 56

def changelog_files(folder)
  Dir[File.join(destination_root, "changelog/#{folder}/*.yml")] - [
    File.join(destination_root, "changelog/#{folder}/tag.yml")
  ]
end

#read_changes(folder) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/changelog/helpers/changes.rb', line 33

def read_changes(folder)
  items = {}
  changelog_files(folder).each do |file|
    yaml = YAML.load_file(file)
    items[yaml['type']] ||= []
    items[yaml['type']] << "#{yaml['title'].strip} (@#{yaml['author']})"
  end

  sections = []
  Changelog.natures.each.with_index do |nature, i|
    if changes = items[nature].presence
      lines = []
      lines << "### #{nature}\n"
      changes.each do |change|
        lines << "- #{change}\n"
      end
      sections << lines.join
    end
  end

  sections.join("\n")
end

#version_header(folder) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/changelog/helpers/changes.rb', line 7

def version_header(folder)
  if folder == "unreleased"
    "## [#{version_text(folder)}]\n"
  else
    meta = YAML.load_file(File.join(destination_root, "changelog/#{folder}/tag.yml"))
    date = meta['date'].to_s
    "## [#{version_text(folder)}] - #{date}\n"
  end
end

#version_sha(folder) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/changelog/helpers/changes.rb', line 25

def version_sha(folder)
  if folder == 'unreleased'
    'HEAD'
  else
    Changelog::Helpers::Git.tag(folder) || folder
  end
end

#version_text(folder) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/changelog/helpers/changes.rb', line 17

def version_text(folder)
  if folder == 'unreleased'
    'Unreleased'
  else
    folder
  end
end