Method: ActiveTracker::Model.all

Defined in:
lib/active_tracker/model.rb

.all(type, tags: {}, data_type: nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/active_tracker/model.rb', line 27

def self.all(type, tags: {}, data_type: nil)
  return [] if ActiveTracker.connection_offline?

  keys = "#{PREFIX}/#{type}/"

  keys += "*"

  keys += tags.sort_by { |k,v| k.to_s }.map do |k,v|
    "#{k}:#{CGI.escape(v.to_s)}"
  end.join("*")

  keys += "*" unless keys.end_with?("*")

  if data_type
    keys += "/#{data_type}"
  end

  connection = ActiveTracker.connection
  result = connection.keys(keys).sort { |a,b| b <=> a }.map { |key| self.new(key, {}.to_json) }
end