Sha256: ab239691faa43ae4109957d4a6419cadfd003e6a55c4c9dd6da3e24c8fcdda8e
Contents?: true
Size: 1.14 KB
Versions: 25
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true require_relative '../shared/selection' module Geet module Services class CloseMilestones include Geet::Shared::Selection def initialize(repository, out: $stdout) @repository = repository @out = out end def execute(numbers: nil) numbers = find_and_select_milestone_numbers(numbers) close_milestone_threads = close_milestones(numbers) close_milestone_threads.each(&:join) end private def find_and_select_milestone_numbers(numbers) selection_manager = Geet::Utils::AttributesSelectionManager.new(@repository, out: @out) selection_manager.add_attribute(:milestones, 'milestone', numbers, SELECTION_MULTIPLE, name_method: :title) milestones = selection_manager.select_attributes[0] milestones.map(&:number) end def close_milestones(numbers) @out.puts "Closing milestones #{numbers.join(', ')}..." numbers.map do |number| Thread.new do @repository.close_milestone(number) end end end end # CloseMilestones end # Services end # Geet
Version data entries
25 entries across 25 versions & 1 rubygems