class Abt::Providers::Asana::Commands::Finalize
Public Class Methods
description()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 12 def self.description "Move current/specified task to section (column) for finalized tasks" end
usage()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 8 def self.usage "abt finalize asana[:<project-gid>/<task-gid>]" end
Public Instance Methods
perform()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 16 def perform abort("This is a no-op for tasks outside the current project") unless project_gid == config.path.project_gid require_task! print_task(project_gid, task) maybe_move_task end
Private Instance Methods
current_task_section()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 39 def current_task_section task_section_membership&.dig("section") end
finalized_section()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 49 def finalized_section @finalized_section ||= api.get("sections/#{config.finalized_section_gid}", opt_fields: "name") end
maybe_move_task()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 26 def maybe_move_task if task_already_in_finalized_section? warn("Task already in section: #{current_task_section['name']}") else warn("Moving task to section: #{finalized_section['name']}") move_task end end
move_task()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 54 def move_task body = { data: { task: task_gid } } body_json = Oj.dump(body, mode: :json) api.post("sections/#{config.finalized_section_gid}/addTask", body_json) end
task()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 60 def task @task ||= api.get("tasks/#{task_gid}", opt_fields: "name,memberships.section.name,permalink_url") end
task_already_in_finalized_section?()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 35 def task_already_in_finalized_section? !task_section_membership.nil? end
task_section_membership()
click to toggle source
# File lib/abt/providers/asana/commands/finalize.rb, line 43 def task_section_membership task["memberships"].find do |membership| membership.dig("section", "gid") == config.finalized_section_gid end end