# File lib/puppet/external/pson/common.rb, line 259
259:   def load(source, proc = nil)
260:     if source.respond_to? :to_str
261:       source = source.to_str
262:     elsif source.respond_to? :to_io
263:       source = source.to_io.read
264:     else
265:       source = source.read
266:     end
267:     result = parse(source, :max_nesting => false, :allow_nan => true)
268:     recurse_proc(result, &proc) if proc
269:     result
270:   end