unit_conversion 0.0.4 → 1.0.0

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: 8df1a3ed8f9596eab75d5680d9752c5072204cb9
4
- data.tar.gz: 6de3609f36e72cd05b62b16a1b8aa3ce7c1bc292
3
+ metadata.gz: 68887ea137015923e97e347524f28adf500c680d
4
+ data.tar.gz: 7695075cc307ab4434b4c2a7f5c3ac23d0974ca3
5
5
  SHA512:
6
- metadata.gz: a74b3fc2e020b3687d6891fba79ff3745a05da681c79b4b9ef7adc93c547fc9063a4edfbc8256c06a4f8eea6807307b984e3e676c3403b06c42b74d377f24892
7
- data.tar.gz: f5860a5ee39a055c4c9eae2b61a95b5f53da84f404e099d098dadc07ffb7aea16adf96977623b1f92aefd7f03e2b9736894a7a2dc3ace4a39bb7e91dcf67d635
6
+ metadata.gz: dab48b97c409bf00ded4ce5fbf9c02132e8abf03669cc32abc07a3d49c6d580f3c28d9ed95c52ad4d1520b7947cea188e87af9ce561e33e49ff16befe1449f58
7
+ data.tar.gz: fb106eb367d76f3a8c0c1cb93f38d4f9dd60a691b82a1a603341237c66b66ffa93845839a9f0abf52d5d5de4fa27917d0f8b2536875cc624fafcd7a2cae3d86d
data/README.md CHANGED
@@ -23,17 +23,20 @@ Or install it yourself as:
23
23
  $ gem install unit_conversion
24
24
 
25
25
  ## Usage
26
- Always refer to unit conversion methods without an 's':
26
+ If you want to convert from Celcius to Kelvin:
27
+ temperate = UnitConversion.new(0, 'celcius')
28
+ temperature.to_kelvin
27
29
 
28
- Wrong way: inches_to_feet
29
- Right way: inch_to_feet
30
+ => 273.15
30
31
 
31
- Instructions:
32
+ Always refer to unit conversion methods without an 's' and in it's
33
+ singular form:
32
34
 
33
- temperate = UnitConversion.new(0)
34
- temperature.celcius_to_kelvin
35
+ Wrong way: to_meters
36
+ Rgiht way: to_meter
35
37
 
36
- => 273.15
38
+ Wrong way: to_feet
39
+ Right way: to_foot
37
40
 
38
41
  ## Units available for conversion
39
42
 
@@ -44,8 +47,10 @@ Temperature:
44
47
  - Rankine
45
48
 
46
49
  Distance:
47
- - Metric
48
- - Imperial
50
+ - Meter
51
+ - Inch
52
+ - Foot
53
+ - Yard
49
54
 
50
55
  ## Development
51
56
 
@@ -1,2 +1,128 @@
1
- module TemperatureConversion
1
+ module DistanceConversion
2
+ # Proxy = Meter
3
+
4
+ def to_meter
5
+ case @unit
6
+ when 'inch'
7
+ @measurement *= 0.0254
8
+ when 'foot'
9
+ @measurement *= 0.3048
10
+ when 'yard'
11
+ @measurement *= 0.9144
12
+ end
13
+ end
14
+
15
+ def to_inch
16
+ if @unit == 'meter'
17
+ @measurement /= 0.0254
18
+ else
19
+ self.to_meter
20
+ @unit = 'meter'
21
+ self.to_inch
22
+ end
23
+ end
24
+
25
+ def to_foot
26
+ if @unit == 'meter'
27
+ @measurement /= 0.3048
28
+ else
29
+ self.to_meter
30
+ @unit = 'meter'
31
+ self.to_foot
32
+ end
33
+ end
34
+
35
+ def to_yard
36
+ if @unit == 'meter'
37
+ @measurement /= 0.9144
38
+ else
39
+ self.to_meter
40
+ @unit = 'meter'
41
+ self.to_yard
42
+ end
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
+
2
128
  end
@@ -0,0 +1,44 @@
1
+ module TemperatureConversion
2
+ # Proxy = Kelvin
3
+ def to_kelvin
4
+ case @unit
5
+ when 'celcius'
6
+ @measurement += 273.15
7
+ when 'rankine'
8
+ @measurement /= 1.8
9
+ when 'fahrenheit'
10
+ @measurement = (@measurement + 459.67) * 5 / 9
11
+ end
12
+ end
13
+
14
+ def to_celcius
15
+ if @unit == 'kelvin'
16
+ @measurement -= 273.15
17
+ else
18
+ self.to_kelvin
19
+ @unit = 'kelvin'
20
+ self.to_celcius
21
+ end
22
+ end
23
+
24
+ def to_fahrenheit
25
+ if @unit == 'kelvin'
26
+ @measurement = (@measurement * 9 / 5.0) - 459.67
27
+ else
28
+ self.to_kelvin
29
+ @unit = 'kelvin'
30
+ self.to_fahrenheit
31
+ end
32
+ end
33
+
34
+ def to_rankine
35
+ if @unit == 'kelvin'
36
+ @measurement *= 1.8
37
+ else
38
+ self.to_kelvin
39
+ @unit = 'kelvin'
40
+ self.to_rankine
41
+ end
42
+ end
43
+ end
44
+
@@ -1,3 +1,3 @@
1
1
  class UnitConversion
2
- VERSION = "0.0.4"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -1,112 +1,14 @@
1
1
  require_relative "unit_conversion/version"
2
+ require_relative "unit_conversion/distance_conversion"
3
+ require_relative "unit_conversion/temperature_conversion"
2
4
 
3
5
  class UnitConversion
4
- def initialize(measurement)
5
- @measurement = measurement
6
- end
7
- #
8
- ##########################
9
- # TEMPERATURE CONVERSION #
10
- ##########################
11
-
12
- def celcius_to_kelvin
13
- @measurement + 273.15
14
- end
15
-
16
- def fahrenheit_to_kelvin
17
- (@measurement + 459.67) * 5 / 9
18
- end
19
-
20
- def rankine_to_kelvin
21
- @measurement / 1.8
22
- end
23
-
24
- def kelvin_to_celcius
25
- @measurement - 273.15
26
- end
27
-
28
- def kelvin_to_fahrenheit
29
- (@measurement * 9 / 5.0) - 459.67
30
- end
31
-
32
- def kelvin_to_rankine
33
- @measurement * 1.8
34
- end
35
-
36
- def celcius_to_fahrenheit
37
- @measurement * 9/5 + 32.0
38
- end
39
-
40
- def fahrenheit_to_celcius
41
- (@measurement - 32.0) * 5/9
42
- end
43
-
44
- def celcius_to_rankine
45
- (@measurement + 273.15) * 9/5
46
- end
47
-
48
- def rankine_to_celcius
49
- (@measurement - 491.67) * 5/9
50
- end
51
-
52
- def rankine_to_fahrenheit
53
- @measurement - 459.67
54
- end
55
-
56
- def fahrenheit_to_rankine
57
- @measurement + 459.67
58
- end
59
-
60
- ########################
61
- # DISTANCE CONVERSIONS #
62
- ########################
63
-
64
- def feet_to_inch
65
- @measurement * 12.0
66
- end
6
+ attr_accessor :measurement
7
+ include DistanceConversion
8
+ include TemperatureConversion
67
9
 
68
- def inch_to_feet
69
- @measurement / 12.0
70
- end
71
-
72
- def feet_to_yard
73
- @measurement / 3.0
74
- end
75
-
76
- def yard_to_feet
77
- @measurement * 3.0
78
- end
79
-
80
- def feet_to_mile
81
- @measurement / 5280.0
82
- end
83
-
84
- def mile_to_feet
85
- @measurement * 5280.0
86
- end
87
-
88
- def meter_to_feet
89
- @measurement / 0.3048
90
- end
91
-
92
- def feet_to_meter
93
- @measurement * 0.3048
94
- end
95
-
96
- #
97
- def inch_to_meter
98
- @measurement * 0.0254
99
- end
100
-
101
- def meter_to_inch
102
- @measurement / 0.0254
103
- end
104
-
105
- def yard_to_meter
106
- @measurement * 0.9144
107
- end
108
-
109
- def meter_to_yard
110
- @measurement / 0.9144
10
+ def initialize(measurement, unit)
11
+ @measurement = measurement
12
+ @unit = unit
111
13
  end
112
14
  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: 0.0.4
4
+ version: 1.0.0
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-05 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler