Class: VersionManager::ActionManager

Inherits:
Object
  • Object
show all
Defined in:
lib/version-manager/action_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ActionManager

Returns a new instance of ActionManager.



4
5
6
7
8
9
# File 'lib/version-manager/action_manager.rb', line 4

def initialize(options)
  @options = options
  @vcs = VCS.build(options[:vcs])
  @storage = VersionStorage.new(vcs, options[:storage])
  @release_manager = ReleaseManager.new(vcs, storage, options)
end

Instance Method Details

#checkout_to_latest_versionObject



11
12
13
14
15
16
# File 'lib/version-manager/action_manager.rb', line 11

def checkout_to_latest_version
  version = storage.latest_version
  return false unless version
  vcs.switch_branch(VCS.branch_name(version, options.dig(:vcs, :options)))
  true
end

#release_new_version(release_type, confirmation_func, retrieve_initial_version_func) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/version-manager/action_manager.rb', line 18

def release_new_version(release_type, confirmation_func, retrieve_initial_version_func)
  release_manager.validate!(release_type)
  version = release_type == :patch ? storage.current_version : storage.latest_version
  if version
    new_version = version.public_send("bump_#{release_type}")
    return unless confirmation_func.call(new_version)
  else
    version = retrieve_initial_version_func.call
  end
  release_manager.public_send("#{release_type}!", version)
end