Module: SpeedGun

Defined in:
lib/speed_gun.rb,
lib/speed_gun/hook.rb,
lib/speed_gun/version.rb

Defined Under Namespace

Classes: App, Config, Event, Hook, Profiler, Railtie, Report, Source, Store

Constant Summary collapse

VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.configSpeedGun::Config

Returns:



18
19
20
# File 'lib/speed_gun.rb', line 18

def config
  @config ||= SpeedGun::Config.new
end

.configure {|config| ... } ⇒ Object

Yields:

  • (config)

    Configure speed gun

Yield Parameters:



24
25
26
# File 'lib/speed_gun.rb', line 24

def configure
  yield config
end

.current_reportSpeedGun::Report?

Returns:



29
30
31
# File 'lib/speed_gun.rb', line 29

def current_report
  Thread.current[:speed_gun_report]
end

.current_report=(report) ⇒ Object



33
34
35
# File 'lib/speed_gun.rb', line 33

def current_report=(report)
  Thread.current[:speed_gun_report] = report
end

.get_backtrace(backtrace = caller(2)) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/speed_gun.rb', line 45

def get_backtrace(backtrace = caller(2))
  backtrace = Rails.backtrace_cleaner.clean(backtrace) if defined?(Rails)

  backtrace.map do |called|
    filename, line, trace = *called.split(':', 3)
    filename = File.expand_path(filename)
    [filename, line.to_i, trace]
  end
end

.get_report(id) ⇒ Object



41
42
43
# File 'lib/speed_gun.rb', line 41

def get_report(id)
  config.store.load("SpeedGun::Report/#{id}")
end

.hook(name, &block) ⇒ Object



45
46
47
# File 'lib/speed_gun/hook.rb', line 45

def self.hook(name, &block)
  SpeedGun::Hook.new(name, &block)
end

.record(event) ⇒ Object



37
38
39
# File 'lib/speed_gun.rb', line 37

def record(event)
  current_report && current_report.record(event)
end

.versionSemantic::Version

Returns Version.

Returns:

  • (Semantic::Version)

    Version



13
14
15
# File 'lib/speed_gun.rb', line 13

def version
  @version ||= Semantic::Version.new(VERSION)
end