f93f8f569d
Enables frozen string for the following: * lib/gitlab/patch/**/*.rb * lib/gitlab/popen/**/*.rb * lib/gitlab/profiler/**/*.rb * lib/gitlab/project_authorizations/**/*.rb * lib/gitlab/prometheus/**/*.rb * lib/gitlab/query_limiting/**/*.rb * lib/gitlab/quick_actions/**/*.rb * lib/gitlab/redis/**/*.rb * lib/gitlab/request_profiler/**/*.rb * lib/gitlab/search/**/*.rb * lib/gitlab/sherlock/**/*.rb * lib/gitlab/sidekiq_middleware/**/*.rb * lib/gitlab/slash_commands/**/*.rb * lib/gitlab/sql/**/*.rb * lib/gitlab/template/**/*.rb * lib/gitlab/testing/**/*.rb * lib/gitlab/utils/**/*.rb * lib/gitlab/webpack/**/*.rb Partially addresses gitlab-org/gitlab-ce#47424.
45 lines
934 B
Ruby
45 lines
934 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module RequestProfiler
|
|
class Profile
|
|
attr_reader :name, :time, :request_path
|
|
|
|
alias_method :to_param, :name
|
|
|
|
def self.all
|
|
Dir["#{PROFILES_DIR}/*.html"].map do |path|
|
|
new(File.basename(path))
|
|
end
|
|
end
|
|
|
|
def self.find(name)
|
|
name_dup = name.dup
|
|
name_dup << '.html' unless name.end_with?('.html')
|
|
|
|
file_path = "#{PROFILES_DIR}/#{name_dup}"
|
|
return unless File.exist?(file_path)
|
|
|
|
new(name_dup)
|
|
end
|
|
|
|
def initialize(name)
|
|
@name = name
|
|
|
|
set_attributes
|
|
end
|
|
|
|
def content
|
|
File.read("#{PROFILES_DIR}/#{name}")
|
|
end
|
|
|
|
private
|
|
|
|
def set_attributes
|
|
_, path, timestamp = name.split(/(.*)_(\d+)\.html$/)
|
|
@request_path = path.tr('|', '/')
|
|
@time = Time.at(timestamp.to_i).utc
|
|
end
|
|
end
|
|
end
|
|
end
|