37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/compat/opal/rexml/source.rb', line 37
def self.create_from(arg)
if arg.respond_to?(:read) &&
arg.respond_to?(:readline) &&
arg.respond_to?(:nil?) &&
arg.respond_to?(:eof?)
if RUBY_ENGINE == "opal"
Source.new(arg.read, nil)
else
IOSource.new(arg)
end
elsif arg.respond_to? :to_str
if RUBY_ENGINE == "opal"
Source.new(arg, nil)
else
IOSource.new(StringIO.new(arg))
end
elsif arg.is_a? Source
arg
else
raise "#{arg.class} is not a valid input stream. It must walk \nlike either a String, an IO, or a Source."
end
end
|