kanban - Agile Workflow for Ruby
Description
Kanban provides tools to model task flow in distributed apps.
Create a Backlog
require 'redis'
require 'kanban'
backlog = Kanban::Backlog.new backend: Redis.new
Add some tasks to your shiny new Backlog
task = { 'foo' => 'bar' }
5.times { backlog.add task }
(Elsewhere) Stake a claim on a task from the backlog
task_id = backlog.claim # Will block until there is a task, if the backlog is empty or all tasks are being worked.
details = backlog.get task_id
Mark a task as complete (or unworkable)
backlog.complete task_id
# or backlog.unworkable task_id
backlog.done? task_id # => true
Notes
- Claims expire after awhile (default 3 seconds), and become eligible to
be worked by something else.
License
kanban
is available under the MIT License. See LICENSE.txt
for the full text.