I am probably "old school," but when learning new things -- seeing is
understanding, try this:

class ArrayMine < Array
  # Build a string from this array, formatting each entry
  # then joining them together.
  def join( sep = $,, format = "%s" )
    puts "I am in #{self.class}#join"
    x = collect do |item|
     sprintf( format, item )
    end
    puts "Calling #{x.class}#join "
    x.join( sep )
  end
end

Keep trying it is worth it
pth