# Package =TWiki::Attach
A singleton object of this class is used to deal with attachments to topics.
- Package TWiki::Attach
- ClassMethod new ($session)
- ObjectMethod renderMetaData ($web,$topic,$meta,$args) -> $text
- ObjectMethod formatVersions ($web,$topic,$attrs) -> $text
- ObjectMethod getAttachmentLink ($user,$web,$topic,$name,$meta) -> $html
- ObjectMethod migrateToFileAttachmentMacro ($meta,$text) -> $text
- ObjectMethod upgradeFrom1v0beta ($meta) -> $text
## [[ClassMethod]] **new** `($session)`
Constructor
## [[ObjectMethod]] **renderMetaData** `($web,$topic,$meta,$args) -> $text`
Generate a table of attachments suitable for the bottom of a topic view, using templates for the header, footer and each row.
- `$web` the web
- `$topic` the topic
- `$meta` meta-data hash for the topic
- `$args` hash of attachment arguments
## [[ObjectMethod]] **formatVersions** `($web,$topic,$attrs) -> $text`
Generate a version history table for a single attachment
- `$web` - the web
- `$topic` - the topic
- `$attrs` - Hash of meta-data attributes
## [[ObjectMethod]] \*getAttachmentLink `($user,$web,$topic,$name,$meta) -> $html`
- `$user` - User doing the reading
- `$web` - Name of the web
- `$topic` - Name of the topic
- `$name` - Name of the attachment
- `$meta` - Meta object that contains the meta info
Build a link to the attachment, suitable for insertion in the topic.
## [[ObjectMethod]] \*migrateToFileAttachmentMacro `($meta,$text) -> $text`
Migrate old HTML format
## [[ObjectMethod]] \*upgradeFrom1v0beta `($meta) -> $text`
CODE\_SMELL: Is this really necessary? upgradeFrom1v0beta?