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