Module: UserTasks

Defined in:
lib/user_tasks.rb

Overview

Within TaxonWorks (not Rails) a tasks is a bit of work that references 2 or more data models at once, and that should be understandable without complicated context. Tasks should typically do a single thing well, however complex forms (sensu single page apps) fall into this category as well.

The UserTasks module provides developer support for tracking, testing, and integrating tasks.

Defined Under Namespace

Classes: UserTask

Constant Summary collapse

CATEGORIES =
%w{nomenclature source collection_object collecting_event biology matrix dna}.freeze
TASK_DATA =

The raw YAML (Hash)

YAML.load_file(Rails.root + 'config/interface/hub/user_tasks.yml').freeze
INDEXED_TASKS =

A Hash of prefix => UserTasks::UserTask

tasks.freeze

Class Method Summary collapse

Class Method Details

.hub_tasks(category = nil) ⇒ Array

Returns of UserTasks::UserTask the UserTasks instances that have @hub == true

Returns:

  • (Array)

    of UserTasks::UserTask the UserTasks instances that have @hub == true



146
147
148
149
150
151
# File 'lib/user_tasks.rb', line 146

def self.hub_tasks(category = nil)
  a = tasks.select{|t| t.hub}
  return a if category.nil?
  return [] if !CATEGORIES.include?(category)
  a.select{|b| b.categories.include?(category) }
end

.parameter_free_tasksArray

Returns of UserTasks::UserTask the UserTasks instances that don't require parameters (i.e. can be linked to from anywhere)

Returns:

  • (Array)

    of UserTasks::UserTask the UserTasks instances that don't require parameters (i.e. can be linked to from anywhere)



140
141
142
# File 'lib/user_tasks.rb', line 140

def self.parameter_free_tasks
  tasks.select{|t| !t.requires_params?}
end

Returns translate a related prefix into a name string if present, else return the string as is

Parameters:

  • prefix (String)

Returns:

  • (String)

    translate a related prefix into a name string if present, else return the string as is



164
165
166
167
168
169
170
# File 'lib/user_tasks.rb', line 164

def self.related_name(prefix)
  if t = INDEXED_TASKS[prefix]
    t.name
  else
    prefix
  end
end

Parameters:

  • prefix (String)

Returns:



174
175
176
# File 'lib/user_tasks.rb', line 174

def self.related_routes(prefix)
  INDEXED_TASKS[prefix].related
end

.task(prefix) ⇒ UserTasks::UserTask?

Returns a instance of a UserTasks::UserTask

Parameters:

  • prefix (String)

    A rails route prefix

Returns:



157
158
159
# File 'lib/user_tasks.rb', line 157

def self.task(prefix)
  INDEXED_TASKS[prefix]
end

.tasksArray

Returns of UserTasks::UserTask the UserTasks instances

Returns:

  • (Array)

    of UserTasks::UserTask the UserTasks instances



134
135
136
# File 'lib/user_tasks.rb', line 134

def self.tasks
  INDEXED_TASKS.values.sort!{|a, b| a.name <=> b.name }
end