Files | Admin

Notes:

Release Name: chunker-0.1

Notes:
Preface:

  Ruby provides an automatic constant called DATA, which is an IO object
  that references all text in the current file under an __END__ token.

  I find it convenient to use the __END__ area to store all sorts of
  stuff, rather than have to worry about distributing separate files.


The problem:

  The DATA constant is determined from whatever ruby believes $0 to be.
  It doesn't work inside of other required libraries, so you'll see stuff
  like this all the time:

  END = File.open( __FILE__ ).read.split( /^__END__/, 2 ).last

  It works, but it's more work than I want to do.


A workaround:

  Chunker solves this by parsing __END__ tokens for you, and making it
  available in the form of a 'DATA_END' constant.  It installs this
  constant into the class that includes Chunker, so you can use it again
  and again, assuming you use a different file for each class.

  It also automatically parses out other things that look like tokens, so
  you can easily have multiple, distinct documents all embedded into the
  __END__ block.


Usage:

  There is no direct interface to Chunker.  Just include it from a
  class to have that file's __END__ data blocks magically become DATA_*
  IO constants within that class.


Example:

  This produces the string "Yep.\n".


	  require 'chunker'
	  class Foom
			  include Chunker
	  end

	  puts Foom.new.class.const_get( :DATA_WICKED ).read

	  __END__
	  Stuff in the END block!
	  __WOW__
	  Ultimate success!
	  __WICKED__
	  Yep.




Changes: Initial release.