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