#---
# Excerpted from "Programming Ruby 3.2",
# published by The Pragmatic Bookshelf.
# Copyrights apply to this code. It may not be used to create training material,
# courses, books, articles, and the like. Contact us if you are in doubt.
# We make no guarantees that this code is fit for any purpose.
# Visit https://pragprog.com/titles/ruby6 for more book information.
#---
patched = Ruby::Box.new
patched.require_relative("string_patches")

regular_string = "regular string"
begin
  regular_string.yell
rescue
  puts "regular strings can't yell"
end

patched_string = patched::String.new("patched string")
begin
  patched_string.yell
rescue
  puts "even strings defined from the box can't yell"
end

puts patched::Yeller.new("defined in box").yell

