---
name: "Badger::Workplace"
section: "3pm"
platform: "linux"
package: "libbadger-perl"
version: "0.16-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Badger::Workplace"
---

# Badger::Workplace(3pm)

a place to do work

## NAME

Badger::Workplace - a place to do work

## DESCRIPTION

This is a very simple base class for modules that operate on or around  a particular filesystem directory.  See Badger::Config::Filesystem for an  example of it in us.

## CONFIGURATION OPTIONS

### root / dir / directory

Any of `"root"`, `"dir"` or `"directory"` can be provided to specify the root directory of the workplace.

### urn

This option can be set to define a Universal Resource Name (URN) for the  workplace for reference purposes.  If undefined it defaults to the name of the root directory.

### uri

This option can be set to define a Universal Resource Identifier (URN) for the  workplace for reference purposes.  If undefined it defaults to the name of the value of urn.

### mkdir

The object constructor will fail if the root directory specified via root (or `"dir"` or `"directory"`) does not exist.  Alternately, set the `"mkdir"` option to any true value and the directory will be created automatically.

## METHODS

### dir($name) / directory($name)

Returns a Badger::Filesystem::Directory object for a named sub-directory  relative to the workplace root.

When called with any arguments it returns a Badger::Filesystem::Directory  object for the workplace root directory.

### file($name)

Returns a Badger::Filesystem::File object for a named files relative to the workplace root.

### uri($path)

When called without any arguments this method returns the base URI for the  workspace.

```
    print $workspace->uri;              # e.g. foo
```

When called with a relative URI path as an argument, it returns the URI resolved relative to the project base URI.

```
    print $workspace->uri('bar');       # e.g. foo/bar
```

## AUTHOR

Andy Wardley \<http://wardley.org/\>

## COPYRIGHT

Copyright (C) 2008-2014 Andy Wardley.  All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
