Class: Measurb::Dimension

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/measurb/dimension.rb

Overview

Base class for defined dimensions to inherit from.

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, precision = DEFAULT_PRECISION) ⇒ Measurb::Dimension

Initialize the dimension

Parameters:

  • value (Numeric)

    Numeric value to wrap

  • precision (Integer) (defaults to: DEFAULT_PRECISION)

    Precision of decimal places



17
18
19
20
21
# File 'lib/measurb/dimension.rb', line 17

def initialize(value, precision = DEFAULT_PRECISION)
  @precision      = precision
  @original_value = value
  @value          = fix_value(value, precision)
end

Class Attribute Details

.abbrevObject (readonly)

Returns the value of attribute abbrev.



9
10
11
# File 'lib/measurb/dimension.rb', line 9

def abbrev
  @abbrev
end

.dimension_nameObject (readonly)

Returns the value of attribute dimension_name.



9
10
11
# File 'lib/measurb/dimension.rb', line 9

def dimension_name
  @dimension_name
end

Instance Attribute Details

#precisionObject (readonly)

Returns the value of attribute precision.



6
7
8
# File 'lib/measurb/dimension.rb', line 6

def precision
  @precision
end

#valueObject (readonly)

Returns the value of attribute value.



6
7
8
# File 'lib/measurb/dimension.rb', line 6

def value
  @value
end

Instance Method Details

#+(other) ⇒ Measurb::Dimension

Add another dimension

Parameters:

Returns:



27
28
29
# File 'lib/measurb/dimension.rb', line 27

def +(other)
  arithmetic(:+, other)
end

#-(other) ⇒ Measurb::Dimension

Subtract another dimension

Parameters:

Returns:



35
36
37
# File 'lib/measurb/dimension.rb', line 35

def -(other)
  arithmetic(:-, other)
end

#<=>(other) ⇒ -1, ...

Compare with another dimension

Parameters:

Returns:

  • (-1, 0, 1)


43
44
45
# File 'lib/measurb/dimension.rb', line 43

def <=>(other)
  value <=> to_self(other).value
end

#eql?(other) ⇒ Boolean

Check type and value quality with another dimension

Parameters:

Returns:

  • (Boolean)


51
52
53
# File 'lib/measurb/dimension.rb', line 51

def eql?(other)
  self.class == other.class && self == other
end

#inspectString

Get the inspect string

Returns:

  • (String)


58
59
60
# File 'lib/measurb/dimension.rb', line 58

def inspect
  "#{value} #{self.class.abbrev || self.class.dimension_name}"
end