github.com/ashleymcnamara/buffalo@v0.8.0/buffalo/cmd/generate/resource.go (about) 1 package generate 2 3 import ( 4 "errors" 5 6 "github.com/gobuffalo/buffalo/generators/resource" 7 "github.com/gobuffalo/makr" 8 "github.com/markbates/inflect" 9 "github.com/spf13/cobra" 10 ) 11 12 const resourceExamples = `$ buffalo g resource users 13 Generates: 14 15 - actions/users.go 16 - actions/users_test.go 17 - models/user.go 18 - models/user_test.go 19 - migrations/2016020216301234_create_users.up.fizz 20 - migrations/2016020216301234_create_users.down.fizz 21 22 $ buffalo g resource users --skip-migration 23 Generates: 24 25 - actions/users.go 26 - actions/users_test.go 27 - models/user.go 28 - models/user_test.go 29 30 $ buffalo g resource users --skip-model 31 Generates: 32 33 - actions/users.go 34 - actions/users_test.go` 35 36 //SkipResourceMigration allows to generate a resource without the migration. 37 var SkipResourceMigration = false 38 39 //SkipResourceModel allows to generate a resource without the model and Migration. 40 var SkipResourceModel = false 41 42 // ResourceCmd generates a new actions/resource file and a stub test. 43 var ResourceCmd = &cobra.Command{ 44 Use: "resource [name]", 45 Example: resourceExamples, 46 Aliases: []string{"r"}, 47 Short: "Generates a new actions/resource file", 48 RunE: func(cmd *cobra.Command, args []string) error { 49 if len(args) == 0 { 50 return errors.New("you must specify a resource name") 51 } 52 53 name := args[0] 54 data := makr.Data{ 55 "name": name, 56 "singular": inflect.Singularize(name), 57 "plural": inflect.Pluralize(name), 58 "camel": inflect.Camelize(name), 59 "under": inflect.Underscore(name), 60 "downFirstCap": inflect.CamelizeDownFirst(name), 61 "actions": []string{"List", "Show", "New", "Create", "Edit", "Update", "Destroy"}, 62 "args": args, 63 64 // Flags 65 "skipMigration": SkipResourceMigration, 66 "skipModel": SkipResourceModel, 67 } 68 69 g, err := resource.New(data) 70 if err != nil { 71 return err 72 } 73 return g.Run(".", data) 74 }, 75 }