Add array completion example

This commit is contained in:
Mike Bierlee 2015-07-04 14:32:08 +02:00
parent e2b093785b
commit 9d5b4e97a7
3 changed files with 76 additions and 15 deletions

32
.gitignore vendored
View file

@ -1,16 +1,18 @@
/poodinis.exe
/poodinis.lib
/poodinis.obj
/quickstartExample.exe
/qualifiersExample.exe
/.settings
/.dub
/dub.selections.json
/docs
/__dummy.html
/docs.json
/poodinis
/libpoodinis.a
/.buildpath
/quickstartExample
/poodinis.exe
/poodinis.lib
/poodinis.obj
/quickstartExample.exe
/qualifiersExample.exe
/arrayCompletionExample.exe
/.settings
/.dub
/dub.selections.json
/docs
/__dummy.html
/docs.json
/poodinis
/libpoodinis.a
/.buildpath
/quickstartExample
/qualifiersExample
/arrayCompletionExample

View file

@ -54,6 +54,18 @@
"importPaths": [
"source"
]
},
{
"name" : "arrayCompletionExample",
"description" : "Example where an array is autowired with all registered instances.",
"targetType": "executable",
"targetName": "arrayCompletionExample",
"sourcePaths": [
"example/arraycompletion"
],
"importPaths": [
"source"
]
}
]
}

View file

@ -0,0 +1,47 @@
import poodinis;
import std.stdio;
interface Pie {
public void eat();
}
class BlueBerryPie : Pie {
public override void eat() {
writeln("Nom nom nom. I like this one!");
}
}
class ApplePie : Pie {
public override void eat() {
writeln("Nom nom nom. These aren't real apples...");
}
}
class CardboardBoxPie : Pie {
public override void eat() {
writeln("Nom nom nom. This... is not a pie.");
}
}
class PieEater {
@Autowire
public Pie[] pies;
public void eatThemAll() {
foreach(pie ; pies) {
pie.eat();
}
}
}
void main() {
auto dependencies = DependencyContainer.getInstance();
dependencies.register!(Pie, BlueBerryPie);
dependencies.register!(Pie, ApplePie);
dependencies.register!(Pie, CardboardBoxPie);
dependencies.register!(PieEater);
auto eater = dependencies.resolve!PieEater;
eater.eatThemAll();
}