adhearsion / virginia

A Reel interface to Adhearsion
MIT License
7 stars 10 forks source link

Virginia Re-Imagined #11

Closed bklang closed 9 years ago

bklang commented 10 years ago

Due to the frustrations with handling each Reel request manually (and the attendant copy/paste code that goes from project to project) I wanted to find a different way to implement Virginia. By using Rack we can layer any web framework on top of Reel that is already running in the Adhearsion process. The README documents how to use this with Sinatra, but it should theoretically be compatbile with any Rack-compatible framework.

Obviously this is backward-incompatible with previous Virginia releases. Feedback requested.

Ping @benlangfeld, @polysics, @JustinAiken, @wdrexler

JustinAiken commented 10 years ago

I've never actually used Reel/Virginia on any of my projects, but that LOOKS a lot better... actually makes HTML seem as appealing as DRB :)

benlangfeld commented 10 years ago

I like this, but I'd like to make it possible to use non-rack frameworks as before if it's not too much effort.

lpradovera commented 10 years ago

I really like this idea, and was not aware it is possible. What's the best course to keep compatibility, try and make it work with or without Rack or just pinning a "1.0" branch and leaving it there?

runningferret commented 9 years ago

Hey guys, I know this branch is pretty old, but we wanted to add some HTTP endpoints to our Phoenix application and were having a lot of trouble with Reel (since the mainline branches version is a bit older and its hard to find good documentation for it). @sfgeorge found this branch and after taking a look, we decided to give it a try, and we LOVE it. Being able to embed essentially a perfect Sinatra app into Phoenix really alleviated a lot of problems we were having and allowed us to extend the app internally with almost no issues, especially since we are relatively versed in Sinatra.

We're currently using it in our development and test environments with no issues, and expect to be going to production with it shortly. I guess this is mostly a big old plus-one to this branch more than anything. If there is anything we can do to help get this in as a fully-released version let me know, I'd like to help if I can find some time to!

bklang commented 9 years ago

@runningferret Thanks for that feedback! My experience has been largely the same: being able to run any Rack framework strongly beats having to handle each request yourself.

I had been thinking of merging this to develop and officially blessing it as Virginia V2, and I'm now thoroughly convinced it's the thing to do. What's left to do is fully document the new interfaces and update any specs. It's been so long, I forget exactly what is left, but I'll take a look.

Thanks again :)

sfgeorge commented 9 years ago

Tagging onto what @runningferret said, this has been immensely helpful. Since its a Sinatra app running within the same process as Adhearsion, it's a breeze to set up endpoints for reading/changing a Loquacious configuration property on the fly. Really handy!

Thanks so much for your work on this. Immensely helpful.

runningferret commented 9 years ago

If its easier to take this branch and make it a new gem that works for me too. I know you guys use semantic versioning so in THEORY nobody is affected, but I know all-too-well the shame of having un-version-locked gems in my Gemfile and getting bitten by a bundle update :smile: Let me know if theres anything helpful I can do, testing/whatever-wise!

lpradovera commented 9 years ago

I am fine with this becoming the new develop. It is a great idea!

bklang commented 9 years ago

@runningferret I'm happy with the documentation and the functionality. There's only one test in the suite, so I'm working on fixing it. When it's fixed I'll merge. Naturally, all contributions are welcome, especially specs and/or bugfixes.

bklang commented 9 years ago

Tests fixed, merge made to develop and master. I've tagged the release as 0.3.0, but don't have access to push to Rubygems. Will get that squared away shortly.

Please do open any PRs or issues as necessary. Thanks for the feedback guys.

runningferret commented 9 years ago

Wonderful, will do!

bklang commented 9 years ago

Virginia 0.3.0 released: http://rubygems.org/gems/virginia

sfgeorge commented 9 years ago

Woohoo! Awesome! =) Thank you so much!

We'd certainly let you know if we had any issues, but it's been a smooth dance partner so far!