app/greeter.aug
Hello world with dependencies · Source and specification
Files in this project
Code
// 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-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
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
greet(resolve Console console, string name) returns void uses Console.writeIt 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.