Class: GeoDistance::Distance

Inherits:
Object
  • Object
show all
Defined in:
lib/geo-distance.rb

Defined Under Namespace

Classes: Unit

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(distance, unit = nil) ⇒ Distance

Returns a new instance of Distance.

Raises:

  • (ArgumentError)


57
58
59
60
61
62
63
# File 'lib/geo-distance.rb', line 57

def initialize distance, unit = nil
  @distance = distance
  return if !unit

  raise ArgumentError, "Invalid unit: #{unit} - must be one of #{GeoDistance.units}" if !GeoDistance.units.include?(unit.to_sym)
  @unit = unit.to_sym
end

Instance Attribute Details

#distanceObject (readonly)

Returns the value of attribute distance.



55
56
57
# File 'lib/geo-distance.rb', line 55

def distance
  @distance
end

#unitObject (readonly)

Returns the value of attribute unit.



55
56
57
# File 'lib/geo-distance.rb', line 55

def unit
  @unit
end

Instance Method Details

#[](key) ⇒ Object

Raises:

  • (ArgumentError)


65
66
67
68
69
# File 'lib/geo-distance.rb', line 65

def [] key               
  method = :"delta_#{key}"
  raise ArgumentError, "Invalid unit key #{key}" if !respond_to? method
  Distance.send "in_#{key}", send(method)
end