<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div>Hi Folks<br></div><div><br></div><div><br></div><div>I am working on dumping the contents of a CustomHelp to a foo.org file in Org format as a first stab at a markup.<br></div><div><br></div><div><br></div><div>It is going ok, but I really stink at Streams, so I thought I would ask here for pointers.<br></div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div>DocCustomHelpToOrg  toTestFile: PostgresV3Help.<br></div></blockquote><div>is a call and the method is:<br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>toTestFile: aCustomHelp<br></div><div><br></div><div>|recurse ios contents spacer|<br></div><div><br></div><div>spacer := (Character cr asString),(Character cr asString).<br></div><div>contents := '*   ', aCustomHelp name asString , spacer.<br></div><div>ios := FileStream newFileNamed: ((aCustomHelp  name  asString), '.org').<br></div><div>recurse := [:help |<br></div><div>help pages do:[:each | | v  |<br></div><div>each asString first isUppercase<br></div><div>ifTrue:[<br></div><div>contents := contents , '*  ' .<br></div><div>recurse value: (Smalltalk at: each)]<br></div><div>ifFalse:[<br></div><div>v := help perform: each.<br></div><div>contents := spacer , contents , '** ' ,  (v title) , (Character cr asString), spacer , (v contents)  , spacer.<br></div><div>]]].<br></div><div><br></div><div>recurse value: aCustomHelp.<br></div><div>contents printOn: ios.<br></div><div>ios close.<br></div></div></blockquote><div><br></div><div>try not to puke or spew diet soda out your nose.<br></div><div><br></div><div><br></div><div><br></div><div>I am getting "ok" output, but the first issue is that the entire output is wrapped in single quotes.<br></div><div>Here is the "collapsed" output with the first sub-section named "Overview" expanded. <br></div><div>Notice the single quote right at the beginning and the single quote at the very end.</div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>'  <----this is a problem I would like to get rid of<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>*   PostgresV3Help<br></div><div><br></div><div>** Overview<br></div><div><br></div><div>We''ve uploaded the latest version to the squeaksource repository in two forms: as a single package, and as multiple separate packages.<br></div><div><br></div><div>Links:<br></div><div><a href="http://www.squeaksource.com/PostgresV3.html" target="_blank">http://www.squeaksource.com/PostgresV3.html</a><br></div><div><a href="http://www.squeaksource.com/PostgresV3" target="_blank">http://www.squeaksource.com/PostgresV3</a><br></div><div><br></div><div>The single package version will not be updated anymore. The multi-package version consists of the following:<br></div><div><br></div><div>PostgresV3-Core:<br></div><div>This is basically the implementation of the protocol. It enables one to create connections and execute text queries.<br></div><div><br></div><div>PostgresV3-Pool (depends on Core):<br></div><div>This is an implementation of a connection pool. We always use it when we''re connecting to a database. It also gives support for easy transaction handling.<br></div><div><br></div><div>PostgresV3-CodeMirror (depends on Core and Pool):<br></div><div>This is a set of high level tools which we use most of the time. It allows one to map Postgresql functions to Smalltalk methods. One can load, edit and save selected functions of a schema from a class browser. Invoking the smalltalk methods will result in calling the Postgresql functions. This tool has some limitations: only plpgsql functions are supported, some flags can''t be specified (e.g. security definer), no support for inout/out parameters, the return type has to be refcursor, or a basic type.<br></div><div><br></div><div>PostgresV3-Objects:<br></div><div>This is the old way to map rows to objects and cache them. We don''t use it anymore in new projects. The Core has support for custom rowClass per query (you can define what class should be instantiated for the rows returned by the query), which provides better row-object mapping.<br></div><div><br></div><div>We use it daily in our projects, and I would say it''s pretty stable.<br></div><div><br></div><div><br></div><div>** PostgresV3-Core<br></div><div><br></div><div>** PostgresV3-Pool (depends on Core)<br></div><div>** PostgresV3-CodeMirror (depends on Core and Pool)<br></div><div>** PostgresV3-Objects (Deprecated)<br></div><div>** Standard Usage Pattern<br></div><div><br></div><div>*  ** Jun 17, 2011 Forum.world.st discussion  Re: status of PostgresV3 package<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>** Sep 25, 2014; 5:28am  Forum.world.st discussionStatus of PostgresV3<br></div><div><br></div><div><br></div><div><br></div><div>'   <----this is a problem I would like to get rid of<br></div><div><br></div><div><br></div><div><br></div></div></blockquote><div><br></div><div><br></div><div>thank you for your time.<br></div><div><br></div><div><br></div></div><br></body></html>