Sha256: 9629873bd24bf811234c3fea0c535d1c1f8b82790694f6b9004c0924760cb7e4

Contents?: true

Size: 873 Bytes

Versions: 5

Compression:

Stored size: 873 Bytes

Contents

require 'sugar-high/numeric'

module GeoUnitExt
  ::GeoUnits.units.each do |unit|
    class_eval %{
      def #{unit}_to unit
        unit = GeoUnits.key(unit)                                   
        (self.to_f / GeoUnits.meters_map[:#{unit}]) * GeoUnits.meters_map[unit]
      end
    }
  end

  include NumberDslExt # from sugar-high

  def rpd
    self * GeoUnits.radians_per_degree
  end  
  alias_method :to_radians, :rpd
end

class Fixnum
  include GeoUnitExt
  include ::GeoUnits::NumericExt   
end

class Float
  include GeoUnitExt
  include ::GeoUnits::NumericExt 
end 

class String  
  def parse_dms
    GeoUnits::DmsConverter.parse_dms self
  end
end

class Array
  def to_dms
    lat = self.respond_to?(:to_lat) ? self.to_lat : self[0]
    lng = self.respond_to?(:to_lng) ? self.to_lng : self[1]    
    [lat.to_lat_dms, lng.to_lng_dms].join(', ')
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
geo_units-0.2.6 lib/geo_units/core_ext.rb
geo_units-0.2.5 lib/geo_units/core_ext.rb
geo_units-0.2.4.1 lib/geo_units/core_ext.rb
geo_units-0.2.4 lib/geo_units/core_ext.rb
geo_units-0.2.3 lib/geo_units/core_ext.rb