Module: Locatable

Defined in:
lib/locatable.rb,
lib/locatable/railtie.rb,
lib/locatable/version.rb

Defined Under Namespace

Modules: Helpers, MigrationHelpers, Model, Scopes Classes: Railtie

Constant Summary collapse

VALID_UNITS =
%i[km mi nm].freeze
METERS_PER_UNIT =
{
  km: 1_000.0,
  mi: 1_609.344,
  nm: 1_852.0
}.freeze
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.default_unitsObject



18
19
20
# File 'lib/locatable.rb', line 18

def default_units
  @default_units ||= :mi
end

.default_units=(units) ⇒ Object



22
23
24
# File 'lib/locatable.rb', line 22

def default_units=(units)
  @default_units = normalize_units(units)
end

.normalize_units(units) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/locatable.rb', line 26

def normalize_units(units)
  units = units.to_sym
  return units if VALID_UNITS.include?(units)

  raise ArgumentError, "units must be one of: #{VALID_UNITS.join(", ")}"
rescue NoMethodError
  raise ArgumentError, "units must be one of: #{VALID_UNITS.join(", ")}"
end