Inherits from NSObject
Conforms to NSCopying
Declared in GBApplicationSettingsProvider.h
GBApplicationSettingsProvider.m

Overview

Main application settings provider.

This object implements GBApplicationStringsProviding interface and is used by GBAppledocApplication to prepare application-wide settings including factory defaults, global and session values. The main purpose of the class is to simplify GBAppledocApplication class by decoupling it from the actual settings providing implementation.

Tasks

Initialization & disposal

  • + provider Returns autoreleased instance of the class.

Project values handling

Documentation set handling

Paths handling

Warnings handling

Application-wide HTML helpers

Helper methods

Helper classes

Class Methods

provider

Returns autoreleased instance of the class.

+ (id)provider

Declared In

GBApplicationSettingsProvider.h

Instance Methods

htmlReferenceForObject:fromSource:

Returns relative HTML reference to the given object from the context of the given source object.

- (NSString *)htmlReferenceForObject:(GBModelBase *)object fromSource:(GBModelBase *)source

Parameters

object
The object for which to generate the reference to.
source
The source object from which to generate the reference from or nil for index to object reference.

Return Value

Returns the reference string.

Discussion

Returns relative HTML reference to the given object from the context of the given source object.

This is useful for generating hrefs from one object HTML file to another. This is the swiss army knife king of a method for all hrefs generation. It works for any kind of links:

  • Index to top-level object (if source is nil ).
  • Index to a member of a top-level object (if source is nil ).
  • Top-level object to same top-level object.
  • Top-level object to a different top-level object.
  • Top-level object to one of it's members.
  • Member object to it's top-level object.
  • Member object to another top-level object.
  • Member object to another member of the same top-level object.
  • Member object to a member of another top-level object.

Exceptions

NSException
Thrown if object is nil .

Declared In

GBApplicationSettingsProvider.h

htmlReferenceForObjectFromIndex:

Returns relative HTML reference to the given object from the context of index file.

- (NSString *)htmlReferenceForObjectFromIndex:(GBModelBase *)object

Discussion

Returns relative HTML reference to the given object from the context of index file.

This is simply a helper method for htmlReferenceForObject:fromSource: , passing the given object as object parameter and nil as source.

@pram object The object for which to generate the reference to. @return Returns the reference string. @exception NSException Thrown if object is nil . @see htmlReferenceForObject:fromSource: @see htmlReferenceNameForObject:

Declared In

GBApplicationSettingsProvider.h

htmlReferenceNameForObject:

Returns HTML reference name for the given object.

- (NSString *)htmlReferenceNameForObject:(GBModelBase *)object

Parameters

object
The object for which to return reference name.

Return Value

Returns the reference name of the object.

Discussion

Returns HTML reference name for the given object.

This should only be used for creating anchors that need to be referenced from other parts of the same HTML file. The method works for top-level objects as well as their members.

Exceptions

NSException
Thrown if the given object is nil .

Declared In

GBApplicationSettingsProvider.h

replaceAllOccurencesOfPlaceholderStringsInSettingsValues

Replaces all occurences of placeholder strings in all related values of the receiver.

- (void)replaceAllOccurencesOfPlaceholderStringsInSettingsValues

Discussion

Replaces all occurences of placeholder strings in all related values of the receiver.

This message should be sent once all the values have been set. It is a convenience method that prepares all values that can use placeholder strings. From this point on, the rest of the application can simply use properties to get final values instead of sending stringByReplacingOccurencesOfPlaceholdersInString: all the time.

Note that stringByReplacingOccurencesOfPlaceholdersInString: is still available for cases where placeholder strings may be used elsewhere (template files for example).

Declared In

GBApplicationSettingsProvider.h

stringByReplacingOccurencesOfPlaceholdersInString:

Replaces all placeholders occurences in the given string.

- (NSString *)stringByReplacingOccurencesOfPlaceholdersInString:(NSString *)string

Parameters

string
The string to replace placeholder occurences in.

Return Value

Returns new string with all placeholder occurences replaced.

Discussion

Replaces all placeholders occurences in the given string.

This method provides application-wide string placeholders replacement functionality. It replaces all known placeholders with actual values from the receiver. Placeholders are identified by a dollar mark, followed by placeholder name. The following placeholders are supported (note that case is important!):

  • $PROJECT : Replaced by projectName value.
  • $COMPANY : Replaced by projectCompany value.
  • $VERSION : Replaced by projectVersion value.
  • $YEAR : Replaced by current year as four digit string.
  • $UPDATEDATE : Replaced by current date in the form of year, month and day with format YYYY-MM-DD . For example 2010-11-30 .

Declared In

GBApplicationSettingsProvider.h

Properties

commentComponents

Returns the GBCommentComponentsProvider object that identifies comment components.

@property (retain) GBCommentComponentsProvider *commentComponents

Declared In

GBApplicationSettingsProvider.h

companyIdentifier

Company unique identifier, ussualy in the form of reverse domain like com.company .

@property (copy) NSString *companyIdentifier

Declared In

GBApplicationSettingsProvider.h

createDocSet

Specifies whether documentation set should be created from the HTML files.

@property (assign) BOOL createDocSet

Discussion

Specifies whether documentation set should be created from the HTML files.

If YES , HTML files from html subdirectory in outputPath are moved to proper subdirectory within docset output files, then helper files are generated from parsed data. Documentation set files are also indexed. If NO , HTML files are left in the output path.

See Also

Declared In

GBApplicationSettingsProvider.h

docsetBundleIdentifier

Documentation set bundle identifier.

@property (copy) NSString *docsetBundleIdentifier

Declared In

GBApplicationSettingsProvider.h

docsetBundleName

Documentation set bundle name.

@property (copy) NSString *docsetBundleName

Declared In

GBApplicationSettingsProvider.h

docsetCertificateIssuer

Documentation set certificate issuer.

@property (copy) NSString *docsetCertificateIssuer

Declared In

GBApplicationSettingsProvider.h

docsetCertificateSigner

Documentation set certificate signer.

@property (copy) NSString *docsetCertificateSigner

Declared In

GBApplicationSettingsProvider.h

docsetCopyrightMessage

Documentation set human readble copyright message.

@property (copy) NSString *docsetCopyrightMessage

Declared In

GBApplicationSettingsProvider.h

docsetDescription

Documentation set description.

@property (copy) NSString *docsetDescription

Declared In

GBApplicationSettingsProvider.h

docsetFallbackURL

Documentation set fallback URL.

@property (copy) NSString *docsetFallbackURL

Declared In

GBApplicationSettingsProvider.h

docsetFeedName

Documentation set feed name.

@property (copy) NSString *docsetFeedName

Declared In

GBApplicationSettingsProvider.h

docsetFeedURL

Documentation set feed URL.

@property (copy) NSString *docsetFeedURL

Declared In

GBApplicationSettingsProvider.h

docsetInstallPath

The path to which documentation set is to be installed.

@property (copy) NSString *docsetInstallPath

Declared In

GBApplicationSettingsProvider.h

docsetMinimumXcodeVersion

Documentation set minimum Xcode version.

@property (copy) NSString *docsetMinimumXcodeVersion

Declared In

GBApplicationSettingsProvider.h

docsetPlatformFamily

Documentation set platform family.

@property (copy) NSString *docsetPlatformFamily

Declared In

GBApplicationSettingsProvider.h

docsetPublisherIdentifier

Documentation set publisher identifier.

@property (copy) NSString *docsetPublisherIdentifier

Declared In

GBApplicationSettingsProvider.h

docsetPublisherName

Documentation set publisher name.

@property (copy) NSString *docsetPublisherName

Declared In

GBApplicationSettingsProvider.h

docsetUtilPath

The path to docsetutil tool, including tool filename.

@property (copy) NSString *docsetUtilPath

Declared In

GBApplicationSettingsProvider.h

findUndocumentedMembersDocumentation

Specifies whether undocumented inherited methods or properties should be searched for in known places.

@property (assign) BOOL findUndocumentedMembersDocumentation

Discussion

Specifies whether undocumented inherited methods or properties should be searched for in known places.

If YES , any undocumented overriden method or property is searched for in known super classes and adopted protocols and if documentation is found there, it is copied over. This works great for objects which would otherwise only show class documentation and no member. It's also how Apple documentation uses. Defaults to YES .

Note: This property works together with keepUndocumentedObjects and keepUndocumentedMembers . To understand how they are used, read documentation for keepUndocumentedObjects .

Declared In

GBApplicationSettingsProvider.h

htmlExtension

The file extension for html files.

@property (readonly) NSString *htmlExtension

Declared In

GBApplicationSettingsProvider.h

ignoredPaths

The list of all full or partial paths to be ignored.

@property (retain) NSMutableArray *ignoredPaths

Discussion

The list of all full or partial paths to be ignored.

It's recommended to check if a path string ends with any of the given paths before processing it. This should catch directory and file names properly as directories are processed first.

Declared In

GBApplicationSettingsProvider.h

installDocSet

Specifies whether the documentation set should be installed or not.

@property (assign) BOOL installDocSet

Discussion

Specifies whether the documentation set should be installed or not.

If YES , temporary files used for indexing and removed, then documentation set bundle is created from the files from docset output path and is moved to docsetInstallPath . If NO , all documentation set files are left in output path.

See Also

Declared In

GBApplicationSettingsProvider.h

keepMergedCategoriesSections

Indicates whether category or extension sections should be preserved when merging into extended class.

@property (assign) BOOL keepMergedCategoriesSections

Discussion

Indicates whether category or extension sections should be preserved when merging into extended class.

If YES , all the sections from category or extension documentation are preserved. In such case, prefixMergedCategoriesSectionsWithCategoryName may optionally be used to prefix section name with category name or not. If NO , category or extension sections are ignored and a single section with category name is created in the class.

Default value is NO . If you use many sections within the categories, you should probably leave this option unchanged as preserving all category sections might yield fragmented class documentation. Experiment a bit to see what works best for you.

Note: This option is ignored unless mergeCategoriesToClasses is used.

Declared In

GBApplicationSettingsProvider.h

keepUndocumentedObjects

@name Behavior handling

@property (assign) BOOL keepUndocumentedObjects

Declared In

GBApplicationSettingsProvider.h

mergeCategoriesToClasses

Indicates whether categories should be merges to classes they extend or not.

@property (assign) BOOL mergeCategoriesToClasses

Discussion

Indicates whether categories should be merges to classes they extend or not.

If YES , all methods from categories and extensions are merged to their classes. If NO , categories are left as independent objects in generated output. This is the main categories merging on/off switch, it merely enables or disables merging, other category merging settings define how exactly the methods from categories and extensions are merged into their classes.

Default value is YES and should be left so as this seems to be the way Apple has it's documentation generated.

Important: Only categories for known project classes are merged. Categories to other framework classes, such as Foundation, AppKit or UIKit are not merged. In other words: only if the class source code is available on any of the given input paths, and is properly documented, it gets it's categories and extension methods merged! Also note that this option affects your documentation links - if any link is pointing to category that's going to be merged, it will be considered invalid link, so it's best to decide whther to merge categories of nor in advance and then consistently use properly formatted links.

Declared In

GBApplicationSettingsProvider.h

outputPath

The base path of the generated files.

@property (copy) NSString *outputPath

Declared In

GBApplicationSettingsProvider.h

prefixMergedCategoriesSectionsWithCategoryName

Indicates whether merged section names from categories should be prefixed with category name.

@property (assign) BOOL prefixMergedCategoriesSectionsWithCategoryName

Discussion

Indicates whether merged section names from categories should be prefixed with category name.

If YES , all merged section names from categories are prefixed with category name to make them more easily identifiable. If NO , section names are not changed. The first option is useful in case end users of your code are aware of different categories (if you're writting a framework for example). On the other hand, if you're using categories mostly as a way to split class definition to multiple files, you might want to keep this option off.

Note: This option is ignored unless mergeCategoriesToClasses and keepMergedCategoriesSections is used. The option is also ignored for extensions; only section names are used for extensions!

Declared In

GBApplicationSettingsProvider.h

projectCompany

Human readable name of the project company.

@property (copy) NSString *projectCompany

Declared In

GBApplicationSettingsProvider.h

projectName

Human readable name of the project.

@property (copy) NSString *projectName

Declared In

GBApplicationSettingsProvider.h

projectVersion

Human readable version of the project.

@property (copy) NSString *projectVersion

Declared In

GBApplicationSettingsProvider.h

stringTemplates

Returns the GBApplicationStringsProvider object that specifies all string templates used for output generation.

@property (retain) GBApplicationStringsProvider *stringTemplates

Declared In

GBApplicationSettingsProvider.h

templatesPath

The base path to template files used for generating various output files.

@property (copy) NSString *templatesPath

Declared In

GBApplicationSettingsProvider.h

warnOnMissingCompanyIdentifier

Indicates whether appledoc will warn if --company-id argument is not given.

@property (assign) BOOL warnOnMissingCompanyIdentifier

Discussion

Indicates whether appledoc will warn if --company-id argument is not given.

Although appledoc deducts this information from other values, it's better to warn the user as deducted information doesn't necessarily produce correct results.

Note that the warning is only issued if documentation set creation is requested.

Declared In

GBApplicationSettingsProvider.h

warnOnMissingOutputPathArgument

Indicates whether appledoc will warn if --output argument is not given.

@property (assign) BOOL warnOnMissingOutputPathArgument

Discussion

Indicates whether appledoc will warn if --output argument is not given.

Although appledoc still generates output in current directory, it's better to warn the user as in most cases this is not what she wants (for example if appledoc is invoked from Xcode build script, current working directory might point to some unpredicted location). appledoc also writes the exact path that will be used for generating output.

Note that in case documentation set is installed to Xcode, setting output path is irrelevant as all files from output are moved to locations Xcode uses for finding documentation sets.

Declared In

GBApplicationSettingsProvider.h

warnOnUndocumentedMember

Indicates whether appldoc will warn if it encounters an undocumented method or property.

@property (assign) BOOL warnOnUndocumentedMember

Declared In

GBApplicationSettingsProvider.h

warnOnUndocumentedObject

Indicates whether appledoc will warn if it encounters an undocumented class, category or protocol.

@property (assign) BOOL warnOnUndocumentedObject

Declared In

GBApplicationSettingsProvider.h