Godmode
,/
,'/
,' /
,' /__,
.'_ ,'
/ ,'
/ ,'
/,'
/'
GoDmoDe: A generator driven development An application generation framework.
Description
You know what's annoying?
gdd make gdd gem gdd relate
Rewriting a user model for the 10th time, using a combination of copy and paste of old projects or just rewriting the code from memory. As developers I'm convinced that we are not doing enough to automate the code that makes up 80% of functionality for modern web apps. From scheduling, to categories, to social links, to images, to location, there are functionality and interactions that come up again, and again, and again, and again. So let's:
write code to write your code!
Have respect for your time, for your client's money, and for your sanity: automate!
With this in mind, I've created an application generator using a constrained set of tools to enable great interoperability between pieces. The goal is to use interactive command line tools to create models with all of their related parts. For example:
mang gen:user
- Models: user, role, user_roles
- Views: Authbox angular.js widget
- Custom devise controllers
- Emails sent through sendgrid
- Admin
mang gen:category
- Subcategory nesting using awesome_nested_tree
- Category management in administration using rails_admin_nestable
- Category breadcrumbs using Zurb Foundation
Follow
- Models: polymorphic Follow model
- Concerns: Followable
- Helpers: follow button
GalleryImage
- Uploaders: carrierwave ImageUploader model
- Models: polymorphic GalleryImage model
- Views
- Form Helper for adding multiple images
- Fluidbox for viewing galleries
- Remote storage on S3 using Fog
- Admin
Address
- Models: polymorphic Address model
- Concerns: Addressable
- Geolocation using Geo
- rails_admin_geo
Layout
- flexbox driven css
Social Buttons
Documentation
The Stack
| Purpose | Gem |
|---|---|
| Framework | rails |
| Database | pg |
| User Auth | devise, cancan |
| Views | angular.js, zurb foundation 5 |
| Controllers | decent_exposure |
| Models | squeel, pacecar |
| Administration | rails_admin |
| Image Manipulation | carrierwave, fog |
| Categories | awesome_nested_set |
| SMTP | Sendgrid |
| Geolocation | geo |
| Testing | rspec |
| Debugging | jazz_hands, better_errors, quiet_assets |
Usage
mang new:project_name
mang init
Will install missing gems
mang scaffold:model_name
Installation
$ gem install mang