Skip to content

app/greeter.aug ​

Hello world with dependencies · Source and specification

Files in this project

Code ​

aug
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
import Logger from logging
/**
* Welcomes a user through the configured logger.
* @param logger The application logger, injected when resolved.
*/
Greeter(resolve Logger logger) implements IGreeter:
    /**
    * Prints a personalized greeting.
    * @param name The user to welcome.
    */
    greet(resolve Console console, string name):
        logger.log(message="Hello, " + name + "!")
interface IGreeter:
    /**
    * Prints a personalized greeting.
    * @param name The user to welcome.
    */
    greet(resolve Console console, string name) uses Console.write
aug
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
import Logger from logging
/**
* Welcomes a user through the configured logger.
* @param logger The application logger, injected when resolved.
*/
Greeter(resolve Logger logger) implements IGreeter {
    /**
    * Prints a personalized greeting.
    * @param name The user to welcome.
    */
    greet(resolve Console console, string name) {
        logger.log(message="Hello, " + name + "!")
    }
}
interface IGreeter {
    /**
    * Prints a personalized greeting.
    * @param name The user to welcome.
    */
    greet(resolve Console console, string name) uses Console.write
}

Compiled specification ​

Interactions and sequences

Greeter · class · source ​

Welcomes a user through the configured logger. It implements IGreeter. The logger dependency is injected as Logger and stored read-only (the application logger, injected when resolved).

Greeter.greet · source ​

Prints a personalized greeting. It takes name as a string. It gets console (Console) from dependency injection. It can call Console.write.

It passes the text Hello, {name}! to logger.log, using injected console. source

Checked interface
text
greet(resolve Console console, string name) returns void uses Console.write

It takes name as a string (the user to welcome). It gets console (Console) from dependency injection. It can call Console.write.

IGreeter · interface · source ​

IGreeter.greet · source ​

Prints a personalized greeting. It takes name as a string (the user to welcome). It gets console (Console) from dependency injection. It can call Console.write.

Dependencies ​

It uses Console (write) from august.io. It uses Logger (log) from logging.

Last updated:

The world runs on language