name: Test

$metadata:
  varlog: /var/log
  tmplog: /tmp/log

$services:
  log:
    package: Venus/Path
    argument:
      $metadata: tmplog
  development_log:
    package: Venus/Path
    extends: log
    builder:
      - method: new
        return: self
        inject: list
      - method: child
        argument: development.log
        return: result
  production_log:
    package: Venus/Path
    extends: log
    argument:
      $metadata: varlog
    builder:
      - method: new
        return: self
        inject: hash
      - method: child
        argument: production.log
        return: result
  staging_log:
    package: Venus/Path
    extends: log
    builder:
      - method: new
        return: self
        inject: hash
      - method: child
        argument: staging.log
        return: result
  testing_log:
    package: Venus::Path
    builder:
      - method: new
        argument:
          $service: filetemp
        return: self
      - method: child
        argument: testing.log
        return: result
  filetemp:
    package: File/Temp
    constructor: newdir