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

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

+ (Array of UserTasks::UserTask) hub_tasks

Returns the UserTasks instances that have @hub == true

Returns:



127
128
129
# File 'lib/user_tasks.rb', line 127

def self.hub_tasks
  tasks.select{|t| t.hub} 
end

+ (Array of UserTasks::UserTask) parameter_free_tasks

Returns 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)



121
122
123
# File 'lib/user_tasks.rb', line 121

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

Returns:

  • (String)

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



141
142
143
144
145
146
147
# File 'lib/user_tasks.rb', line 141

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


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

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

+ (UserTasks::UserTask?) task(prefix)

Returns a instance of a UserTasks::UserTask

Parameters:

  • prefix

    A rails route prefix

Returns:



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

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

+ (Array of UserTasks::UserTask) tasks

Returns the UserTasks instances

Returns:



115
116
117
# File 'lib/user_tasks.rb', line 115

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