Sha256: 118bace408836eff12318f4ef658a427cbdb022bd140333834523e7b8dc70b5e

Contents?: true

Size: 901 Bytes

Versions: 9

Compression:

Stored size: 901 Bytes

Contents

# frozen_string_literal: true

require_relative '../utils/attributes_selection_manager'

module Geet
  module Services
    class ListIssues
      def initialize(repository, out: $stdout)
        @repository = repository
        @out = out
      end

      def execute(assignee: nil, **)
        selected_assignee = find_and_select_attributes(assignee) if assignee

        issues = @repository.issues(assignee: selected_assignee)

        issues.each do |issue|
          @out.puts "#{issue.number}. #{issue.title} (#{issue.link})"
        end
      end

      private

      def find_and_select_attributes(assignee)
        selection_manager = Geet::Utils::AttributesSelectionManager.new(@repository, out: @out)

        selection_manager.add_attribute(:collaborators, 'assignee', assignee, :single, name_method: :username)

        selection_manager.select_attributes[0]
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
geet-0.3.15 lib/geet/services/list_issues.rb
geet-0.3.14 lib/geet/services/list_issues.rb
geet-0.3.13 lib/geet/services/list_issues.rb
geet-0.3.12 lib/geet/services/list_issues.rb
geet-0.3.11 lib/geet/services/list_issues.rb
geet-0.3.10 lib/geet/services/list_issues.rb
geet-0.3.9 lib/geet/services/list_issues.rb
geet-0.3.8 lib/geet/services/list_issues.rb
geet-0.3.7 lib/geet/services/list_issues.rb