-- Chapter 26 example: a dog with state and a method.

local dog = {
    name = "Rex",
    barks_left = 3,
}

function dog:bark()
    if self.barks_left <= 0 then
        print(self.name .. " is hoarse.")
        return
    end
    print(self.name .. ": Woof!")
    self.barks_left = self.barks_left - 1
end

dog:bark()
dog:bark()
dog:bark()
dog:bark()
