class Abt::Providers::Harvest::Services::ProjectPicker
Attributes
cli[R]
project_assignments[R]
Public Class Methods
call(**args)
click to toggle source
# File lib/abt/providers/harvest/services/project_picker.rb, line 17 def self.call(**args) new(**args).call end
new(cli:, project_assignments:)
click to toggle source
# File lib/abt/providers/harvest/services/project_picker.rb, line 23 def initialize(cli:, project_assignments:) @cli = cli @project_assignments = project_assignments end
Public Instance Methods
call()
click to toggle source
# File lib/abt/providers/harvest/services/project_picker.rb, line 28 def call project = cli.prompt.search("Select a project", searchable_projects)["project"] path = Path.from_ids(project_id: project["id"]) Result.new(project: project, path: path) end
Private Instance Methods
searchable_projects()
click to toggle source
# File lib/abt/providers/harvest/services/project_picker.rb, line 38 def searchable_projects @searchable_projects ||= project_assignments.map do |project_assignment| client = project_assignment["client"] project = project_assignment["project"] project_assignment.merge( "name" => "#{client['name']} > #{project['name']}", "project" => project ) end end