convert_unit 0.2.0 → 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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +7 -0
  5. data/lib/convert_unit.rb +7 -0
  6. data/lib/convert_unit/base.rb +24 -3
  7. data/lib/convert_unit/dynamic_viscosity.rb +26 -0
  8. data/lib/convert_unit/high_pressure.rb +26 -0
  9. data/lib/convert_unit/kinematic_viscosity.rb +26 -0
  10. data/lib/convert_unit/low_pressure.rb +26 -0
  11. data/lib/convert_unit/mass_flow.rb +26 -0
  12. data/lib/convert_unit/pre_process/dynamic_viscosity/conversion_rate.yml +12 -0
  13. data/lib/convert_unit/pre_process/dynamic_viscosity/process.rb +14 -0
  14. data/lib/convert_unit/pre_process/dynamic_viscosity/units.yml +3 -0
  15. data/lib/convert_unit/pre_process/dynamic_viscosity/units_symbol.yml +3 -0
  16. data/lib/convert_unit/pre_process/high_pressure/conversion_rate.yml +56 -0
  17. data/lib/convert_unit/pre_process/high_pressure/process.rb +14 -0
  18. data/lib/convert_unit/pre_process/high_pressure/units.yml +7 -0
  19. data/lib/convert_unit/pre_process/high_pressure/units_symbol.yml +7 -0
  20. data/lib/convert_unit/pre_process/kinematic_viscosity/conversion_rate.yml +20 -0
  21. data/lib/convert_unit/pre_process/kinematic_viscosity/process.rb +14 -0
  22. data/lib/convert_unit/pre_process/kinematic_viscosity/units.yml +4 -0
  23. data/lib/convert_unit/pre_process/kinematic_viscosity/units_symbol.yml +4 -0
  24. data/lib/convert_unit/pre_process/low_pressure/conversion_rate.yml +42 -0
  25. data/lib/convert_unit/pre_process/low_pressure/process.rb +14 -0
  26. data/lib/convert_unit/pre_process/low_pressure/units.yml +6 -0
  27. data/lib/convert_unit/pre_process/low_pressure/units_symbol.yml +6 -0
  28. data/lib/convert_unit/pre_process/mass_flow/conversion_rate.yml +20 -0
  29. data/lib/convert_unit/pre_process/mass_flow/process.rb +14 -0
  30. data/lib/convert_unit/pre_process/mass_flow/units.yml +4 -0
  31. data/lib/convert_unit/pre_process/mass_flow/units_symbol.yml +5 -0
  32. data/lib/convert_unit/pre_process/speed/conversion_rate.yml +42 -0
  33. data/lib/convert_unit/pre_process/speed/process.rb +14 -0
  34. data/lib/convert_unit/pre_process/speed/units.yml +6 -0
  35. data/lib/convert_unit/pre_process/speed/units_symbol.yml +6 -0
  36. data/lib/convert_unit/pre_process/torque/conversion_rate.yml +20 -0
  37. data/lib/convert_unit/pre_process/torque/process.rb +14 -0
  38. data/lib/convert_unit/pre_process/torque/units.yml +4 -0
  39. data/lib/convert_unit/pre_process/torque/units_symbol.yml +4 -0
  40. data/lib/convert_unit/speed.rb +26 -0
  41. data/lib/convert_unit/torque.rb +26 -0
  42. data/lib/convert_unit/version.rb +1 -1
  43. metadata +37 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66168d3c3f3fa108bf70e021cce4e71402a24df5
4
- data.tar.gz: 749fdb056d205f57d5ae24f0adc2a592eb613c7f
3
+ metadata.gz: 1aa8bca8706847e1e83544e1a58a19fbe9c36b0e
4
+ data.tar.gz: 4fef8f43c52b2a5139edc3e34e316c89a58af1f9
5
5
  SHA512:
6
- metadata.gz: '0978366fc2c32f8404de0c16e1db922010627c588696d3aed8f12fb364e68dc882faf6b6117f0fbc785f6407b7264567d9e78cd8f385475f9efc3231a1f54b61'
7
- data.tar.gz: e8fb0650f05b9155b6e89ac9c6c490e2784c067a4b3e7a9cf5efe2519dcf4aa66c3e9aeff234ff108279e7d9c342c41b349c37f3424bf8f8e33947accd3ea901
6
+ metadata.gz: e34734b62cc14064b7a6709922b702b7b7571641df3430addcab77bca052c8c31efdd61df9c23bac968b03215a8fd43a6d38792480f3a4f704219d05e9d50f5b
7
+ data.tar.gz: 64810872f381abf5c0bce5f473921419f899847f3a5a5d0688fe8191739df37fa4de8d3dd2ab015f56d881340286a50f863616a64147051f55e431bdb4520086
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## v1.0.0
2
+ * Stable Version
3
+ * Add MassFow
4
+ * Add HighPressure
5
+ * Add LowPressure
6
+ * Add KinematicViscosity
7
+ * Add Speed
8
+ * Add DynamicViscosity
9
+ * Add Torque
10
+ * Add formatter method to_c, to_s, to_i, to_r, to_f
11
+
1
12
  ## v0.2.0
2
13
  * Change module required location
3
14
  * Add module self method for get available unit conversion class
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- convert_unit (0.1.0)
4
+ convert_unit (1.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -68,6 +68,13 @@ Volume | cm3, m3, ltr, in3, ft3, us_gal, imp_gal, us_brl
68
68
  Density | g/ml kg/m3 lb/ft3 lb/in3
69
69
  Volumetric Liquid flow | l/sec l/min m3 ft3/min ft3/hr gal/min brl/d
70
70
  Volumetric Liquid flow | nm3/hr scfh scfm
71
+ Mass Flow | kg/h lb/h kg/s t/h
72
+ High Pressure | bar psi kpa mpa kgf/cm2 mm_hg atm
73
+ Low Pressure | mh2o fth2o cmhg inhg inh2o pa
74
+ KinematicViscosity | cs st ft2/s m2/s
75
+ Speed | m/s m/min km/h ft/s ft/min mi/h
76
+ DynamicViscosity | cp poise lb/ft·s
77
+ Torque | nm kgfm ftlb inlb
71
78
  ## Contributing
72
79
 
73
80
  Bug reports and pull requests are welcome on GitHub at https://github.com/tanvir002700/convert_unit. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
data/lib/convert_unit.rb CHANGED
@@ -8,3 +8,10 @@ require 'convert_unit/volume'
8
8
  require 'convert_unit/density'
9
9
  require 'convert_unit/volumetric_liquid_flow'
10
10
  require 'convert_unit/volumetric_gas_flow'
11
+ require 'convert_unit/mass_flow'
12
+ require 'convert_unit/high_pressure'
13
+ require 'convert_unit/low_pressure'
14
+ require 'convert_unit/kinematic_viscosity'
15
+ require 'convert_unit/speed'
16
+ require 'convert_unit/dynamic_viscosity'
17
+ require 'convert_unit/torque'
@@ -1,10 +1,11 @@
1
1
  class Base
2
+ require 'bigdecimal'
2
3
  attr_accessor :value, :unit
3
4
 
4
- def initialize(value, unit, valid_units)
5
+ def initialize(value, unit, valid_units, precision = 16)
5
6
  raise TypeError, 'no implicit conversion of String into Integer' unless value.is_a? Numeric
6
7
  raise TypeError, 'Invalid Unit Type' unless valid_units.include?(unit.to_s.downcase)
7
- @value = value
8
+ @value = BigDecimal.new value, precision
8
9
  @unit = unit.downcase
9
10
  end
10
11
 
@@ -29,7 +30,27 @@ class Base
29
30
  end
30
31
 
31
32
  def inspect
32
- "#{@value}#{@unit}"
33
+ "#{value} #{unit}"
34
+ end
35
+
36
+ def to_c
37
+ "#{value.to_c} #{unit}"
38
+ end
39
+
40
+ def to_r;
41
+ "#{value.to_r} #{unit}"
42
+ end
43
+
44
+ def to_f
45
+ "#{value.to_f} #{unit}"
46
+ end
47
+
48
+ def to_i
49
+ "#{value.to_i} #{unit}"
50
+ end
51
+
52
+ def to_s
53
+ "#{value.to_s} #{unit}"
33
54
  end
34
55
 
35
56
  protected
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/dynamic_viscosity/process'
3
+
4
+ module ConvertUnit
5
+ class DynamicViscosity < Base
6
+ extend PreProcess::DynamicViscosity
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = DynamicViscosity::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = DynamicViscosity::CONVERSION_RATE
16
+ super(value, unit_symbol, DynamicViscosity::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = DynamicViscosity::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless DynamicViscosity::UNITS.include?(unit_symbol)
23
+ DynamicViscosity.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/high_pressure/process'
3
+
4
+ module ConvertUnit
5
+ class HighPressure < Base
6
+ extend PreProcess::HighPressure
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = HighPressure::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = HighPressure::CONVERSION_RATE
16
+ super(value, unit_symbol, HighPressure::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = HighPressure::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless HighPressure::UNITS.include?(unit_symbol)
23
+ HighPressure.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/kinematic_viscosity/process'
3
+
4
+ module ConvertUnit
5
+ class KinematicViscosity < Base
6
+ extend PreProcess::KinematicViscosity
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = KinematicViscosity::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = KinematicViscosity::CONVERSION_RATE
16
+ super(value, unit_symbol, KinematicViscosity::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = KinematicViscosity::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless KinematicViscosity::UNITS.include?(unit_symbol)
23
+ KinematicViscosity.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/low_pressure/process'
3
+
4
+ module ConvertUnit
5
+ class LowPressure < Base
6
+ extend PreProcess::LowPressure
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = LowPressure::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = LowPressure::CONVERSION_RATE
16
+ super(value, unit_symbol, LowPressure::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = LowPressure::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless LowPressure::UNITS.include?(unit_symbol)
23
+ LowPressure.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/mass_flow/process'
3
+
4
+ module ConvertUnit
5
+ class MassFlow < Base
6
+ extend PreProcess::MassFlow
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = MassFlow::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = MassFlow::CONVERSION_RATE
16
+ super(value, unit_symbol, MassFlow::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = MassFlow::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless MassFlow::UNITS.include?(unit_symbol)
23
+ MassFlow.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ cp:
2
+ cp: 1
3
+ poise: 0.01
4
+ lb/ft·s: 0.000672
5
+ poise:
6
+ cp: 100
7
+ poise: 1
8
+ lb/ft·s: 0.067197
9
+ lb/ft·s:
10
+ cp: 1488.16
11
+ poise: 14.8816
12
+ lb/ft·s: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module DynamicViscosity
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ - cp
2
+ - poise
3
+ - lb/ft·s
@@ -0,0 +1,3 @@
1
+ centipoise: cp
2
+ poise: poise
3
+ pound/foot.second: lb/ft·s
@@ -0,0 +1,56 @@
1
+ bar:
2
+ bar: 1
3
+ psi: 14.50326
4
+ kpa: 100
5
+ mpa: 0.1
6
+ kgf/cm2: 1.01968
7
+ mm_hg: 750.0188
8
+ atm: 0.987167
9
+ psi:
10
+ bar: 0.06895
11
+ psi: 1
12
+ kpa: 6.895
13
+ mpa: 0.006895
14
+ kgf/cm2: 0.070307
15
+ mm_hg: 51.71379
16
+ atm: 0.068065
17
+ kpa:
18
+ bar: 0.01
19
+ psi: 0.1450
20
+ kpa: 1
21
+ mpa: 0.001
22
+ kgf/cm2: 0.01020
23
+ mm_hg: 7.5002
24
+ atm: 0.00987
25
+ mpa:
26
+ bar: 10
27
+ psi: 145.03
28
+ kpa: 1000
29
+ mpa: 1
30
+ kgf/cm2: 10.197
31
+ mm_hg: 7500.2
32
+ atm: 9.8717
33
+ kgf/cm2:
34
+ bar: 0.9807
35
+ psi: 14.22335
36
+ kpa: 98.07
37
+ mpa: 0.09807
38
+ kgf/cm2: 1
39
+ mm_hg: 735.5434
40
+ atm: 0.968115
41
+ mm_hg:
42
+ bar: 0.001333
43
+ psi: 0.019337
44
+ kpa: 0.13333
45
+ mpa: 0.000133
46
+ kgf/cm2: 0.00136
47
+ mm_hg: 1
48
+ atm: 0.001316
49
+ atm:
50
+ bar: 1.013
51
+ psi: 14.69181
52
+ kpa: 101.3
53
+ mpa: 0.1013
54
+ kgf/cm2: 1.032936
55
+ mm_hg: 759.769
56
+ atm: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module HighPressure
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ - bar
2
+ - psi
3
+ - kpa
4
+ - mpa
5
+ - kgf/cm2
6
+ - mm_hg
7
+ - atm
@@ -0,0 +1,7 @@
1
+ bar: bar
2
+ pound/square_inch: psi
3
+ kilopascal: kpa
4
+ megapascal: mpa
5
+ kilogram_force/centimeter_square: kgf/cm2
6
+ millimeter_of_mercury: mm_hg
7
+ Atmospheres: atm
@@ -0,0 +1,20 @@
1
+ cs:
2
+ cs: 1
3
+ st: 0.01
4
+ ft2/s: 0.000011
5
+ m2/s: 0.000001
6
+ st:
7
+ cs: 100
8
+ st: 1
9
+ ft2/s: 0.001076
10
+ m2/s: 0.0001
11
+ ft2/s:
12
+ cs: 92903
13
+ st: 929.03
14
+ ft2/s: 1
15
+ m2/s: 0.032903
16
+ m2/s:
17
+ cs: 1000000
18
+ st: 10000
19
+ ft2/s: 10.76392
20
+ m2/s: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module KinematicViscosity
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ - cs
2
+ - st
3
+ - ft2/s
4
+ - m2/s
@@ -0,0 +1,4 @@
1
+ centistoke: cs
2
+ stoke: st
3
+ foot_square/second: ft2/s
4
+ meter_square/second: m2/s
@@ -0,0 +1,42 @@
1
+ mh2o:
2
+ mh2o: 1
3
+ fth2o: 3.280696
4
+ cmhg: 7.356339
5
+ inhg: 2.896043
6
+ inh2o: 39.36572
7
+ pa: 9806
8
+ fth2o:
9
+ mh2o: 0.304813
10
+ fth2o: 1
11
+ cmhg: 2.242311
12
+ inhg: 0.882753
13
+ inh2o: 11.9992
14
+ pa: 2989
15
+ cmhg:
16
+ mh2o: 0.135937
17
+ fth2o: 0.445969
18
+ cmhg: 1
19
+ inhg: 0.39368
20
+ inh2o: 5.351265
21
+ pa: 1333
22
+ inhg:
23
+ mh2o: 0.345299
24
+ fth2o: 1.13282
25
+ cmhg: 2.540135
26
+ inhg: 1
27
+ inh2o: 13.59293
28
+ pa: 3386
29
+ inh2o:
30
+ mh2o: 0.025403
31
+ fth2o: 0.083339
32
+ cmhg: 0.186872
33
+ inhg: 0.073568
34
+ inh2o: 1
35
+ pa: 249.1
36
+ pa:
37
+ mh2o: 0.000102
38
+ fth2o: 0.000335
39
+ cmhg: 0.00075
40
+ inhg: 0.000295
41
+ inh2o: 0.004014
42
+ pa: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module LowPressure
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ - mh2o
2
+ - fth2o
3
+ - cmhg
4
+ - inhg
5
+ - inh2o
6
+ - pa
@@ -0,0 +1,6 @@
1
+ meter_of_water: mh2o
2
+ foot_of_water: fth2o
3
+ centimeter_of_mercury: cmhg
4
+ inches_of_mercury: inhg
5
+ inches_of_water: inh2o
6
+ pascal: pa
@@ -0,0 +1,20 @@
1
+ kg/h:
2
+ kg/h: 1
3
+ lb/h: 2.204586
4
+ kg/s: 0.000278
5
+ t/h: 0.001
6
+ lb/h:
7
+ kg/h: 0.4536
8
+ lb/h: 1
9
+ kg/s: 0.000126
10
+ t/h: 0.000454
11
+ kg/s:
12
+ kg/h: 3600
13
+ lb/h: 7936.508
14
+ kg/s: 1
15
+ t/h: 3.6
16
+ t/h:
17
+ kg/h: 1000
18
+ lb/h: 2204.586
19
+ kg/s: 0.277778
20
+ t/h: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module MassFlow
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ - kg/h
2
+ - lb/h
3
+ - kg/s
4
+ - t/h
@@ -0,0 +1,5 @@
1
+ kilogram/hour: kg/h
2
+ pound/hour: lb/h
3
+ kilogram/second: kg/s
4
+ ton/hour: t/h
5
+
@@ -0,0 +1,42 @@
1
+ m/s:
2
+ m/s: 1
3
+ m/min: 59.988
4
+ km/h: 3.599712
5
+ ft/s: 3.28048
6
+ ft/min: 196.8504
7
+ mi/h: 2.237136
8
+ m/min:
9
+ m/s: 0.01667
10
+ m/min: 1
11
+ km/h: 0.060007
12
+ ft/s: 0.054692
13
+ ft/min: 3.281496
14
+ mi/h: 0.037293
15
+ km/h:
16
+ m/s: 0.2778
17
+ m/min: 16.66467
18
+ km/h: 1
19
+ ft/s: 0.911417
20
+ ft/min: 54.68504
21
+ mi/h: 0.621477
22
+ ft/s:
23
+ m/s: 0.3048
24
+ m/min: 18.28434
25
+ km/h: 1.097192
26
+ ft/s: 1
27
+ ft/min: 60
28
+ mi/h: 0.681879
29
+ ft/min:
30
+ m/s: 0.00508
31
+ m/min: 0.304739
32
+ km/h: 0.018287
33
+ ft/s: 0.016667
34
+ ft/min: 1
35
+ mi/h: 0.011365
36
+ mi/h:
37
+ m/s: 0.447
38
+ m/min: 26.81464
39
+ km/h: 1.609071
40
+ ft/s: 1.466535
41
+ ft/min: 87.99213
42
+ mi/h: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module Speed
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ - m/s
2
+ - m/min
3
+ - km/h
4
+ - ft/s
5
+ - ft/min
6
+ - mi/h
@@ -0,0 +1,6 @@
1
+ meter/second: m/s
2
+ meter/minute: m/min
3
+ kilometer/hour: km/h
4
+ foot/second: ft/s
5
+ foot/minute: ft/min
6
+ miles/hour: mi/h
@@ -0,0 +1,20 @@
1
+ nm:
2
+ nm: 1
3
+ kgfm: 0.101972
4
+ ftlb: 0.737561
5
+ inlb: 8.850732
6
+ kgfm:
7
+ nm: 9.80665
8
+ kgfm: 1
9
+ ftlb: 7.233003
10
+ inlb: 86.79603
11
+ ftlb:
12
+ nm: 1.35582
13
+ kgfm: 0.138255
14
+ ftlb: 1
15
+ inlb: 12
16
+ inlb:
17
+ nm: 0.112985
18
+ kgfm: 0.011521
19
+ ftlb: 0.083333
20
+ inlb: 1
@@ -0,0 +1,14 @@
1
+ require 'yaml'
2
+ require 'convert_unit/pre_process/load'
3
+
4
+ module ConvertUnit
5
+ module PreProcess
6
+ module Torque
7
+ include ConvertUnit::PreProcess
8
+
9
+ def file_path
10
+ File.dirname(__FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ - nm
2
+ - kgfm
3
+ - ftlb
4
+ - inlb
@@ -0,0 +1,4 @@
1
+ newton_meter: nm
2
+ kilogram_force_meter: kgfm
3
+ foot_pound: ftlb
4
+ inch_pound: inlb
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/speed/process'
3
+
4
+ module ConvertUnit
5
+ class Speed < Base
6
+ extend PreProcess::Speed
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = Speed::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = Speed::CONVERSION_RATE
16
+ super(value, unit_symbol, Speed::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = Speed::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless Speed::UNITS.include?(unit_symbol)
23
+ Speed.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ require 'convert_unit/base'
2
+ require 'convert_unit/pre_process/torque/process'
3
+
4
+ module ConvertUnit
5
+ class Torque < Base
6
+ extend PreProcess::Torque
7
+ UNITS_SYMBOL = load_units_symbol
8
+ UNITS = load_available_units
9
+ CONVERSION_RATE = load_conversion_rate
10
+
11
+ attr_accessor :value, :unit
12
+
13
+ def initialize(value, unit)
14
+ unit_symbol = Torque::UNITS_SYMBOL[unit] || unit
15
+ @conversion_rate_for_one_unit = Torque::CONVERSION_RATE
16
+ super(value, unit_symbol, Torque::UNITS)
17
+ end
18
+
19
+ def to(c_unit)
20
+ c_unit.downcase!
21
+ unit_symbol = Torque::UNITS_SYMBOL[c_unit] || c_unit
22
+ raise ArgumentError, 'Impossible conversion type' unless Torque::UNITS.include?(unit_symbol)
23
+ Torque.new(convert_to(unit_symbol), unit_symbol)
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module ConvertUnit
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convert_unit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tanvir hasan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-06 00:00:00.000000000 Z
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -112,8 +112,13 @@ files:
112
112
  - lib/convert_unit/base.rb
113
113
  - lib/convert_unit/convert_unit.rb
114
114
  - lib/convert_unit/density.rb
115
+ - lib/convert_unit/dynamic_viscosity.rb
116
+ - lib/convert_unit/high_pressure.rb
117
+ - lib/convert_unit/kinematic_viscosity.rb
115
118
  - lib/convert_unit/length.rb
119
+ - lib/convert_unit/low_pressure.rb
116
120
  - lib/convert_unit/mass.rb
121
+ - lib/convert_unit/mass_flow.rb
117
122
  - lib/convert_unit/pre_process/area/conversion_rate.yml
118
123
  - lib/convert_unit/pre_process/area/process.rb
119
124
  - lib/convert_unit/pre_process/area/units.yml
@@ -122,15 +127,43 @@ files:
122
127
  - lib/convert_unit/pre_process/density/process.rb
123
128
  - lib/convert_unit/pre_process/density/units.yml
124
129
  - lib/convert_unit/pre_process/density/units_symbol.yml
130
+ - lib/convert_unit/pre_process/dynamic_viscosity/conversion_rate.yml
131
+ - lib/convert_unit/pre_process/dynamic_viscosity/process.rb
132
+ - lib/convert_unit/pre_process/dynamic_viscosity/units.yml
133
+ - lib/convert_unit/pre_process/dynamic_viscosity/units_symbol.yml
134
+ - lib/convert_unit/pre_process/high_pressure/conversion_rate.yml
135
+ - lib/convert_unit/pre_process/high_pressure/process.rb
136
+ - lib/convert_unit/pre_process/high_pressure/units.yml
137
+ - lib/convert_unit/pre_process/high_pressure/units_symbol.yml
138
+ - lib/convert_unit/pre_process/kinematic_viscosity/conversion_rate.yml
139
+ - lib/convert_unit/pre_process/kinematic_viscosity/process.rb
140
+ - lib/convert_unit/pre_process/kinematic_viscosity/units.yml
141
+ - lib/convert_unit/pre_process/kinematic_viscosity/units_symbol.yml
125
142
  - lib/convert_unit/pre_process/length/conversion_rate.yml
126
143
  - lib/convert_unit/pre_process/length/process.rb
127
144
  - lib/convert_unit/pre_process/length/units.yml
128
145
  - lib/convert_unit/pre_process/length/units_symbol.yml
129
146
  - lib/convert_unit/pre_process/load.rb
147
+ - lib/convert_unit/pre_process/low_pressure/conversion_rate.yml
148
+ - lib/convert_unit/pre_process/low_pressure/process.rb
149
+ - lib/convert_unit/pre_process/low_pressure/units.yml
150
+ - lib/convert_unit/pre_process/low_pressure/units_symbol.yml
130
151
  - lib/convert_unit/pre_process/mass/conversion_rate.yml
131
152
  - lib/convert_unit/pre_process/mass/process.rb
132
153
  - lib/convert_unit/pre_process/mass/units.yml
133
154
  - lib/convert_unit/pre_process/mass/units_symbol.yml
155
+ - lib/convert_unit/pre_process/mass_flow/conversion_rate.yml
156
+ - lib/convert_unit/pre_process/mass_flow/process.rb
157
+ - lib/convert_unit/pre_process/mass_flow/units.yml
158
+ - lib/convert_unit/pre_process/mass_flow/units_symbol.yml
159
+ - lib/convert_unit/pre_process/speed/conversion_rate.yml
160
+ - lib/convert_unit/pre_process/speed/process.rb
161
+ - lib/convert_unit/pre_process/speed/units.yml
162
+ - lib/convert_unit/pre_process/speed/units_symbol.yml
163
+ - lib/convert_unit/pre_process/torque/conversion_rate.yml
164
+ - lib/convert_unit/pre_process/torque/process.rb
165
+ - lib/convert_unit/pre_process/torque/units.yml
166
+ - lib/convert_unit/pre_process/torque/units_symbol.yml
134
167
  - lib/convert_unit/pre_process/volume/conversion_rate.yml
135
168
  - lib/convert_unit/pre_process/volume/process.rb
136
169
  - lib/convert_unit/pre_process/volume/units.yml
@@ -143,6 +176,8 @@ files:
143
176
  - lib/convert_unit/pre_process/volumetric_liquid_flow/process.rb
144
177
  - lib/convert_unit/pre_process/volumetric_liquid_flow/units.yml
145
178
  - lib/convert_unit/pre_process/volumetric_liquid_flow/units_symbol.yml
179
+ - lib/convert_unit/speed.rb
180
+ - lib/convert_unit/torque.rb
146
181
  - lib/convert_unit/version.rb
147
182
  - lib/convert_unit/volume.rb
148
183
  - lib/convert_unit/volumetric_gas_flow.rb