class CarCodes::Code

Attributes

word[R]

Public Class Methods

new(word = "") click to toggle source
# File lib/car_codes/code.rb, line 7
def initialize(word = "")
  @word = word.upcase
  @category = CATEGORIES[word[0]]
  @type = TYPES[word[1]]
  @transmission = TRANSMISSIONS[word[2]]
  @fuel = FUEL[word[3]]
end

Public Instance Methods

category() click to toggle source
# File lib/car_codes/code.rb, line 20
def category
  ensure_validation
  @category
end
fuel() click to toggle source
# File lib/car_codes/code.rb, line 35
def fuel
  ensure_validation
  @fuel
end
to_human() click to toggle source
# File lib/car_codes/code.rb, line 15
def to_human
  ensure_validation
  "#{category} - #{type} - #{transmission} - #{fuel}"
end
transmission() click to toggle source
# File lib/car_codes/code.rb, line 30
def transmission
  ensure_validation
  @transmission
end
type() click to toggle source
# File lib/car_codes/code.rb, line 25
def type
  ensure_validation
  @type
end
valid?() click to toggle source
# File lib/car_codes/code.rb, line 40
def valid?
  !!(word.length == 4 &&
    @category &&
    @type &&
    @transmission &&
    @fuel)
end

Private Instance Methods

ensure_validation() click to toggle source
# File lib/car_codes/code.rb, line 50
def ensure_validation
  unless valid?
    raise ArgumentError, "Code is invalid"
  end
end