platform/lib/src/commands/service_generators/rethink.dart
2017-04-26 09:21:25 -04:00

35 lines
1.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
bool get createsModel => false;
@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('connection'),
reference('r').invoke('table', [literal(pluralize(lower))])
]);
}
}