The Trunk: HelpSystem-Core-mt.67.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: HelpSystem-Core-mt.67.mcz

commits-2
Marcel Taeumel uploaded a new version of HelpSystem-Core to project The Trunk:
http://source.squeak.org/trunk/HelpSystem-Core-mt.67.mcz

==================== Summary ====================

Name: HelpSystem-Core-mt.67
Author: mt
Time: 25 March 2015, 5:20:51.722 pm
UUID: 841bd9fa-4dc8-6742-bb26-285b46bd2c9d
Ancestors: HelpSystem-Core-mt.66

Support added for html websites such as Swiki.

=============== Diff against HelpSystem-Core-mt.66 ===============

Item was changed:
  AbstractHelpTopic subclass: #ClassAPIHelpTopic
  instanceVariableNames: 'theClass withSubclasses withMethods subclassesAsSeparateTopic'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'HelpSystem-Core-Model'!
+
+ !ClassAPIHelpTopic commentStamp: 'mt 3/25/2015 15:03' prior: 0!
+ Show comments of a class, their subclasses and methods.!

Item was added:
+ AbstractHelpTopic subclass: #HtmlHelpTopic
+ instanceVariableNames: 'url cache selectBlock convertBlock subtopicUrls'
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'HelpSystem-Core-Model'!

Item was added:
+ ----- Method: HtmlHelpTopic>>contents (in category 'accessing') -----
+ contents
+
+ | start end |
+ start := (self document findString: '<body').
+ start := (self document findString: '>' startingAt: start) + 1.
+ end := self document findString: '</body>' startingAt: start.
+
+ start > end ifTrue: [^ ''].
+
+ ^ (self document copyFrom: start to: end - 1) asUnHtml withBlanksTrimmed!

Item was added:
+ ----- Method: HtmlHelpTopic>>convertBlock (in category 'accessing') -----
+ convertBlock
+
+ ^ convertBlock ifNil: [ [:url | url] ]!

Item was added:
+ ----- Method: HtmlHelpTopic>>convertBlock: (in category 'accessing') -----
+ convertBlock: aBlock
+
+ convertBlock := aBlock.!

Item was added:
+ ----- Method: HtmlHelpTopic>>document (in category 'accessing') -----
+ document
+
+ ^ cache ifNil: [cache := (HTTPSocket httpGet: self url accept: 'text/html') contents]!

Item was added:
+ ----- Method: HtmlHelpTopic>>hasSubtopics (in category 'testing') -----
+ hasSubtopics
+
+ ^ self subtopicUrls notEmpty!

Item was added:
+ ----- Method: HtmlHelpTopic>>selectBlock (in category 'accessing') -----
+ selectBlock
+
+ ^ selectBlock ifNil: [ [:url | true] ]!

Item was added:
+ ----- Method: HtmlHelpTopic>>selectBlock: (in category 'accessing') -----
+ selectBlock: aBlock
+ "Which urls should be followed?"
+
+ selectBlock := aBlock.!

Item was added:
+ ----- Method: HtmlHelpTopic>>subtopicUrls (in category 'accessing') -----
+ subtopicUrls
+
+ ^ subtopicUrls ifNil: [
+ | start end |
+ subtopicUrls := OrderedCollection new.
+
+ start := self document findString: '<a '.
+ start := self document findString: 'href' startingAt: start.
+ [start > 0] whileTrue: [
+ start := self document findString: '"' startingAt: start.
+ end := self document findString: '"' startingAt: start+1.
+ subtopicUrls addIfNotPresent: (self document copyFrom: start+1 to: end-1).
+ start := self document findString: '<a ' startingAt: end+1.
+ start > 0 ifTrue: [start := self document findString: 'href' startingAt: start]].
+
+ subtopicUrls := subtopicUrls
+ select: self selectBlock
+ thenCollect: self convertBlock.
+ subtopicUrls]!

Item was added:
+ ----- Method: HtmlHelpTopic>>subtopics (in category 'accessing') -----
+ subtopics
+
+ | start end urls |
+ urls := OrderedCollection new.
+
+ start := self document findString: '<a '.
+ [start > 0] whileTrue: [
+ start := self document findString: 'href' startingAt: start.
+ start := (self document findString: '"' startingAt: start) + 1.
+ end := self document findString: '"' startingAt: start.
+ urls addIfNotPresent: (self document copyFrom: start to: end - 1).
+ start := self document findString: '<a ' startingAt: start.].
+
+ ^ (self subtopicUrls collect: [:url | self class new
+ url: url;
+ selectBlock: self selectBlock;
+ convertBlock: self convertBlock])
+ do: [:topic | topic document; subtopicUrls "download now"] displayingProgress: [:topic | 'Fetching documents ... ', topic url];
+ yourself!

Item was added:
+ ----- Method: HtmlHelpTopic>>title (in category 'accessing') -----
+ title
+
+ | start end |
+ start := (self document findString: '<title') + 6.
+ start := (self document findString: '>' startingAt: start) + 1.
+ end := self document findString: '</title>' startingAt: start.
+
+ start > end ifTrue: [^ self url printStringLimitedTo: 10].
+
+ ^ self document copyFrom: start to: end - 1!

Item was added:
+ ----- Method: HtmlHelpTopic>>url (in category 'accessing') -----
+ url
+
+ ^ url!

Item was added:
+ ----- Method: HtmlHelpTopic>>url: (in category 'accessing') -----
+ url: aString
+
+ url := aString.!

Item was changed:
  AbstractHelpTopic subclass: #PackageAPIHelpTopic
  instanceVariableNames: 'packageName'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'HelpSystem-Core-Model'!
+
+ !PackageAPIHelpTopic commentStamp: 'mt 3/25/2015 15:02' prior: 0!
+ List all classes and their method comments. No subclasses.!