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
# File lib/abt/providers/asana/base_command.rb, line 66 def print_project(project) cli.print_ari("asana", project["gid"], project["name"]) warn(project["permalink_url"]) if project.key?("permalink_url") && cli.output.isatty end
print_task(project, task)
click to toggle source
# File lib/abt/providers/asana/base_command.rb, line 71 def print_task(project, task) project = { "gid" => project } if project.is_a?(String) cli.print_ari("asana", "#{project['gid']}/#{task['gid']}", task["name"]) warn(task["permalink_url"]) if task.key?("permalink_url") && cli.output.isatty end
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