module Taskinator::Persistence

Public Class Methods

add_process_to_list(process) click to toggle source
# File lib/taskinator/persistence.rb, line 9
def add_process_to_list(process)
  Taskinator.redis do |conn|
    conn.sadd processes_list_key(process.scope), process.uuid
  end
end
deserialize(yaml) click to toggle source
# File lib/taskinator/persistence.rb, line 659
def deserialize(yaml)
  values = YAML.load(yaml)
  if values.is_a?(Array)
    values = values.collect {|value|
      (value.respond_to?(:model_id) && value.respond_to?(:find)) ? value.find : value
    }
  elsif values.is_a?(Hash)
    values.each {|key, value|
      values[key] = value.find if value.respond_to?(:model_id) && value.respond_to?(:find)
    }
  elsif values.respond_to?(:model_id) && values.respond_to?(:find)
    values = values.find
  end
  values
end
included(klass) click to toggle source

mixin logic

# File lib/taskinator/persistence.rb, line 17
def self.included(klass)
  klass.class_eval do
    extend ClassMethods
    include InstanceMethods
  end
end
processes_list_key(scope=:shared) click to toggle source
# File lib/taskinator/persistence.rb, line 5
def processes_list_key(scope=:shared)
  "taskinator:#{scope}:processes"
end
serialize(values) click to toggle source
# File lib/taskinator/persistence.rb, line 643
def serialize(values)
  # special case, convert models to global id's
  if values.is_a?(Array)
    values = values.collect {|value|
      value.respond_to?(:to_global_id) ? value.to_global_id : value
    }
  elsif values.is_a?(Hash)
    values.each {|key, value|
      values[key] = value.to_global_id if value.respond_to?(:to_global_id)
    }
  elsif values.respond_to?(:to_global_id)
    values = values.to_global_id
  end
  YAML.dump(values)
end