From 0403884224f99a3196b1f49f9cf57bc631dab896 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 14 Apr 2016 15:54:05 +0200 Subject: [PATCH] Add Redis front-end to existing Ruby server --- waiter/lib/travis/web/app.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/waiter/lib/travis/web/app.rb b/waiter/lib/travis/web/app.rb index 1622b4d4..4faa5d2d 100644 --- a/waiter/lib/travis/web/app.rb +++ b/waiter/lib/travis/web/app.rb @@ -5,6 +5,7 @@ require 'delegate' require 'time' require 'json' require 'travis/utils/deep_merge' +require 'redis' class Travis::Web::App autoload :AltVersions, 'travis/web/app/alt_versions' @@ -82,7 +83,7 @@ class Travis::Web::App end def response_for(file, options = {}) - content = File.read(file) + content = content_for(file) if fingerprinted?(file) headers = { 'Content-Length' => content.bytesize.to_s, @@ -111,6 +112,17 @@ class Travis::Web::App [ 200, headers, [content] ] end + def content_for(file) + if index?(file) + redis = Redis.new + project = 'travis' + index_key = redis.get("#{project}:index:current") + redis.get("#{project}:index:#{index_key}") + else + content = File.read(file) + end + end + def each_file Dir.glob(File.join(root, '**/*')) { |file| yield file if File.file?(file) } end