Class: Yardstick::Measurement

Inherits:
Object
  • Object
show all
Defined in:
lib/yardstick/measurement.rb

Defined Under Namespace

Modules: UtilityMethods

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description, docstring) { ... } ⇒ Yardstick::Measurement

Return a Measurement instance

Examples:

measurement = Measurement.new('The description', docstring, :successful_method)

Parameters:

  • description (#to_str)

    the measurement description

  • docstring (YARD::Docstring)

    the docstring to measure

Yields:

  • the measurement to perform



32
33
34
35
36
37
# File 'lib/yardstick/measurement.rb', line 32

def initialize(description, docstring, &block)
  @description = description.to_str
  @docstring   = docstring
  @block       = block
  @result      = measure
end

Instance Attribute Details

#descriptionString (readonly)

Return the Measurement description

Examples:

measurement.description  # => "The description"

Returns:

  • (String)

    the description



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

def description
  @description
end

Instance Method Details

#eql?(other) ⇒ Boolean

Test if Measurement is equal to another measurement

Examples:

measurement == equal_measurement  # => true

Parameters:

Returns:

  • (Boolean)

    true if the Measurement is equal to the other, false if not



113
114
115
116
# File 'lib/yardstick/measurement.rb', line 113

def eql?(other)
  @description.eql?(other.instance_variable_get(:@description)) &&
  @docstring.eql?(other.instance_variable_get(:@docstring))
end

#hashInteger

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return hash identifier for the Measurement

Returns:

  • (Integer)

    the hash identifier



124
125
126
# File 'lib/yardstick/measurement.rb', line 124

def hash
  [ @description, @docstring ].hash
end

#ok?Boolean

Return true if the measurement was successful

Examples:

Measurement successful

measurement.ok?  # => true

Measurement unsuccessful

measurement.ok?  # => false

Returns:

  • (Boolean)

    true if the measurement was successful, false if not



51
52
53
# File 'lib/yardstick/measurement.rb', line 51

def ok?
  @result == true || skip?
end

#skip?Boolean

Return true if the measurement was skipped

Examples:

Measurement skipped

measurement.skip?  # => true

Measurement not skipped

measurement.skip?  # => false

Returns:

  • (Boolean)

    true if the measurement was skipped, false if not



67
68
69
# File 'lib/yardstick/measurement.rb', line 67

def skip?
  @result == :skip
end

#todo?Boolean

Return true if the measurement is not implemented

Examples:

Measurement not implemented

measurement.todo?  # => true

Measurement implemented

measurement.todo?  # => false

Returns:

  • (Boolean)

    true if the measurement is not implemented, false if not



83
84
85
# File 'lib/yardstick/measurement.rb', line 83

def todo?
  @result == :todo
end

#warnundefined

Warns the results the measurement if it was not successful

Examples:

measurement.warn  # (outputs results if not successful)

Returns:

  • (undefined)


95
96
97
98
99
# File 'lib/yardstick/measurement.rb', line 95

def warn
  unless ok?
    Kernel.warn("#{file}:#{line}: #{path}: #{@description}")
  end
end