class WhoIsSlacking::Start

Public Class Methods

now() click to toggle source

whois-slacking – get project name – get slack channel – get all users for the project – save tasks

-- retrieve all tasks from pivotal for the project
-- loop through tasks
-- if task/username combo does not exist in db
  -- save project/task/user 
  -- save when task was started
  -- save who started task
  -- if task is not-completed in pivotal
    -- save status as status not-completed
    -- publish message task/user started today
      -- "Today Johnny started 'As a user I should be able to log in'"
  -- if task is completed in pivotal
    -- save status as status completed
    -- publish message task/user started today
      -- "Today Johnny completed 'As a user I should be able to log in'"
-- if task/username combo exists and is not completed in db
  -- calculate how long (realtime) the task has been worked on in days (.5, 1.5 etc)
  -- update time on task
  -- save who started task
  -- publish message task/user/how long to slack 
    -- "Johnny has spent 2 days working on 'As a user I should be able to log in'"

– pruning

-- retrieve all tasks from db for the project
-- retrieve all tasks from pivotal for the project
-- loop through all tasks from db
  -- if task/user name combo does not exist in pivotal
    -- mark task/user name combo in db as deleted
      -- "Today Johnny gave up working on 'As a user I should be able to log in'"
  -- if task/user name combo is completed in pivotal but not completed in db
    -- mark task/user name combo in db as completed
      -- "Today Johnny completed 'As a user I should be able to log in'"
# File lib/whois_slacking.rb, line 52
def self.now 
  WhoIsSlacking::Pivotal.connect_to_pivotal
  project_object = WhoIsSlacking::Pivotal
    .pivotal_project( WhoIsSlacking::Pivotal.project_name)
  tasks = WhoIsSlacking::Pivotal.project_stories(project_object) 
  tasks.each do |task|
    if task.current_state != 'unstarted' && 
        task.owned_by && 
        task.current_state != 'restart' &&
        task.current_state != 'unestimated' &&
        task.current_state != 'unscheduled' &&
        task.current_state != 'accepted' 
      WhoIsSlacking::DataTools.save_task(project_object.name, task.id, task.name, task.owned_by, task.current_state, task.accepted_at, task.url )
    end
  end
end