grails-profiles/rest-api/commands/generate-views.groovy (39 lines of code) (raw):

import org.grails.cli.interactive.completers.DomainClassCompleter description( "Generates a controller that performs REST operations" ) { usage "grails generate-views [DOMAIN CLASS]" argument name:'Domain Class', description:"The name of the domain class", required:true completer DomainClassCompleter flag name:'force', description:"Whether to overwrite existing files" } if(args) { def classNames = args if(args[0] == '*') { classNames = resources("file:grails-app/domain/**/*.groovy").collect { className(it) } } for(arg in classNames) { def sourceClass = source(arg) boolean overwrite = flag('force') if(sourceClass) { def model = model(sourceClass) render template: template('artifacts/scaffolding/index.gson'), destination: file("grails-app/views/${model.propertyName}/index.gson"), model: model, overwrite: overwrite render template: template('artifacts/scaffolding/show.gson'), destination: file("grails-app/views/${model.propertyName}/show.gson"), model: model, overwrite: overwrite render template: template("artifacts/scaffolding/_domain.gson"), destination: file("grails-app/views/${model.propertyName}/_${model.propertyName}.gson"), model: model, overwrite: overwrite addStatus "Scaffolding completed for ${projectPath(sourceClass)}" } else { error "Domain class not found for name $arg" } } } else { error "No domain class specified" }