platform/lib/src/commands/service_generators/rethink.dart
2017-03-09 22:39:24 -05:00

31 lines
1 KiB
Dart

import 'generator.dart';
import 'package:code_builder/code_builder.dart';
import 'package:inflection/inflection.dart';
class RethinkServiceGenerator extends ServiceGenerator {
const RethinkServiceGenerator() : super('RethinkDB');
@override
void applyToConfigureServer(
MethodBuilder configureServer, String name, String lower) {
configureServer
..addPositional(parameter('connection', [new TypeBuilder('Connection')]))
..addPositional(parameter('r', [new TypeBuilder('Rethinkdb')]));
}
@override
void applyToLibrary(LibraryBuilder library, String name, String lower) {
library.addMembers([
'package:angel_rethink/angel_rethink.dart',
'package:rethinkdb_driver2/rethinkdb_driver2.dart'
].map((str) => new ImportBuilder(str)));
}
@override
ExpressionBuilder createInstance(
MethodBuilder methodBuilder, String name, String lower) {
return new TypeBuilder('RethinkService').newInstance([
reference('r').invoke('table', [literal(pluralize(lower))])
]);
}
}