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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8381b9c9997458d973c0b1497626a7c5c2761e44
4
- data.tar.gz: 328a729a630fed32b3eecf08cafb074e3545e7ed
3
+ metadata.gz: 8b3ccd736823399b58025d03e12b5cc35fc28267
4
+ data.tar.gz: e824b96a5c01f59988f899eaddfefdfed05ef4f6
5
5
  SHA512:
6
- metadata.gz: 6861116ff291d75dc40c4b187fc319c2a9685e2216a194b135f6f9d5bd45fa491ff7be6cfbe348b685f2fa9275a117c6d19b14a7a24da9a1d5bca6573d57919e
7
- data.tar.gz: 570b5bbf1df7c6ceaaa5c482be8c01b023aa0ac905e6823a563cdae7b7126a10920b0f7470015bdb209182454cf19b00adb6a81ffc005ad95081a351fc70ca1e
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
- def to_kilometers(miles)
16
- miles * Geodesy::Conversions.miles_to_kilometers
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 to_miles(kilometers)
20
- kilometers * Geodesy::Conversions.kilometers_to_miles
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 to_meters(yards)
24
- yards * Geodesy::Conversions.yards_to_meters
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 to_yards(meters)
28
- meters * Geodesy::Conversions.meters_to_yards
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 to_feet(yards)
32
- yards * Geodesy::Conversions.yards_to_feet
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
- def to_inches(feet)
36
- feet * Geodesy::Conversions.feet_to_inches
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
@@ -1,3 +1,3 @@
1
1
  module Geodesy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -11,20 +11,32 @@ class Number
11
11
  @num.to_radians
12
12
  end
13
13
 
14
- def to_meters(yards)
15
- @num.to_meters(yards)
14
+ def to_kilometers(unit)
15
+ @num.to_kilometers(unit)
16
16
  end
17
17
 
18
- def to_yards(meters)
19
- @num.to_yards(meters)
18
+ def to_miles(unit)
19
+ @num.to_miles(unit)
20
20
  end
21
21
 
22
- def to_feet(yards)
23
- @num.to_feet(yards)
22
+ def to_meters(unit)
23
+ @num.to_meters(unit)
24
24
  end
25
25
 
26
- def to_inches(feet)
27
- @num.to_inches(feet)
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(1)
39
- expects = 3 * ::Geodesy::YARDS_PER_METER
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
- assert_equal expects, number.to_meters(3)
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(1)
47
- expects = 3 * ::Geodesy::METERS_TO_YARDS
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
- assert_equal expects, number.to_yards(3)
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(1)
54
- expects = 3 * 3
153
+ number = Number.new(2)
154
+
155
+ expects = 2 * 30.48
156
+ assert_equal expects, number.to_feet('centimeters')
55
157
 
56
- assert_equal expects, number.to_feet(3)
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(1)
61
- expects = 3 * 12
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
- assert_equal expects, number.to_inches(3)
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.2
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-03-11 00:00:00.000000000 Z
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: