Class: Kettle::Dev::BumpCLI

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/dev/bump_cli.rb

Overview

CLI for bumping the current project’s gem version before changelog prep.

Constant Summary collapse

BUMP_TYPES =
%w[major minor patch].freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv = [], out: $stdout, err: $stderr, root: Kettle::Dev::CIHelpers.project_root) ⇒ BumpCLI

Returns a new instance of BumpCLI.



11
12
13
14
15
16
# File 'lib/kettle/dev/bump_cli.rb', line 11

def initialize(argv = [], out: $stdout, err: $stderr, root: Kettle::Dev::CIHelpers.project_root)
  @argv = argv.dup
  @out = out
  @err = err
  @root = root
end

Instance Method Details

#run!Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/kettle/dev/bump_cli.rb', line 18

def run!
  options = parse_options
  return 0 if options.fetch(:help)

  current_version = Kettle::Dev::Versioning.detect_version(root)
  target_version = resolve_target_version(options.fetch(:target), current_version)
  edits = collect_edits(
    current_version: current_version,
    target_version: target_version,
    from_version: options[:from]
  )
  write_edits(edits) if options.fetch(:mode) == :execute

  out.puts(summary(edits: edits, current_version: current_version, target_version: target_version, mode: options.fetch(:mode)))
  (options.fetch(:mode) == :check && edits.any?) ? 1 : 0
end