Module: PulseMeter::Mixins::Dumper::ClassMethods

Defined in:
lib/pulse-meter/mixins/dumper.rb

Instance Method Summary collapse

Instance Method Details

#list_namesArray<String>

Lists all dumped objects’ names

Returns:

  • (Array<String>)

Raises:

  • (RestoreError)

    if list cannot be retrieved for any reason



62
63
64
65
66
# File 'lib/pulse-meter/mixins/dumper.rb', line 62

def list_names
  PulseMeter.redis.hkeys(DUMP_REDIS_KEY)
rescue
  raise RestoreError, "cannot get data from redis"
end

#list_objectsArray<Object>

Safely restores all dumped objects

Returns:

  • (Array<Object>)


70
71
72
73
74
75
76
77
# File 'lib/pulse-meter/mixins/dumper.rb', line 70

def list_objects
  list_names.each_with_object([]) do |name, objects|
    begin
      objects << restore(name)
    rescue
    end
  end
end

#restore(name) ⇒ Object

Restores object from Redis

Parameters:

  • name (String)

    object name

Returns:

  • (Object)

Raises:

  • (RestoreError)

    if object cannot be restored for any reason



52
53
54
55
56
57
# File 'lib/pulse-meter/mixins/dumper.rb', line 52

def restore(name)
  serialized_obj = PulseMeter.redis.hget(DUMP_REDIS_KEY, name)
  YAML::load(serialized_obj)
rescue
  raise RestoreError, "cannot restore #{name}"
end