geo_calc 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/Gemfile +3 -0
  2. data/README.textile +12 -0
  3. data/VERSION +1 -1
  4. data/geo_calc.gemspec +29 -6
  5. data/lib/geo_calc/calc/destination.rb +1 -1
  6. data/lib/geo_calc/calc/distance.rb +1 -1
  7. data/lib/geo_calc/calc/rhumb.rb +2 -2
  8. data/lib/geo_calc/calc.rb +20 -21
  9. data/lib/geo_calc/dms/converter.rb +106 -0
  10. data/lib/geo_calc/dms.rb +5 -0
  11. data/lib/geo_calc/extensions/array.rb +26 -0
  12. data/lib/geo_calc/extensions/hash.rb +23 -0
  13. data/lib/geo_calc/extensions/math.rb +6 -0
  14. data/lib/geo_calc/extensions/numeric.rb +24 -0
  15. data/lib/geo_calc/extensions/string.rb +44 -0
  16. data/lib/geo_calc/extensions/symbol.rb +9 -0
  17. data/lib/geo_calc/extensions.rb +4 -0
  18. data/lib/geo_calc/geo_point/class_methods.rb +15 -0
  19. data/lib/geo_calc/geo_point/core_extension.rb +11 -0
  20. data/lib/geo_calc/geo_point/shared.rb +29 -0
  21. data/lib/geo_calc/geo_point.rb +42 -40
  22. data/lib/geo_calc/pretty_print.rb +2 -2
  23. data/lib/geo_calc.rb +5 -0
  24. data/lib/geo_units/converter.rb +123 -0
  25. data/lib/geo_units/numeric_ext.rb +117 -0
  26. data/lib/geo_units.rb +21 -0
  27. data/spec/geo_calc/core_ext/numeric_geo_ext_spec.rb +48 -50
  28. data/spec/geo_calc/core_ext_spec.rb +49 -51
  29. data/spec/geo_calc/dms/converter_spec.rb +60 -0
  30. data/spec/geo_calc/geo_point/class_methods_spec.rb +31 -0
  31. data/spec/geo_calc/geo_point/initializer_spec.rb +148 -0
  32. data/spec/geo_calc/geo_point/lat_lon.rb +115 -0
  33. data/spec/geo_calc/geo_point_spec.rb +4 -274
  34. data/spec/geo_units/converter_spec.rb +57 -0
  35. metadata +56 -17
  36. data/lib/geo_calc/core_ext.rb +0 -318
  37. data/lib/geo_calc/geo.rb +0 -171
  38. data/spec/geo_calc/geo_spec.rb +0 -99
@@ -1,99 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # - www.movable-type.co.uk/scripts/latlong.html
4
- describe GeoPoint do
5
- describe Geo do
6
-
7
- # # @param {String|Number} dmsStr: Degrees or deg/min/sec in variety of formats
8
- # @returns {Number} Degrees as decimal number
9
- describe '#parse_dms' do
10
- it 'should convert "58 38 38N" to a Float of degrees (58..59)' do
11
- deg = Geo.parse_dms("58 38 38N")
12
- deg.should be_a(Float)
13
- deg.should be_between(58, 59)
14
- end
15
-
16
- it 'should convert "01 38 38W" to a Float of degrees (1..2)' do
17
- deg = Geo.parse_dms("01 38 38W")
18
- deg.should be_a(Float)
19
- deg.should < 0
20
- deg.should > -2
21
- end
22
-
23
- it 'should convert "005 38 E" to a Float of degrees (5..6)' do
24
- deg = Geo.parse_dms("005 38 E")
25
- deg.should be_a(Float)
26
- deg.should be_between(5, 6)
27
- end
28
- end
29
-
30
- # deg, format = :dms, dp = 0
31
- describe '#to_dms' do
32
- it 'should convert 58.3 to a String in DMS format' do
33
- dms = Geo.to_dms(58.3)
34
- dms.should be_a(String)
35
- expr = Regexp.escape "058".concat("\u00B0", "18", "\u2032", "00", "\u2033")
36
- dms.should match expr
37
- end
38
-
39
- it 'should convert 58.3 to a String in DM format' do
40
- dm = Geo.to_dms(58.3, :dm, 2)
41
- dm.should be_a(String)
42
- expr = Regexp.escape "058".concat("\u00B0", "18", "\u2032")
43
- dm.should match expr
44
- end
45
-
46
- it 'should convert 58.3 to a String in D format' do
47
- d = Geo.to_dms(58.3, :d, 2)
48
- d.should be_a(String)
49
- m = Regexp.escape "058".concat("\u00B0")
50
- d.should match m
51
- end
52
- end
53
-
54
- # deg, format, dp
55
- describe '#to_lat' do
56
- it 'should convert 58.3 to a latitude String in North direction' do
57
- str_lat = Geo.to_lat(58.3)
58
- str_lat.should be_a(String)
59
- expr = Regexp.escape "58".concat("\u00B0", "18", "\u2032", "00", "\u2033", "N")
60
- str_lat.should match expr
61
- end
62
-
63
- it 'should convert -58.3 to a latitude String in South direction' do
64
- str_lat = Geo.to_lat(-58.3)
65
- str_lat.should be_a(String)
66
- expr = Regexp.escape "58".concat("\u00B0", "18", "\u2032", "00", "\u2033", "S")
67
- str_lat.should match expr
68
- end
69
- end
70
-
71
- # deg, format, dp
72
- describe '#to_lon' do
73
- it 'should convert 58.3 to a longitude String' do
74
- str_lat = Geo.to_lon(58.3)
75
- str_lat.should be_a(String)
76
- expr = Regexp.escape "58".concat("\u00B0", "18", "\u2032", "00", "\u2033", "E")
77
- str_lat.should match expr
78
- end
79
-
80
- it 'should convert 58.3 to a longitude String' do
81
- str_lat = Geo.to_lon(-58.3)
82
- str_lat.should be_a(String)
83
- expr = Regexp.escape "58".concat("\u00B0", "18", "\u2032", "00", "\u2033", "W")
84
- str_lat.should match expr
85
- end
86
- end
87
-
88
- # Convert numeric degrees to deg/min/sec as a bearing (0º..360º)
89
- # deg, format, dp
90
- describe '#to_brng' do
91
- it 'should convert 58.3 to a longitude String' do
92
- brng = Geo.to_brng(-58.3)
93
- brng.to_f.should be_between(0, 360)
94
- expr = Regexp.escape "301".concat("\u00B0", "42", "\u2032", "00")
95
- brng.should match expr
96
- end
97
- end
98
- end
99
- end