
# fileIn("s8/library/sharing/Sharing-FileIn.st")
smalltalk.addClass("StringifiedReader",smalltalk.FileInReader,["action","objectifier"],"Sharing-FileIn")

smalltalk.bind(smalltalk.StringifiedReader,"action:",0
,smalltalk.__f__("""(self,aBlock):
	#StringifiedReader>>#action:
	smalltalk.basic_at_put(self,"@action",aBlock) 
	return self 
""","StringifiedReader_action_")
,"accessing","""action: aBlock
	" Set the action to evaluate on each object read. "

	action := aBlock""",nil)

smalltalk.bind(smalltalk.StringifiedReader,"objectifier:",0
,smalltalk.__f__("""(self,anObjectifier):
	#StringifiedReader>>#objectifier:
	smalltalk.basic_at_put(self,"@objectifier",anObjectifier) 
	return self 
""","StringifiedReader_objectifier_")
,"accessing","""objectifier: anObjectifier
	" Set the objectifier in use to read objects. "

	objectifier := anObjectifier""",nil)

smalltalk.bind(smalltalk.StringifiedReader,"objectifier",0
,smalltalk.__f__("""(self):
	#StringifiedReader>>#objectifier
	if smalltalk.b(smalltalk.isNil_(getattr(self,"@objectifier",nil))):
		smalltalk.basic_at_put(self,"@objectifier",smalltalk.Objectifier.new()) 
	 
	return getattr(self,"@objectifier",nil) 
""","StringifiedReader_objectifier")
,"accessing","""objectifier
	" Returns the objectifier in use to read objects. "

	objectifier isNil ifTrue: [ objectifier := Objectifier new ].
	^objectifier""",nil)

smalltalk.bind(smalltalk.StringifiedReader,"scanFrom:",0
,smalltalk.__f__("""(self,aStream):
	#StringifiedReader>>#scanFrom:
	__0__=smalltalk.newContext()
	__0__.chunk=nil
	__0__.object=nil
	__0__.chunk=aStream.nextChunk() 
	if smalltalk.b(__0__.chunk.isEmpty()):
		return nil 
	 
	__0__.object=self.objectifier().objectFrom_(__0__.chunk) 
	if smalltalk.b(smalltalk.isNil_(getattr(self,"@action",nil))):
		return __0__.object 
	 
	return getattr(self,"@action",nil).evaluateWith_(__0__.object) 
""","StringifiedReader_scanFrom_")
,"fileIn","""scanFrom: aStream
	" FileIn - Parse next chunk in aStream as stringified contents, evaluating action on the object read. "

	| chunk object |
	chunk := aStream nextChunk.
	chunk isEmpty ifTrue: [ ^nil ].
	object := self objectifier objectFrom: chunk.
	action isNil ifTrue: [ ^object ].
	^action evaluateWith: object""",nil)

smalltalk.bind(smalltalk.Smalltalk.__class__,"objectsDoing:",0
,smalltalk.__f__("""(self,aBlock):
	#Smalltalk class>>#objectsDoing:
	def __blk1__(_s8_rec):
		_s8_rec.action_(aBlock) 
		return _s8_rec.yourself() 
	return __blk1__(smalltalk.StringifiedReader.new()) 
""","Smalltalk_class_objectsDoing_")
,"Sharing-FileIn","""objectsDoing: aBlock
	" FileIn - Return a reader to fileIn stringified objects.
	aBlock is evaluated with each object read.
	"

	^StringifiedReader new
		action: aBlock;
		yourself""",nil)

smalltalk.bind(smalltalk.Smalltalk.__class__,"objects",0
,smalltalk.__f__("""(self):
	#Smalltalk class>>#objects
	return smalltalk.StringifiedReader.new() 
""","Smalltalk_class_objects")
,"Sharing-FileIn","""objects
	" FileIn - Return a reader to fileIn stringified objects. "

	^StringifiedReader new""",nil)
