soveran / cuba

Rum based microframework for web development.
http://cuba.is
MIT License
1.44k stars 249 forks source link

Support for generators via CLI #24

Closed aniketpant closed 11 years ago

aniketpant commented 11 years ago

Rails has a great CLI interface for starting off new applications and it also has support for generating controllers, models, views and schemas.

Is something like this already in plan for Cuba? I understand that it is planned for a micro-framework and it does a good job with that but something like a cuba new my-new-app would be a great addition.

List of new commands -

If a feature of this sort is welcome, I would love to work on it.

soveran commented 11 years ago

Hey @aniketpant,

I use a code generator called gn and a template I made. You can try it like this:

$ gem install gn

$ gn -i https://github.com/soveran/app

$ gn app

Then you'll have to follow the online instructions.

You can check how gn works, it's very simple and generic. I use it for other types of projects too, like new directed graphs, etc.

totallymike commented 11 years ago

Given the nature of Cuba, I would advise against such a feature.

This is a classic example of the difference between a fully-featured framework and a micro-framework. Rails is built with all sorts of assumptions as to how your program is going to look. Rails wants to make it really easy for you to follow the Golden Path towards building an MVC-style application; and if you're using Rails, chances are that's what you want.

A micro-framework such as Cuba or Sinatra, is designed to make as few assumptions as possible about how you want to build your app, and this is where my hesitation towards adding generators to Cuba comes in--you and I would very likely have different needs and a generic template may not serve those needs.

If you find yourself starting a lot of Cuba apps I suggest you use a project generator like https://github.com/ruby-ore/ore and build a template that serves your needs--or use @soveran's template ;)

aniketpant commented 11 years ago

@soveran gn looks like a great tool and I think that it will be a great addition to my app. I was about to ask you about integrating gn with Cuba but then I feel that @totallymike has given a very valid point over here.

It's a micro-framework afterall and it should be free from all the assumptions a big framework comes with. I have had my tough time with following conventions with RoR and I think that it's good when you need agile development. In other cases, Cuba/Sinatra are better choices.

I think this issue is ready for closing.