data-transfer-test/models/rate.rb

41 lines
944 B
Ruby
Raw Normal View History

2021-10-08 00:39:06 +00:00
require 'speedtest'
require 'sinatra/activerecord'
2021-10-09 00:48:07 +00:00
Time.zone = "America/Campo_Grande"
ActiveRecord.default_timezone = :local
2021-10-09 00:48:07 +00:00
2020-06-03 03:02:01 +00:00
class Rate < ActiveRecord::Base
def self.transfer(type_transfer)
self.find_rate.collect {
|p| [p.created_at.strftime('%d/%m %H:%M'), p.public_send(type_transfer)]
}
2020-06-03 03:02:01 +00:00
end
def self.extremes(type, value)
hash = self.group("date(created_at)").public_send(type, value)
hash.transform_keys!{ |k| k.to_date.strftime('%d-%m') }
hash.transform_values!{ |v| v.ceil(2) }
2021-10-09 03:18:03 +00:00
end
def self.find_rate
where(created_at: Date.today.all_day)
2021-10-09 03:18:03 +00:00
end
2023-09-09 23:08:04 +00:00
def self.last_time
self.transfer('download').last.first
end
def self.last_value(type)
self.transfer(type).last.last
end
2021-10-08 00:39:06 +00:00
def self.save
test = Speedtest::Test.new(debug: false)
result = test.run
Rate.create({
download: result.pretty_download_rate,
upload: result.pretty_upload_rate,
})
end
2020-06-03 03:02:01 +00:00
end