Sha256: 469423b8601139d720ba6440dd9bafa7abb6565f1910d9b05911277c14fae916

Contents?: true

Size: 988 Bytes

Versions: 25

Compression:

Stored size: 988 Bytes

Contents

# frozen_string_literal: true

require_relative '../utils/attributes_selection_manager'
require_relative '../shared/selection'

module Geet
  module Services
    class ListIssues
      include Geet::Shared::Selection

      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, SELECTION_SINGLE, name_method: :username)

        selection_manager.select_attributes[0]
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
geet-0.22.0 lib/geet/services/list_issues.rb
geet-0.21.0 lib/geet/services/list_issues.rb
geet-0.19.0 lib/geet/services/list_issues.rb
geet-0.18.0 lib/geet/services/list_issues.rb
geet-0.17.0 lib/geet/services/list_issues.rb
geet-0.16.0 lib/geet/services/list_issues.rb
geet-0.15.0 lib/geet/services/list_issues.rb
geet-0.14.0 lib/geet/services/list_issues.rb
geet-0.13.0 lib/geet/services/list_issues.rb
geet-0.12.0 lib/geet/services/list_issues.rb
geet-0.11.0 lib/geet/services/list_issues.rb
geet-0.10.0 lib/geet/services/list_issues.rb
geet-0.9.0 lib/geet/services/list_issues.rb
geet-0.8.0 lib/geet/services/list_issues.rb
geet-0.7.0 lib/geet/services/list_issues.rb
geet-0.6.0 lib/geet/services/list_issues.rb
geet-0.5.0 lib/geet/services/list_issues.rb
geet-0.4.4 lib/geet/services/list_issues.rb
geet-0.4.3 lib/geet/services/list_issues.rb
geet-0.4.2 lib/geet/services/list_issues.rb