class AsanaSnapshot::Task

Public Class Methods

new(task_response) click to toggle source
# File lib/asana_snapshot/task.rb, line 7
def initialize(task_response)
  @task = OpenStruct.new(task_response)
end

Public Instance Methods

assignee_name() click to toggle source
# File lib/asana_snapshot/task.rb, line 11
def assignee_name
  @task.assignee&.send(:[], 'name')
end
completed?() click to toggle source
# File lib/asana_snapshot/task.rb, line 15
def completed?
  completed_task? || completed_column?
end
completed_column?() click to toggle source
# File lib/asana_snapshot/task.rb, line 37
def completed_column?
  project_columns.map do |project_column|
    project_config = AsanaSnapshot.projects.detect do |project|
      project['id'] == project_column.project_id
    end
    project_config && project_config['columns']['complete']&.include?(project_column.column_name)
  end.any?
end
completed_task?() click to toggle source
# File lib/asana_snapshot/task.rb, line 33
def completed_task?
  @task.completed
end
project_columns() click to toggle source
# File lib/asana_snapshot/task.rb, line 19
def project_columns
  @project_columns ||= @task.memberships.map do |m|
    OpenStruct.new(
      project_id: m['project']['id'],
      project_name: m['project']['name'],
      column_name: m['section']['name']
    )
  end
end
to_s() click to toggle source
# File lib/asana_snapshot/task.rb, line 29
def to_s
  "#{id} - #{name} - #{assignee_name || 'Unassigned'} #{project_columns.map(&:column_name)}"
end