    # File temp/source.rb, line 134
        def initialize(arg, block_size=500, encoding=nil)
          @er_source = @source = arg
          @to_utf = false
          # Determining the encoding is a deceptively difficult issue to resolve.
          # First, we check the first two bytes for UTF-16.  Then we
          # assume that the encoding is at least ASCII enough for the '>', and
          # we read until we get one of those.  This gives us the XML declaration,
          # if there is one.  If there isn't one, the file MUST be UTF-8, as per
          # the XML spec.  If there is one, we can determine the encoding from
          # it.
          @buffer = ""
          str = @source.read( 2 )
          if encoding
            self.encoding = encoding
          elsif /\A(?:\xfe\xff|\xff\xfe)/n =~ str
            self.encoding = check_encoding( str )
          elsif (0xef == str[0] && 0xbb == str[1])
            str += @source.read(1)
            str = '' if (0xbf == str[2])
          else
            @line_break = '>'
          end
          super str+@source.readline( @line_break )
        end