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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5895d5c7c414ff0ead805f95cafa9bd69580c9cc
4
- data.tar.gz: de52ebeb588d32fe325d6fe2597796ae8843e87e
3
+ metadata.gz: 8381b9c9997458d973c0b1497626a7c5c2761e44
4
+ data.tar.gz: 328a729a630fed32b3eecf08cafb074e3545e7ed
5
5
  SHA512:
6
- metadata.gz: 6ccd58b4bf1bfae19720d938e49ab57337686b4881e0793f8b4978802c8ac4a8116e6f2b33d5704147ffb34a6b5d89837944d27e29264c8beefcb779d7400116
7
- data.tar.gz: ab3c1e4bccdfb2f6e911ac94b790ba65ddf00aeab7fd570df0251bfd6b11bf86eaf6cb3af90123d4947762033959ea147468b7b5feeab6d2309a1abf8a221add
6
+ metadata.gz: 6861116ff291d75dc40c4b187fc319c2a9685e2216a194b135f6f9d5bd45fa491ff7be6cfbe348b685f2fa9275a117c6d19b14a7a24da9a1d5bca6573d57919e
7
+ data.tar.gz: 570b5bbf1df7c6ceaaa5c482be8c01b023aa0ac905e6823a563cdae7b7126a10920b0f7470015bdb209182454cf19b00adb6a81ffc005ad95081a351fc70ca1e
data/.gitignore CHANGED
@@ -12,3 +12,6 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+
16
+ .DS_Store
17
+ *.gem
@@ -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
@@ -0,0 +1,7 @@
1
+ require_relative 'distance_conversions'
2
+
3
+ module FixnumExtension
4
+ refine Fixnum do
5
+ include ::Geodesy::DistanceConversions
6
+ end
7
+ 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
@@ -1,3 +1,3 @@
1
1
  module Geodesy
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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
@@ -24,6 +24,7 @@ class Point
24
24
 
25
25
  end
26
26
 
27
+
27
28
  class FloatExtensionTest < Minitest::Test
28
29
  def point
29
30
  @point ||= Point.new([33.26926373135873, -117.2871651469912])
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.1
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-10 00:00:00.000000000 Z
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