Ruby __DATA__ (embedded data)

Posted by root Fri, 22 Aug 2008 16:04:00 GMT

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

Posted in  | Tags  | no comments | no trackbacks