Class: Rubyists::Linear::CLI::Issue::List

Inherits:
Object
  • Object
show all
Includes:
CommonOptions, SemanticLogger::Loggable
Defined in:
lib/linear/commands/issue/list.rb

Overview

The List class is a Dry::CLI::Command that lists issues

Instance Method Summary collapse

Methods included from CommonOptions

#display, included

Instance Method Details

#call(ids:, **options) ⇒ Object



32
33
34
35
36
37
# File 'lib/linear/commands/issue/list.rb', line 32

def call(ids:, **options)
  logger.debug 'Listing issues'
  return display(issues_for(options), options) if ids.empty?

  display issues_for(options.merge(ids:)), options
end

#issues_for(options) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/linear/commands/issue/list.rb', line 39

def issues_for(options)
  logger.debug('Fetching issues', options:)
  return options[:ids].map { |id| Rubyists::Linear::Issue.find(id.upcase) } if options[:ids]
  return Rubyists::Linear::Issue.all(filter: { assignee: { null: true } }) if options[:unassigned]
  return Rubyists::Linear::User.me.issues if options[:mine]

  Rubyists::Linear::Issue.all
end