Class: SemVerComponents::Outputs::Info

Inherits:
SemVerComponents::Output show all
Defined in:
lib/sem_ver_components/outputs/info.rb

Instance Method Summary collapse

Methods inherited from SemVerComponents::Output

#initialize

Constructor Details

This class inherits a constructor from SemVerComponents::Output

Instance Method Details

#process(commits_info) ⇒ Object

Process commits info

Parameters
  • commits_info (Array< Hash<Symbol, Object> >): List of commits info:

    • components_bump_levels (Hash<String or nil, Integer>): Set of bump levels (0: patch, 1: minor, 2: major) per component name (nil for global)

    • commit (Git::Object::Commit): Corresponding git commit



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/sem_ver_components/outputs/info.rb', line 13

def process(commits_info)
  # Display bump levels per component
  commits_info.inject({}) do |components_bump_levels, commit_info|
    components_bump_levels.merge(commit_info[:components_bump_levels]) do |_component, bump_level_1, bump_level_2|
      [bump_level_1, bump_level_2].max
    end
  end.each do |component, bump_level|
    puts "#{component.nil? ? 'Global' : component}: Bump #{
        case bump_level
        when 0
          'patch'
        when 1
          'minor'
        when 2
          'major'
        else
          raise "Invalid bump level: #{bump_level}"
        end
      } version"
  end
end