Class: DistanceUnit

Inherits:
Numeric
  • Object
show all
Defined in:
lib/housing_misc/distance_unit.rb

Direct Known Subclasses

ImperialDistance, MetricDistance

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, base_unit, dimension, dimension_prefix) ⇒ DistanceUnit

Returns a new instance of DistanceUnit.



37
38
39
40
41
42
# File 'lib/housing_misc/distance_unit.rb', line 37

def initialize value, base_unit, dimension, dimension_prefix
  @value = value
  @base_unit = base_unit
  @dimension = dimension
  @dimension_prefix = dimension_prefix
end

Instance Attribute Details

#base_unitObject

Returns the value of attribute base_unit.



35
36
37
# File 'lib/housing_misc/distance_unit.rb', line 35

def base_unit
  @base_unit
end

#dimensionObject (readonly)

Returns the value of attribute dimension.



34
35
36
# File 'lib/housing_misc/distance_unit.rb', line 34

def dimension
  @dimension
end

#dimension_prefixObject (readonly)

Returns the value of attribute dimension_prefix.



34
35
36
# File 'lib/housing_misc/distance_unit.rb', line 34

def dimension_prefix
  @dimension_prefix
end

#valueObject

Returns the value of attribute value.



35
36
37
# File 'lib/housing_misc/distance_unit.rb', line 35

def value
  @value
end

Instance Method Details

#format_displayObject



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

def format_display
  display_string = ''
  base_distance = self.to_metres
  if base_distance.value >= 1000
    display_string = "#{base_distance.to_kilometres.value.round(1)} km"
  else
    display_string = "#{base_distance.value.round(0)} m"
  end
  return display_string
end

#unitObject



55
56
57
# File 'lib/housing_misc/distance_unit.rb', line 55

def unit
  return "#{self.dimension_prefix}#{self.base_unit}"
end