diminish7 / rave

A Google Wave robot client framework for Ruby
http://github.com/diminish7/rave
MIT License
62 stars 8 forks source link

Rearrange rave-created robot directory #2

Closed bil-bas closed 14 years ago

bil-bas commented 14 years ago

Main directory should just be:

bil-bas commented 14 years ago

Did most of this today, but some things I don't know how to move safely. Still, feeling a lot better about the way things are organised now. Please do not merge this into the main branch yet, because I fear bits might be a bit wobbly still, but I'd like you to look at it if you have time.

diminish7 commented 14 years ago

I don't think we need to include a spec folder by default - I don't want to impose a specific test framework on anyone, they ought to be able to use Test::Unit or Cucumber, or whatever.

Also, in the config.yml you have under casey now, you have a "file" option for specifying the robot file - I don't think that's necessary, I think it's fine to impose a convention on that.

Also, I'd like to look into making use of the appengine-jruby gem (http://code.google.com/p/appengine-jruby/), which will give us some of what I think you're trying to achieve with the rakefile.

Last thing is, I like the idea of condensing all the config into one file like you're trying to do. But I'd like to avoid adding an additional config file to the current set of configs. So right now we have appengine-web.xml, warbler.rb, and config.ru. I am pretty certain that we won't be able to get rid of appengine-web.xml, but both warbler and rack should be configurable in code, so we should be able to drop those two files and add their config into config.yml.

diminish7 commented 14 years ago

Sorry, one more thing: can you expand on what you mean by "needs to be more RESTful"?

bil-bas commented 14 years ago

Yes, the next step was to remove the jars, appengine-web.xml, warbler.rb and config.ru from the "rave build" and generate/copy them only when the user does "rave war", using whatever information was stored in the config file. This also has the side-effect of saving us having many versions of the jars in our examples folder, increasing the bloat in the repository. Sorry, I'd forgotten to add those particular steps to this ticket, so you knew where I was going.

Your point about not forcing spec/ makes sense, but I still think we should have a spec/ for our own example bots, since they definitely would benefit from some tests. I'll take that out of the generators, but leave it in the examples themselves. Which reminds me, I still need to commit my bot. Might as well just do it as examples/spooner-test as a temporary measure, since I still haven't added the mechanism whereby I can easily cross-upload bots, which would allow me to give it a more descriptive name not associated with my own name (that is, upload appropriate-casey to spooner-test or vica versa).

OK, regarding the appengine gem, I'll leave that to you to explore. Does make a lot of sense if it works properly at this point in time ;) Hmm. Problem is that this might make my simplifying the whole jar and waring stuff obsolete by the time I get it sorted. Hmm again. I'll try very hard to leave that bit until I've some feedback from you on that and concentrate instead on improving the API side again.

Yeah, happy to hardcode 'robot.rb' if you wish. Not massively attached to that particular system.

Regarding restful, I am as confused about what I particularly meant by that as you are.

diminish7 commented 14 years ago

Mentioned this in an email, but wanted to add it to the task: the appengine-web.xml version and the capabilities.xml version need to be independent, so we need an option for both of those in the config.yml file.

bil-bas commented 14 years ago

Waiting for http://github.com/diminish7/rave/issues#issue/10

diminish7 commented 14 years ago

Was doing some refactoring around warbler, and was able to get rid of the appengine-web.xml and config/warbler.rb config files.

bil-bas commented 14 years ago

Excellent! Since they were the last vestiges of nastiness in that folder, I can close this.