class CI::Queue::Redis::TestTimeRecord

Attributes

redis[R]

Public Instance Methods

fetch() click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 11
def fetch
  fetch_all_test_names.each_with_object({}) do |test_name, test_time_hash|
    test_time_hash[test_name] = fetch_test_time(test_name)
  end
end
record(test_name, duration) click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 6
def record(test_name, duration)
  record_test_time(test_name, duration)
  record_test_name(test_name)
end

Private Instance Methods

all_test_names_key() click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 56
def all_test_names_key
  "build:#{config.build_id}:list_of_test_names".dup.force_encoding(Encoding::BINARY)
end
fetch_all_test_names() click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 41
def fetch_all_test_names
  values = redis.pipelined do
    redis.lrange(all_test_names_key, 0, -1)
  end
  values.flatten.map(&:to_s)
end
fetch_test_time(test_name) click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 48
def fetch_test_time(test_name)
  values = redis.pipelined do
    key = test_time_key(test_name)
    redis.lrange(key, 0, -1)
  end
  values.flatten.map(&:to_f)
end
record_test_name(test_name) click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 31
def record_test_name(test_name)
  redis.pipelined do
    redis.lpush(
      all_test_names_key,
      test_name.dup.force_encoding(Encoding::BINARY),
    )
  end
  nil
end
record_test_time(test_name, duration) click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 21
def record_test_time(test_name, duration)
  redis.pipelined do
    redis.lpush(
      test_time_key(test_name),
      duration.to_s.force_encoding(Encoding::BINARY),
    )
  end
  nil
end
test_time_key(test_name) click to toggle source
# File lib/ci/queue/redis/test_time_record.rb, line 60
def test_time_key(test_name)
  "build:#{config.build_id}:#{test_name}".dup.force_encoding(Encoding::BINARY)
end