class Kimurai::Dashboard::Run
Public Instance Methods
difference_between_previous_run()
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 34 def difference_between_previous_run previous_run = Run.where(spider_name: spider_name).reverse_order(:id).first(Sequel[:id] < id) return unless previous_run { visits: { requests: { current: visits["requests"], previous: previous_run.visits["requests"], difference: calculate_difference(visits["requests"], previous_run.visits["requests"]) }, responses: { current: visits["responses"], previous: previous_run.visits["responses"], difference: calculate_difference(visits["responses"], previous_run.visits["responses"]) } }, items: { sent: { current: items["sent"], previous: previous_run.items["sent"], difference: calculate_difference(items["sent"], previous_run.items["sent"]) }, processed: { current: items["processed"], previous: previous_run.items["processed"], difference: calculate_difference(items["processed"], previous_run.items["processed"]) } }, previous_run_id: previous_run.id } end
latest?()
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 22 def latest? Run.where(spider_name: spider_name).last&.id == id end
log_file()
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 26 def log_file if latest? session ? { available: true } : { available: false, reason: "run is not in session" } else { available: false, reason: "run is not latest" } end end
session_id(id)
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 17 def session_id(id) filter(session_id: id) end
spider_id(id)
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 13 def spider_id(id) filter(spider_id: id) end
Private Instance Methods
calculate_difference(current, previous)
click to toggle source
# File lib/kimurai/dashboard/models/run.rb, line 69 def calculate_difference(current, previous) return if current == 0 || previous == 0 (((current - previous).to_r / previous) * 100).to_f.round(1) end