Module: DrivingPhysics::Imperial

Defined in:
lib/driving_physics/imperial.rb

Constant Summary collapse

FEET_PER_METER =
3.28084
FEET_PER_MILE =
5280
MPH =
(FEET_PER_METER / FEET_PER_MILE) * SECS_PER_HOUR
CI_PER_LITER =
61.024
GAL_PER_LITER =
0.264172
PS_PER_KW =
1.3596216173039

Class Method Summary collapse

Class Method Details

.cubic_inches(liters) ⇒ Object



53
54
55
# File 'lib/driving_physics/imperial.rb', line 53

def self.cubic_inches(liters)
  liters * CI_PER_LITER
end

.deg_c(deg_f) ⇒ Object



45
46
47
# File 'lib/driving_physics/imperial.rb', line 45

def self.deg_c(deg_f)
  (deg_f - 32).to_f * 5 / 9
end

.deg_f(deg_c) ⇒ Object



49
50
51
# File 'lib/driving_physics/imperial.rb', line 49

def self.deg_f(deg_c)
  deg_c.to_f * 9 / 5 + 32
end

.feet(meters) ⇒ Object



12
13
14
# File 'lib/driving_physics/imperial.rb', line 12

def self.feet(meters)
  meters * FEET_PER_METER
end

.gallons(liters) ⇒ Object



63
64
65
# File 'lib/driving_physics/imperial.rb', line 63

def self.gallons(liters)
  liters * GAL_PER_LITER
end

.kph(mph) ⇒ Object



36
37
38
# File 'lib/driving_physics/imperial.rb', line 36

def self.kph(mph)
  DP::kph(mps(mph))
end

.liters(ci = nil, gallons: nil) ⇒ Object

Raises:

  • (ArgumentError)


57
58
59
60
61
# File 'lib/driving_physics/imperial.rb', line 57

def self.liters(ci = nil, gallons: nil)
  raise(ArgumentError, "argument missing") if ci.nil? and gallons.nil?
  return ci / CI_PER_LITER if gallons.nil?
  gallons.to_f / GAL_PER_LITER
end

.meters(feet) ⇒ Object



16
17
18
# File 'lib/driving_physics/imperial.rb', line 16

def self.meters(feet)
  feet / FEET_PER_METER
end

.miles(meters = nil, km: nil) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
# File 'lib/driving_physics/imperial.rb', line 20

def self.miles(meters = nil, km: nil)
  raise(ArgumentError, "argument missing") if meters.nil? and km.nil?
  meters ||= km * 1000
  meters * FEET_PER_METER / FEET_PER_MILE
end

.mph(mps = nil, kph: nil) ⇒ Object

Raises:

  • (ArgumentError)


26
27
28
29
30
# File 'lib/driving_physics/imperial.rb', line 26

def self.mph(mps = nil, kph: nil)
  raise(ArgumentError, "argument missing") if mps.nil? and kph.nil?
  mps ||= kph.to_f * 1000 / SECS_PER_HOUR
  MPH * mps
end

.mps(mph) ⇒ Object



32
33
34
# File 'lib/driving_physics/imperial.rb', line 32

def self.mps(mph)
  mph / MPH
end

.ps(kw) ⇒ Object

convert kilowatts to horsepower



41
42
43
# File 'lib/driving_physics/imperial.rb', line 41

def self.ps(kw)
  kw * PS_PER_KW
end