class Abt::Providers::Asana::Services::ProjectPicker
Attributes
cli[R]
config[R]
Public Class Methods
call(**args)
click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 17 def self.call(**args) new(**args).call end
new(cli:, config:)
click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 23 def initialize(cli:, config:) @cli = cli @config = config end
Public Instance Methods
call()
click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 28 def call project = cli.prompt.search("Select a project", projects) path = Path.from_gids(project_gid: project["gid"]) Result.new(project: project, path: path) end
Private Instance Methods
api()
click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 47 def api Abt::Providers::Asana::Api.new(access_token: config.access_token) end
projects()
click to toggle source
# File lib/abt/providers/asana/services/project_picker.rb, line 37 def projects @projects ||= begin cli.warn("Fetching projects...") api.get_paged("projects", workspace: config.workspace_gid, archived: false, opt_fields: "name,permalink_url") end end