geodesy 0.0.2 → 0.0.3
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/lib/geodesy/core_ext/distance_conversions.rb +172 -12
- data/lib/geodesy/version.rb +1 -1
- data/test/fixnum_extension_test.rb +181 -20
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b3ccd736823399b58025d03e12b5cc35fc28267
|
4
|
+
data.tar.gz: e824b96a5c01f59988f899eaddfefdfed05ef4f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb0e4d9947a938b8280688f7192b5bb8a3d93f5c7a7bfdb45418d2a604f755d81dd6c7c32d4c1b77f63ed798b4bf2719a38dc712f44450831150cf2935589dd9
|
7
|
+
data.tar.gz: 15d547e0c9ad55de67a27a8651f0d56d1b1b83f8b972d9a9cd9697bfecd783234ee9ac96ace824c889677c45c322b738a597d13fcde4fd8e409da2c0c34f6ef8
|
@@ -12,28 +12,188 @@ module Geodesy
|
|
12
12
|
self * 180 / Math::PI
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
# Unit defines what "self" is
|
16
|
+
def to_kilometers(unit)
|
17
|
+
case unit
|
18
|
+
when 'kilometers'
|
19
|
+
self
|
20
|
+
|
21
|
+
when 'miles'
|
22
|
+
self * 0.621371
|
23
|
+
|
24
|
+
when 'meters'
|
25
|
+
self * 1000.0
|
26
|
+
|
27
|
+
when 'yards'
|
28
|
+
self * 1093.61
|
29
|
+
|
30
|
+
when 'feet'
|
31
|
+
self * 3280.84
|
32
|
+
|
33
|
+
when 'inches'
|
34
|
+
self * 39370.1
|
35
|
+
|
36
|
+
when 'centimeters'
|
37
|
+
self * 100000.0
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_miles(unit)
|
43
|
+
case unit
|
44
|
+
when 'kilometers'
|
45
|
+
self * 1.60934
|
46
|
+
|
47
|
+
when 'miles'
|
48
|
+
self
|
49
|
+
|
50
|
+
when 'meters'
|
51
|
+
self * 1609.34
|
52
|
+
|
53
|
+
when 'yards'
|
54
|
+
self * 1760.0
|
55
|
+
|
56
|
+
when 'feet'
|
57
|
+
self * 5280.0
|
58
|
+
|
59
|
+
when 'inches'
|
60
|
+
self * 63360.0
|
61
|
+
|
62
|
+
when 'centimeters'
|
63
|
+
self * 160934.0
|
64
|
+
|
65
|
+
end
|
17
66
|
end
|
18
67
|
|
19
|
-
def
|
20
|
-
|
68
|
+
def to_meters(unit)
|
69
|
+
case unit
|
70
|
+
when 'kilometers'
|
71
|
+
self * 0.001
|
72
|
+
|
73
|
+
when 'miles'
|
74
|
+
self * 0.000621371
|
75
|
+
|
76
|
+
when 'meters'
|
77
|
+
self
|
78
|
+
|
79
|
+
when 'yards'
|
80
|
+
self * 1.09361
|
81
|
+
|
82
|
+
when 'feet'
|
83
|
+
self * 3.28084
|
84
|
+
|
85
|
+
when 'inches'
|
86
|
+
self * 39.3701
|
87
|
+
|
88
|
+
when 'centimeters'
|
89
|
+
self * 100
|
90
|
+
|
91
|
+
end
|
21
92
|
end
|
22
93
|
|
23
|
-
def
|
24
|
-
|
94
|
+
def to_yards(unit)
|
95
|
+
case unit
|
96
|
+
when 'kilometers'
|
97
|
+
self * 0.0009144
|
98
|
+
|
99
|
+
when 'miles'
|
100
|
+
self * 0.000568182
|
101
|
+
|
102
|
+
when 'meters'
|
103
|
+
self * 1760.0
|
104
|
+
|
105
|
+
when 'yards'
|
106
|
+
self
|
107
|
+
|
108
|
+
when 'feet'
|
109
|
+
self * 3
|
110
|
+
|
111
|
+
when 'inches'
|
112
|
+
self * 36
|
113
|
+
|
114
|
+
when 'centimeters'
|
115
|
+
self * 91.44
|
116
|
+
|
117
|
+
end
|
25
118
|
end
|
26
119
|
|
27
|
-
def
|
28
|
-
|
120
|
+
def to_feet(unit)
|
121
|
+
case unit
|
122
|
+
when 'kilometers'
|
123
|
+
self * 0.0003048
|
124
|
+
|
125
|
+
when 'miles'
|
126
|
+
self * 0.000189394
|
127
|
+
|
128
|
+
when 'meters'
|
129
|
+
self * 0.3048
|
130
|
+
|
131
|
+
when 'yards'
|
132
|
+
self * 0.333333
|
133
|
+
|
134
|
+
when 'feet'
|
135
|
+
self
|
136
|
+
|
137
|
+
when 'inches'
|
138
|
+
self * 12
|
139
|
+
|
140
|
+
when 'centimeters'
|
141
|
+
self * 30.48
|
142
|
+
|
143
|
+
end
|
29
144
|
end
|
30
145
|
|
31
|
-
def
|
32
|
-
|
146
|
+
def to_inches(unit)
|
147
|
+
case unit
|
148
|
+
when 'kilometers'
|
149
|
+
self * 2.54e-5
|
150
|
+
|
151
|
+
when 'miles'
|
152
|
+
self * 1.5783e-5
|
153
|
+
|
154
|
+
when 'meters'
|
155
|
+
self * 0.0254
|
156
|
+
|
157
|
+
when 'yards'
|
158
|
+
self * 0.0277778
|
159
|
+
|
160
|
+
when 'feet'
|
161
|
+
self * 0.0833333
|
162
|
+
|
163
|
+
when 'inches'
|
164
|
+
self
|
165
|
+
|
166
|
+
when 'centimeters'
|
167
|
+
self * 2.54
|
168
|
+
|
169
|
+
end
|
33
170
|
end
|
34
171
|
|
35
|
-
|
36
|
-
|
172
|
+
|
173
|
+
def to_centimeters(unit)
|
174
|
+
case unit
|
175
|
+
when 'kilometers'
|
176
|
+
self * 1e-5
|
177
|
+
|
178
|
+
when 'miles'
|
179
|
+
self * 6.2137e-6
|
180
|
+
|
181
|
+
when 'meters'
|
182
|
+
self * 0.01
|
183
|
+
|
184
|
+
when 'yards'
|
185
|
+
self * 0.0109361
|
186
|
+
|
187
|
+
when 'feet'
|
188
|
+
self * 0.0328084
|
189
|
+
|
190
|
+
when 'inches'
|
191
|
+
self * 0.393701
|
192
|
+
|
193
|
+
when 'centimeters'
|
194
|
+
self
|
195
|
+
|
196
|
+
end
|
37
197
|
end
|
38
198
|
|
39
199
|
end
|
data/lib/geodesy/version.rb
CHANGED
@@ -11,20 +11,32 @@ class Number
|
|
11
11
|
@num.to_radians
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
15
|
-
@num.
|
14
|
+
def to_kilometers(unit)
|
15
|
+
@num.to_kilometers(unit)
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
@num.
|
18
|
+
def to_miles(unit)
|
19
|
+
@num.to_miles(unit)
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
@num.
|
22
|
+
def to_meters(unit)
|
23
|
+
@num.to_meters(unit)
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
@num.
|
26
|
+
def to_yards(unit)
|
27
|
+
@num.to_yards(unit)
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_feet(unit)
|
31
|
+
@num.to_feet(unit)
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_inches(unit)
|
35
|
+
@num.to_inches(unit)
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_centimeters(unit)
|
39
|
+
@num.to_centimeters(unit)
|
28
40
|
end
|
29
41
|
end
|
30
42
|
|
@@ -34,32 +46,181 @@ class FixnumExtensionTest < Minitest::Test
|
|
34
46
|
assert_equal 0.017453292519943295, number.to_radians
|
35
47
|
end
|
36
48
|
|
49
|
+
def test_to_kilometers
|
50
|
+
number = Number.new(2)
|
51
|
+
|
52
|
+
expects = 2 * 100000.0
|
53
|
+
assert_equal expects, number.to_kilometers('centimeters')
|
54
|
+
|
55
|
+
expects = 2 * 39370.1
|
56
|
+
assert_equal expects, number.to_kilometers('inches')
|
57
|
+
|
58
|
+
expects = 2 * 3280.84
|
59
|
+
assert_equal expects, number.to_kilometers('feet')
|
60
|
+
|
61
|
+
expects = 2 * 1093.61
|
62
|
+
assert_equal expects, number.to_kilometers('yards')
|
63
|
+
|
64
|
+
expects = 2 * 1000.0
|
65
|
+
assert_equal expects, number.to_kilometers('meters')
|
66
|
+
|
67
|
+
expects = 2 * 0.621371
|
68
|
+
assert_equal expects, number.to_kilometers('miles')
|
69
|
+
|
70
|
+
expects = 2
|
71
|
+
assert_equal expects, number.to_kilometers('kilometers')
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
def test_to_miles
|
77
|
+
number = Number.new(2)
|
78
|
+
|
79
|
+
expects = 2 * 160934.0
|
80
|
+
assert_equal expects, number.to_miles('centimeters')
|
81
|
+
|
82
|
+
expects = 2 * 63360.0
|
83
|
+
assert_equal expects, number.to_miles('inches')
|
84
|
+
|
85
|
+
expects = 2 * 5280.0
|
86
|
+
assert_equal expects, number.to_miles('feet')
|
87
|
+
|
88
|
+
expects = 2 * 1760.0
|
89
|
+
assert_equal expects, number.to_miles('yards')
|
90
|
+
|
91
|
+
expects = 2 * 1609.34
|
92
|
+
assert_equal expects, number.to_miles('meters')
|
93
|
+
|
94
|
+
expects = 2
|
95
|
+
assert_equal expects, number.to_miles('miles')
|
96
|
+
|
97
|
+
expects = 2 * 1.60934
|
98
|
+
assert_equal expects, number.to_miles('kilometers')
|
99
|
+
end
|
100
|
+
|
37
101
|
def test_to_meters
|
38
|
-
number = Number.new(
|
39
|
-
|
102
|
+
number = Number.new(2)
|
103
|
+
|
104
|
+
expects = 2 * 100
|
105
|
+
assert_equal expects, number.to_meters('centimeters')
|
106
|
+
|
107
|
+
expects = 2 * 39.3701
|
108
|
+
assert_equal expects, number.to_meters('inches')
|
109
|
+
|
110
|
+
expects = 2 * 3.28084
|
111
|
+
assert_equal expects, number.to_meters('feet')
|
112
|
+
|
113
|
+
expects = 2 * 1.09361
|
114
|
+
assert_equal expects, number.to_meters('yards')
|
115
|
+
|
116
|
+
expects = 2
|
117
|
+
assert_equal expects, number.to_meters('meters')
|
40
118
|
|
41
|
-
|
119
|
+
expects = 2 * 0.000621371
|
120
|
+
assert_equal expects, number.to_meters('miles')
|
121
|
+
|
122
|
+
expects = 2 * 0.001
|
123
|
+
assert_equal expects, number.to_meters('kilometers')
|
42
124
|
end
|
43
125
|
|
44
126
|
|
45
127
|
def test_to_yards
|
46
|
-
number = Number.new(
|
47
|
-
|
128
|
+
number = Number.new(2)
|
129
|
+
|
130
|
+
expects = 2 * 91.44
|
131
|
+
assert_equal expects, number.to_yards('centimeters')
|
132
|
+
|
133
|
+
expects = 2 * 36
|
134
|
+
assert_equal expects, number.to_yards('inches')
|
135
|
+
|
136
|
+
expects = 2 * 3
|
137
|
+
assert_equal expects, number.to_yards('feet')
|
48
138
|
|
49
|
-
|
139
|
+
expects = 2
|
140
|
+
assert_equal expects, number.to_yards('yards')
|
141
|
+
|
142
|
+
expects = 2 * 1760.0
|
143
|
+
assert_equal expects, number.to_yards('meters')
|
144
|
+
|
145
|
+
expects = 2 * 0.000568182
|
146
|
+
assert_equal expects, number.to_yards('miles')
|
147
|
+
|
148
|
+
expects = 2 * 0.0009144
|
149
|
+
assert_equal expects, number.to_yards('kilometers')
|
50
150
|
end
|
51
151
|
|
52
152
|
def test_to_feet
|
53
|
-
number = Number.new(
|
54
|
-
|
153
|
+
number = Number.new(2)
|
154
|
+
|
155
|
+
expects = 2 * 30.48
|
156
|
+
assert_equal expects, number.to_feet('centimeters')
|
55
157
|
|
56
|
-
|
158
|
+
expects = 2 * 12
|
159
|
+
assert_equal expects, number.to_feet('inches')
|
160
|
+
|
161
|
+
expects = 2
|
162
|
+
assert_equal expects, number.to_feet('feet')
|
163
|
+
|
164
|
+
expects = 2 * 0.333333
|
165
|
+
assert_equal expects, number.to_feet('yards')
|
166
|
+
|
167
|
+
expects = 2 * 0.3048
|
168
|
+
assert_equal expects, number.to_feet('meters')
|
169
|
+
|
170
|
+
expects = 2 * 0.000189394
|
171
|
+
assert_equal expects, number.to_feet('miles')
|
172
|
+
|
173
|
+
expects = 2 * 0.0003048
|
174
|
+
assert_equal expects, number.to_feet('kilometers')
|
57
175
|
end
|
58
176
|
|
59
177
|
def test_to_inches
|
60
|
-
number = Number.new(
|
61
|
-
|
178
|
+
number = Number.new(2)
|
179
|
+
|
180
|
+
expects = 2 * 2.54
|
181
|
+
assert_equal expects, number.to_inches('centimeters')
|
182
|
+
|
183
|
+
assert_equal 2, number.to_inches('inches')
|
62
184
|
|
63
|
-
|
185
|
+
expects = 2 * 0.0833333
|
186
|
+
assert_equal expects, number.to_inches('feet')
|
187
|
+
|
188
|
+
expects = 2 * 0.0277778
|
189
|
+
assert_equal expects, number.to_inches('yards')
|
190
|
+
|
191
|
+
expects = 2 * 0.0254
|
192
|
+
assert_equal expects, number.to_inches('meters')
|
193
|
+
|
194
|
+
expects = 2 * 1.5783e-5
|
195
|
+
assert_equal expects, number.to_inches('miles')
|
196
|
+
|
197
|
+
expects = 2 * 2.54e-5
|
198
|
+
assert_equal expects, number.to_inches('kilometers')
|
64
199
|
end
|
200
|
+
|
201
|
+
|
202
|
+
def test_to_centimeters
|
203
|
+
number = Number.new(2)
|
204
|
+
|
205
|
+
assert_equal 2, number.to_centimeters('centimeters')
|
206
|
+
|
207
|
+
expects = 2 * 0.393701
|
208
|
+
assert_equal expects, number.to_centimeters('inches')
|
209
|
+
|
210
|
+
expects = 2 * 0.0328084
|
211
|
+
assert_equal expects, number.to_centimeters('feet')
|
212
|
+
|
213
|
+
expects = 2 * 0.0109361
|
214
|
+
assert_equal expects, number.to_centimeters('yards')
|
215
|
+
|
216
|
+
expects = 2 * 0.01
|
217
|
+
assert_equal expects, number.to_centimeters('meters')
|
218
|
+
|
219
|
+
expects = 2 * 6.2137e-6
|
220
|
+
assert_equal expects, number.to_centimeters('miles')
|
221
|
+
|
222
|
+
expects = 2 * 1e-5
|
223
|
+
assert_equal expects, number.to_centimeters('kilometers')
|
224
|
+
end
|
225
|
+
|
65
226
|
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.3
|
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-
|
11
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,4 +119,3 @@ test_files:
|
|
119
119
|
- test/latitude_test.rb
|
120
120
|
- test/longitude_test.rb
|
121
121
|
- test/test_helper.rb
|
122
|
-
has_rdoc:
|