module RailsRequests
Constants
- VERSION
Public Class Methods
cache_key(now = Date.current)
click to toggle source
date key in redis store
# File lib/rails_requests.rb, line 25 def RailsRequests.cache_key(now = Date.current) "date-#{now}" end
days()
click to toggle source
# File lib/rails_requests.rb, line 34 def RailsRequests.days (RailsRequests.duration % 24.days).parts[:days] + 1 end
dump()
click to toggle source
# File lib/rails_requests.rb, line 52 def RailsRequests.dump @data = [] all = {} RailsRequests.days.times do |e| date = e.days.ago.to_date all[date] = RailsRequests.redis.hgetall(RailsRequests.cache_key(date)) end stop = Time.at(60 * (Time.now.to_i / 60)) current = stop - RailsRequests.duration while current <= stop views = all.dig(current.to_date, current.strftime("%H:%M")) || 0 @data << [current.to_i * 1000, views.to_i] current += 1.minute end @data.sort! end
field_key(now = Time.now)
click to toggle source
write to current slot time - date -minute
# File lib/rails_requests.rb, line 30 def RailsRequests.field_key(now = Time.now) now.strftime("%H:%M") end
median(array)
click to toggle source
# File lib/rails_requests.rb, line 38 def RailsRequests.median(array) sorted = array.sort size = sorted.size center = size / 2 if size == 0 nil elsif size.even? (sorted[center - 1] + sorted[center]) / 2.0 else sorted[center] end end
populate_test_data(seed = 20, limit = 10000, days = 7)
click to toggle source
populate test data run in rails c
# File lib/rails_requests.rb, line 77 def RailsRequests.populate_test_data(seed = 20, limit = 10000, days = 7) limit.times do t = rand(86400*days).seconds.ago # within last 7 days RailsRequests.redis.hincrby(RailsRequests.cache_key(t.to_date), RailsRequests.field_key(t), rand(seed)) end end
setup() { |self| ... }
click to toggle source
# File lib/rails_requests.rb, line 20 def self.setup yield(self) end