37 lines
		
	
	
		
			975 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			975 B
		
	
	
	
		
			Ruby
		
	
	
	
module Gitlab
 | 
						|
  module Sherlock
 | 
						|
    class LineSample
 | 
						|
      attr_reader :duration, :events
 | 
						|
 | 
						|
      # duration - The execution time in milliseconds.
 | 
						|
      # events - The amount of events.
 | 
						|
      def initialize(duration, events)
 | 
						|
        @duration = duration
 | 
						|
        @events = events
 | 
						|
      end
 | 
						|
 | 
						|
      # Returns the sample duration percentage relative to the given duration.
 | 
						|
      #
 | 
						|
      # Example:
 | 
						|
      #
 | 
						|
      #     sample.duration            # => 150
 | 
						|
      #     sample.percentage_of(1500) # => 10.0
 | 
						|
      #
 | 
						|
      # total_duration - The total duration to compare with.
 | 
						|
      #
 | 
						|
      # Returns a float
 | 
						|
      def percentage_of(total_duration)
 | 
						|
        (duration.to_f / total_duration) * 100.0
 | 
						|
      end
 | 
						|
 | 
						|
      # Returns true if the current sample takes up the majority of the given
 | 
						|
      # duration.
 | 
						|
      #
 | 
						|
      # total_duration - The total duration to compare with.
 | 
						|
      def majority_of?(total_duration)
 | 
						|
        percentage_of(total_duration) >= 30
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |