This is an automated email from the ASF dual-hosted git repository. rubys pushed a commit to branch roster_on_vue in repository https://gitbox.apache.org/repos/asf/whimsy.git
commit f4185d0914828c7ba0ead327d95a7bbf24a21181 Author: Sam Ruby <[email protected]> AuthorDate: Wed Sep 6 11:08:01 2017 -0400 stronger caching --- www/roster/main.rb | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/www/roster/main.rb b/www/roster/main.rb index 8925dae..5786bf6 100755 --- a/www/roster/main.rb +++ b/www/roster/main.rb @@ -54,27 +54,35 @@ get '/committee' do redirect to('/committee/') end -@index = nil -@index_time = nil +@@index = nil +@@index_time = nil +@@index_etag = nil get '/committer/index.json' do - @index = nil unless @index_time and Time.now-@index_tine < 300 + @@index = nil if not @@index_time or Time.now-@@index_time > 300 - if not @index + if not @@index # bulk loading the mail information makes things go faster mail = Hash[ASF::Mail.list.group_by(&:last). map {|person, list| [person, list.map(&:first)]}] - # return a list of people, their public-names, and email addresses - @index = ASF::Person.list.sort_by(&:id).map {|person| + # build a list of people, their public-names, and email addresses + @@index = ASF::Person.list.sort_by(&:id).map {|person| result = {id: person.id, name: person.public_name, mail: mail[person]} result[:member] = true if person.asf_member? result - } - end + }.to_json - _json do - @index + # cache + @@index_time = Time.now + @@index_etag = etag = Digest::MD5.hexdigest(@@index) end + + # send response + last_modified @@index_time + etag @@index_etag + headers 'type' => 'application/json', 'charset' => 'UTF-8' + expires [Time.now-@@index_time, 60].max + @@index end get '/committee/:name.json' do |name| -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
