geodesy 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/lib/geodesy/core_ext/distance_conversions.rb +40 -0
- data/lib/geodesy/core_ext/fixnum_extension.rb +7 -0
- data/lib/geodesy/core_ext/float_extension.rb +3 -36
- data/lib/geodesy/version.rb +1 -1
- data/lib/geodesy.rb +2 -1
- data/test/fixnum_extension_test.rb +65 -0
- data/test/float_extension_test.rb +1 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8381b9c9997458d973c0b1497626a7c5c2761e44
|
4
|
+
data.tar.gz: 328a729a630fed32b3eecf08cafb074e3545e7ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6861116ff291d75dc40c4b187fc319c2a9685e2216a194b135f6f9d5bd45fa491ff7be6cfbe348b685f2fa9275a117c6d19b14a7a24da9a1d5bca6573d57919e
|
7
|
+
data.tar.gz: 570b5bbf1df7c6ceaaa5c482be8c01b023aa0ac905e6823a563cdae7b7126a10920b0f7470015bdb209182454cf19b00adb6a81ffc005ad95081a351fc70ca1e
|
data/.gitignore
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
module Geodesy
|
3
|
+
module DistanceConversions
|
4
|
+
|
5
|
+
# Assumes degrees to radians
|
6
|
+
def to_radians
|
7
|
+
self * Math::PI / 180
|
8
|
+
end
|
9
|
+
|
10
|
+
# assumes radians to degrees
|
11
|
+
def to_degrees
|
12
|
+
self * 180 / Math::PI
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_kilometers(miles)
|
16
|
+
miles * Geodesy::Conversions.miles_to_kilometers
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_miles(kilometers)
|
20
|
+
kilometers * Geodesy::Conversions.kilometers_to_miles
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_meters(yards)
|
24
|
+
yards * Geodesy::Conversions.yards_to_meters
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_yards(meters)
|
28
|
+
meters * Geodesy::Conversions.meters_to_yards
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_feet(yards)
|
32
|
+
yards * Geodesy::Conversions.yards_to_feet
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_inches(feet)
|
36
|
+
feet * Geodesy::Conversions.feet_to_inches
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -1,40 +1,7 @@
|
|
1
|
+
require_relative 'distance_conversions'
|
1
2
|
|
2
3
|
module FloatExtension
|
3
4
|
refine Float do
|
4
|
-
|
5
|
-
# Assumes degrees to radians
|
6
|
-
def to_radians
|
7
|
-
self * Math::PI / 180
|
8
|
-
end
|
9
|
-
|
10
|
-
# assumes radians to degrees
|
11
|
-
def to_degrees
|
12
|
-
self * 180 / Math::PI
|
13
|
-
end
|
14
|
-
|
15
|
-
def to_kilometers(miles)
|
16
|
-
miles * Geodesy::Conversions.miles_to_kilometers
|
17
|
-
end
|
18
|
-
|
19
|
-
def to_miles(kilometers)
|
20
|
-
kilometers * Geodesy::Conversions.kilometers_to_miles
|
21
|
-
end
|
22
|
-
|
23
|
-
def to_meters(yards)
|
24
|
-
yards * Geodesy::Conversions.yards_to_meters
|
25
|
-
end
|
26
|
-
|
27
|
-
def to_yards(meters)
|
28
|
-
meters * Geodesy::Conversions.meters_to_yards
|
29
|
-
end
|
30
|
-
|
31
|
-
def to_feet(yards)
|
32
|
-
yards * Geodesy::Conversions.yards_to_feet
|
33
|
-
end
|
34
|
-
|
35
|
-
def to_inches(feet)
|
36
|
-
feet * Geodesy::Conversions.feet_to_inches
|
37
|
-
end
|
38
|
-
|
5
|
+
include ::Geodesy::DistanceConversions
|
39
6
|
end
|
40
|
-
end
|
7
|
+
end
|
data/lib/geodesy/version.rb
CHANGED
data/lib/geodesy.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "geodesy/version"
|
2
2
|
require 'geodesy/conversions'
|
3
3
|
require 'geodesy/core_ext/float_extension'
|
4
|
+
require 'geodesy/core_ext/fixnum_extension'
|
4
5
|
require 'geodesy/coordinates'
|
5
6
|
require 'geodesy/bearing'
|
6
7
|
require 'geodesy/destination'
|
@@ -42,4 +43,4 @@ module Geodesy
|
|
42
43
|
).calculate
|
43
44
|
end
|
44
45
|
|
45
|
-
end
|
46
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Number
|
4
|
+
using FixnumExtension
|
5
|
+
|
6
|
+
def initialize(num)
|
7
|
+
@num = num
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_radians
|
11
|
+
@num.to_radians
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_meters(yards)
|
15
|
+
@num.to_meters(yards)
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_yards(meters)
|
19
|
+
@num.to_yards(meters)
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_feet(yards)
|
23
|
+
@num.to_feet(yards)
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_inches(feet)
|
27
|
+
@num.to_inches(feet)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class FixnumExtensionTest < Minitest::Test
|
32
|
+
def test_radians
|
33
|
+
number = Number.new(1)
|
34
|
+
assert_equal 0.017453292519943295, number.to_radians
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_to_meters
|
38
|
+
number = Number.new(1)
|
39
|
+
expects = 3 * ::Geodesy::YARDS_PER_METER
|
40
|
+
|
41
|
+
assert_equal expects, number.to_meters(3)
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def test_to_yards
|
46
|
+
number = Number.new(1)
|
47
|
+
expects = 3 * ::Geodesy::METERS_TO_YARDS
|
48
|
+
|
49
|
+
assert_equal expects, number.to_yards(3)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_to_feet
|
53
|
+
number = Number.new(1)
|
54
|
+
expects = 3 * 3
|
55
|
+
|
56
|
+
assert_equal expects, number.to_feet(3)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_to_inches
|
60
|
+
number = Number.new(1)
|
61
|
+
expects = 3 * 12
|
62
|
+
|
63
|
+
assert_equal expects, number.to_inches(3)
|
64
|
+
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geodesy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -69,6 +69,8 @@ files:
|
|
69
69
|
- lib/geodesy/bearing.rb
|
70
70
|
- lib/geodesy/conversions.rb
|
71
71
|
- lib/geodesy/coordinates.rb
|
72
|
+
- lib/geodesy/core_ext/distance_conversions.rb
|
73
|
+
- lib/geodesy/core_ext/fixnum_extension.rb
|
72
74
|
- lib/geodesy/core_ext/float_extension.rb
|
73
75
|
- lib/geodesy/destination.rb
|
74
76
|
- lib/geodesy/latitude.rb
|
@@ -77,6 +79,7 @@ files:
|
|
77
79
|
- test/bearing_test.rb
|
78
80
|
- test/coordinates_test.rb
|
79
81
|
- test/destination_test.rb
|
82
|
+
- test/fixnum_extension_test.rb
|
80
83
|
- test/float_extension_test.rb
|
81
84
|
- test/geodesy_test.rb
|
82
85
|
- test/latitude_test.rb
|
@@ -110,6 +113,7 @@ test_files:
|
|
110
113
|
- test/bearing_test.rb
|
111
114
|
- test/coordinates_test.rb
|
112
115
|
- test/destination_test.rb
|
116
|
+
- test/fixnum_extension_test.rb
|
113
117
|
- test/float_extension_test.rb
|
114
118
|
- test/geodesy_test.rb
|
115
119
|
- test/latitude_test.rb
|