Ruby __DATA__ (embedded data)

Aug 22
2008
module Kernel
  RE_THIS_DATA = lambda{ |number| /^__DATA#{number}__\n/ }
  RE_THE_DATA  = /^__DATA\d+__/
 
  def __data__(num="")
    data = File.read($0).split(RE_THIS_DATA.call(num))
    data[1].split(RE_THE_DATA)[0] if data[1]
  end
end
 
puts "DATA"
print __data__()
 
puts "DATA1"
print __data__(1)
 
puts "DATA2"
print __data__(2)
 
__END__
 
__DATA__
data_1
data_2
data_3
 
__DATA1__
data1_1
data1_2
data1_3
 
data1_11
 
__DATA2__
data2_1
data2_2
data2_3
 
data2_31

Comments are closed.

Calendar

August 2008
M T W T F S S
« Jul   Sep »
 123
45678910
11121314151617
18192021222324
25262728293031

Tags