geodesy 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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