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

Class Method Summary collapse

Class Method Details

.cubic_inches(liters) ⇒ Object



47
48
49
# File 'lib/driving_physics/imperial.rb', line 47

def self.cubic_inches(liters)
  liters * CI_PER_LITER
end

.deg_c(deg_f) ⇒ Object



39
40
41
# File 'lib/driving_physics/imperial.rb', line 39

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

.deg_f(deg_c) ⇒ Object



43
44
45
# File 'lib/driving_physics/imperial.rb', line 43

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

.feet(meters) ⇒ Object



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

def self.feet(meters)
  meters * FEET_PER_METER
end

.gallons(liters) ⇒ Object



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

def self.gallons(liters)
  liters * GAL_PER_LITER
end

.kph(mph) ⇒ Object



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

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

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

Raises:

  • (ArgumentError)


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

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



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

def self.meters(feet)
  feet / FEET_PER_METER
end

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

Raises:

  • (ArgumentError)


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

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)


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

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



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

def self.mps(mph)
  mph / MPH
end