Skip to main content

doido_generators/generators/
resource.rs

1//! `doido generate resource` — a model + RESTful controller + routes, without
2//! views (Rails `rails generate resource`). It is the API-mode scaffold.
3
4use crate::generator::{GeneratedFile, Generator};
5use crate::generators::scaffold::ScaffoldGenerator;
6use doido_core::Result;
7
8pub struct ResourceGenerator;
9
10impl Generator for ResourceGenerator {
11    fn name(&self) -> &str {
12        "resource"
13    }
14
15    fn generate(&self, args: &[&str]) -> Result<Vec<GeneratedFile>> {
16        // A resource is a scaffold without views: reuse the API scaffold.
17        let mut api_args: Vec<&str> = args.to_vec();
18        if !api_args.contains(&"--api") {
19            api_args.push("--api");
20        }
21        ScaffoldGenerator.generate(&api_args)
22    }
23}