chunker/lib/chunker.rb
branchruby-modules
changeset 4 01a3332bfe0a
parent 2 e5c705047540
--- a/chunker/lib/chunker.rb	Thu Jun 04 17:28:02 2009 +0000
+++ b/chunker/lib/chunker.rb	Fri Jan 21 19:41:16 2011 -0800
@@ -1,4 +1,8 @@
-#!/usr/bin/ruby
+# vim: set nosta noet ts=4 sw=4:
+
+require 'strscan'
+require 'stringio'
+
 #
 # Chunker: A convenience library for parsing __END__ tokens consistently.
 #
@@ -17,20 +21,14 @@
 ###
 module Chunker
 
-	require 'strscan'
-	require 'stringio'
+	# VCS Revision
+	VCSRev = %q$Rev$
 
-	# SVN Revision
-	#
-	SVNRev = %q$Rev$
-
-	# SVN Id
-	#
-	SVNId = %q$Id$
+	# VCS Id
+	VCSId = %q$Id$
 
 	# Package version
-	#
-	VERSION = '0.1'
+	VERSION = '1.0.0'
 
 
 	### Parser class for __END__ data blocks.
@@ -40,11 +38,9 @@
 	class DataParser
 
 		# The mark for a DATA block.
-		#
 		END_TOKEN = /^__END__\r?\n/
 
 		# The mark for a 'sub' block.
-		#
 		CHUNK_TOKEN = /^__([A-Z\_0-9]+)__\r?\n/
 
 
@@ -59,11 +55,14 @@
 			@scanner = StringScanner.new( end_string )
 			io.close
 
+			# put each chunk into its own constant
+			#
 			if @scanner.check_until( CHUNK_TOKEN )
-				# put each chunk into its own constant
 				self.extract_blocks
+
+			# no sub blocks, put the whole mess into DATA_END
+			#
 			else
-				# no sub blocks, put the whole mess into DATA_END
 				@klass.const_set( :DATA_END, StringIO.new( end_string ) )
 			end
 		end
@@ -93,20 +92,20 @@
 				else
 					label = @scanner[1]
 
+					# Pull the next token text out of the data, set up the next pass
+					#
 					if data = @scanner.scan_until( CHUNK_TOKEN )
-						# Pull the next token text out of the data, set up the next pass
-						#
-						data         = data[ 0, data.length - @scanner[0].length ]
+						data = data[ 0, data.length - @scanner[0].length ]
 						@scanner.pos = self.next_position
+
+					# No additional blocks
+					#
 					else
-						# No additional blocks
-						#
 						data = @scanner.rest
 					end
 				end
 
 				# Add the IO constant to the class that included me.
-				#
 				@klass.const_set( "DATA_#{label}".to_sym, StringIO.new( data ) )
 			end
 		end
@@ -126,7 +125,6 @@
     def self.included( klass )
 		# klass.instance_eval{ __FILE__ }   awww, nope.
 		# __FILE__ won't work here, so we find the filename via caller().
-		#
 		io = File.open( caller(1).last.sub(/:.*?$/, ''), 'r' )
 
 		DataParser.new( klass, io )