unit_conversion 1.0.1 → 1.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: 7d1b1cb84ec137f330433ede0d8809940300ee2c
4
- data.tar.gz: ec3f65bb4560bff65baecb2f2544d63b2bdb050f
3
+ metadata.gz: df2318e6d4744e957a1086b5bfa206aa48216fae
4
+ data.tar.gz: ce16014bbd6b71621601fa8726965b536feac34d
5
5
  SHA512:
6
- metadata.gz: ea517e96d9e4a2ebeac0dcc90450cb9511172a4c9ff2b7c83e45dd9e51c50f72db75cb3f415f9cd8418f8ed5037e2d633efaeeb5669b3ef913723cb215f25843
7
- data.tar.gz: 04287ec871d81369fb7700de63dbdd52d6bfb555026720cfc550d630de2711b0050390132793a25b71eb48e76b33078653621d8d45245c33c215106111ff9c8d
6
+ metadata.gz: 916e0114888b77e0b058e41e67859ec388b94782f60e40cbfd4736decc406dbade3c07bf0fb8e6e6218e401f16948de9f7cf6a373ed7f0c1ad16ec5548014208
7
+ data.tar.gz: c3bb9b3ae36f4f469cec6f09b6aa2ff93acbf483b434420edd1c33a45841b4cb5c86cd34baf901e7076dd3cd67eb91749409c7fb281d95db5e83c9ede23d1990
data/README.md CHANGED
@@ -24,13 +24,14 @@ Or install it yourself as:
24
24
  ## Usage
25
25
  If you want to convert from Celcius to Kelvin:
26
26
 
27
- temperate = UnitConversion.new(0, 'celcius')
27
+ celcius = UnitConversion.new(0, 'celcius')
28
28
  temperature.to_kelvin
29
29
 
30
30
  => 273.15
31
31
 
32
- Always refer to unit conversion methods without an 's' and in it's
33
- singular form:
32
+ Refer to the list below and simply prefix a unit with "to_" to call the
33
+ instance method. Also, always refer to unit conversion methods without an
34
+ 's' and in it's singular form:
34
35
 
35
36
  Wrong way: to_meters
36
37
  Rgiht way: to_meter
@@ -38,6 +39,9 @@ singular form:
38
39
  Wrong way: to_feet
39
40
  Right way: to_foot
40
41
 
42
+ Wrong way: to_mph
43
+ Right way: to_miles_per_hour
44
+
41
45
  ## Units available for conversion
42
46
 
43
47
  Temperature:
@@ -59,13 +63,19 @@ Weight:
59
63
  - Short Ton (US ton)
60
64
  - Long Ton (British ton)
61
65
 
66
+ Speed:
67
+ - Mile per hour
68
+ - Kilometer per hour
69
+ - Foot per second
70
+ - Meter per second
71
+ - Knot
72
+
62
73
  ## Development
63
74
 
64
- ** Next Version: **
75
+ **Next Version:**
65
76
  - more metric conversions for all measurements (ex: centi prefixes)
66
77
 
67
- ** Future measurements for conversion: **
68
- - speed conversions
78
+ **Future measurements for conversion:**
69
79
  - volume
70
80
  - area
71
81
  - time
@@ -2,12 +2,14 @@ require_relative "unit_conversion/version"
2
2
  require_relative "unit_conversion/distance_conversion"
3
3
  require_relative "unit_conversion/temperature_conversion"
4
4
  require_relative "unit_conversion/weight_conversion"
5
+ require_relative "unit_conversion/speed_conversion"
5
6
 
6
7
  class UnitConversion
7
8
  attr_accessor :measurement
8
9
  include DistanceConversion
9
10
  include TemperatureConversion
10
11
  include WeightConversion
12
+ include SpeedConversion
11
13
 
12
14
  def initialize(measurement, unit)
13
15
  @measurement = measurement
@@ -41,88 +41,4 @@ module DistanceConversion
41
41
  self.to_yard
42
42
  end
43
43
  end
44
-
45
- def meter_to_inch(value)
46
- value /= 0.0254
47
- end
48
-
49
- def foot_to_meter(value)
50
- value *= 0.3048
51
- end
52
-
53
- def meter_to_foot(value)
54
- value /= 0.3048
55
- end
56
-
57
- def yard_to_meter(value)
58
- value *= 0.9144
59
- end
60
-
61
- def meter_to_yard(value)
62
- value /= 0.9144
63
- end
64
-
65
-
66
- # Requests
67
- def inch_to_foot(value)
68
- in_meters = inch_to_meter(value)
69
- meter_to_foot(in_meters)
70
- end
71
-
72
- def foot_to_inch(value)
73
- in_meters = foot_to_meter(value)
74
- meter_to_inch(in_meters)
75
- end
76
-
77
- def foot_to_yard(value)
78
- in_meters = foot_to_meter(value)
79
- meter_to_yard(in_meters)
80
- end
81
-
82
- def yard_to_foot(value)
83
- in_meters = yard_to_meter(value)
84
- meter_to_foot(in_meters)
85
- end
86
-
87
- def yard_to_inch(value)
88
- in_meters = yard_to_meter(value)
89
- meter_to_inch(in_meters)
90
- end
91
-
92
- def inch_to_yard(value)
93
- in_meters = inch_to_meter(value)
94
- meter_to_yard(in_meters)
95
- end
96
-
97
-
98
-
99
- # def mile_to_meter
100
- # @measurement * 1609.34
101
- # end
102
-
103
- # def meter_to_mile
104
- # @measurement / 1609.34
105
- # end
106
-
107
- # # all other conversions
108
-
109
- # def yard_to_centimeter
110
- # # self.yard_to_meter * 100
111
- # end
112
-
113
-
114
- # def foot_to_inch
115
- # # @measurement * 12.0
116
- # self.foot_to_meter
117
- # self.meter_to_inch
118
- # end
119
- # def foot_to_mile
120
- # @measurement / 5280.0
121
- # end
122
-
123
- # def mile_to_foot
124
- # @measurement * 5280.0
125
- # end
126
-
127
-
128
44
  end
@@ -0,0 +1,69 @@
1
+ module SpeedConversion
2
+ # Proxy = Meter per Second
3
+
4
+ def to_meter_per_second
5
+ case @unit
6
+ when 'mile_per_second'
7
+ @measurement *= 0.3048 * 5280
8
+ when 'mile_per_hour'
9
+ @measurement *= 0.44704
10
+ when 'kilometer_per_hour'
11
+ @measurement *= 0.277778
12
+ when 'knot'
13
+ @measurement *= 0.514444
14
+ when 'kilometer_per_second'
15
+ @measurement *= 1000.0
16
+ end
17
+ end
18
+
19
+ def to_kilometer_per_second
20
+ if @unit == 'meter_per_second'
21
+ @measurement /= 1000
22
+ else
23
+ self.to_meter_per_second
24
+ @unit = 'meter_per_second'
25
+ self.to_kilometer_per_second
26
+ end
27
+ end
28
+
29
+ def to_kilometer_per_hour
30
+ if @unit == 'meter_per_second'
31
+ @measurement *= 3.6
32
+ else
33
+ self.to_meter_per_second
34
+ @unit = 'meter_per_second'
35
+ self.to_kilometer_per_hour
36
+ end
37
+ end
38
+
39
+ def to_knot
40
+ if @unit == 'meter_per_second'
41
+ @measurement *= 1.94384449
42
+ else
43
+ self.to_meter_per_second
44
+ @unit = 'meter_per_second'
45
+ self.to_knot
46
+ end
47
+ end
48
+
49
+ def to_mile_per_second
50
+ if @unit == 'meter_per_second'
51
+ @measurement *= 2.23693629 / 60 / 60
52
+ else
53
+ self.to_meter_per_second
54
+ @unit = 'meter_per_second'
55
+ self.to_mile_per_second
56
+ end
57
+ end
58
+
59
+ def to_mile_per_hour
60
+ if @unit == 'meter_per_second'
61
+ @measurement *= 2.23693629
62
+ else
63
+ self.to_meter_per_second
64
+ @unit = 'meter_per_second'
65
+ self.to_mile_per_hour
66
+ end
67
+ end
68
+
69
+ end
@@ -1,3 +1,3 @@
1
1
  class UnitConversion
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unit_conversion
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Youn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-09 00:00:00.000000000 Z
11
+ date: 2015-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,7 @@ files:
71
71
  - bin/setup
72
72
  - lib/unit_conversion.rb
73
73
  - lib/unit_conversion/distance_conversion.rb
74
+ - lib/unit_conversion/speed_conversion.rb
74
75
  - lib/unit_conversion/temperature_conversion.rb
75
76
  - lib/unit_conversion/version.rb
76
77
  - lib/unit_conversion/weight_conversion.rb