class Abt::Providers::Asana::BaseCommand

Attributes

config[R]
path[R]

Public Class Methods

new(ari:, cli:) click to toggle source
Calls superclass method Abt::BaseCommand::new
# File lib/abt/providers/asana/base_command.rb, line 13
def initialize(ari:, cli:)
  super

  @config = Configuration.new(cli: cli)

  @path = ari.path ? Path.new(ari.path) : config.path
end

Private Instance Methods

api() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 77
def api
  Abt::Providers::Asana::Api.new(access_token: config.access_token)
end
print_project(project) click to toggle source
print_task(project, task) click to toggle source
project() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 57
def project
  @project ||= begin
    warn("Fetching project...")
    api.get("projects/#{project_gid}", opt_fields: "name,permalink_url")
  rescue Abt::HttpError::NotFoundError
    nil
  end
end
prompt_project!() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 36
def prompt_project!
  result = Services::ProjectPicker.call(cli: cli, config: config)
  @path = result.path
  @project = result.project
end
prompt_task!() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 42
def prompt_task!
  result = Services::TaskPicker.call(cli: cli, path: path, config: config, project: project)
  @path = result.path
  @task = result.task
end
require_local_config!() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 23
def require_local_config!
  abort("Must be run inside a git repository") unless config.local_available?
end
require_project!() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 27
def require_project!
  abort("No current/specified project. Did you forget to run `pick`?") if project_gid.nil?
end
require_task!() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 31
def require_task!
  require_project!
  abort("No current/specified task. Did you forget to run `pick`?") if task_gid.nil?
end
task() click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 48
def task
  @task ||= begin
    warn("Fetching task...")
    api.get("tasks/#{task_gid}", opt_fields: "name,permalink_url")
  rescue Abt::HttpError::NotFoundError
    nil
  end
end