Deploy a Ruby on Rails website - ruby-on-rails-3

i would like to deploy my ruby on rails website. I am using rails 3.2 and ruby 1.9.3, so have the assets pipeline feature. What i would like to know is who offers the most complete hosting package ( or easiest as I am new to rails). I don't mind paying for a package or trying a free one, just as long as its idiot proof :).
Any advice helpful as I would like to get this uploaded for a client

Heroku is pretty much today's standard for deploying Rails app, if you are into paying for it.
I would personally recommend to deploy in your own server if possible. It's much more versatile and not difficult at all. You could also make the procedure more efficient by using a tool like capistrano, which i highly recommend.

Related

How to do integration testing with front-end code and API in separate repositories?

Any strategies for doing this? We have a Rails codebase that is currently fully integrated (same app serves up JS assets as does the back-end heavy lifting), but are thinking of extracting the two out into separate services, each in their own git repository and running on separate servers.
I'm planning on unit/acceptance testing the API with a small ruby HTTP client that will also act as documentation for the API endpoints, and the JS front-end (Brunch.io, Backbone, Chaplin) will have unit/acceptance testing internally as well... but I feel like I should be writing cucumber tests that integrate the two together, right? Where do those cukes live? In which repo?
Appreciate any insight here. Thanks!
In a general sense, if you have code that is for both your server and your client, then the "right" place to keep it depends on which side of your app is more central or "heavier": the client or the server.
That being said, from the way your describe things in your question, it kind of sounds you consider the Rails app "primary". For instance, you mention that you currently have "JS assets" integrated/being served by your "Rails codebase" ... not Rails assets being served by your JS server ;-)
So that answers things on the theoretical level, but I also think it makes sense to put the code in your Rails codebase for a practical reason: Cucumber is a Rails tool, not a JS one. You might use it to test some non-Ruby code, but ultimately it's being run by Ruby.
I don't know for sure, but I suspect you'll create headaches for yourself if you try and put your Cucumber specs in your JS codebase, then try to run them from your Rails codebase. Plus, that really tightly couples the two codebases: to run your tests you need both codebases on your testrunner vs. if you keep the Cucumber stuff in Rails-land your test runner could just have your Rails code, and it could run against a different server that has your JS code.
So ultimately it sounds to me like the Cucumber stuff belongs in Rails-land ... but going the other way (and storing it with your JS repo) doesn't seem horrible to me either, just potentially more problematic.

Are there any full-featured tutorials or examples for faye on rails?

I have worked with faye on node before, but now want to add it to a rails app. I've found plenty of quick integration guides and have it up and running, but my current implementation is pretty hacky. I've been unable to find any longer tutorials or examples including a good convention for the server to subscribe to the faye channels, interact with the rails models, and publish responses. Does anyone know of good resources?
The below links can be useful for you,
http://railscasts.com/episodes/260-messaging-with-faye?view=asciicast
First one exhibits the simple instant message application in Rails with the help of faye.
I found the How to Use Faye as a Real-Time Push Server in Rails tutorial to be a good start:
We’re going build a simple chat service. Now, Ryan Bates covered this on Railscast #260, however, we’re going to take a slightly different approach in this tutorial. First, we’ll create a chat service where users enter a public room, and everyone can chat with each other publicly. The second functionality we’ll be adding is private messages. Additionally, we’ll integrate some security to our implementation using Ryan Bate’s private_pub gem.
In about one hour you get a hands-on experience and understanding of Faye, both as a server and as a client. By the end of it you have a very basic chat; and not only that, your chat is also secure via private_pub.
Faye has moved towards rack compatibility, so using a config.ru file and booting with the command rackup is advised (the listen method will not work on the latest version of faye).
Booting Faye with rails isn't encouraged, because FAYE isn't compatible with development middleware in rails, meaning you will always need to run in production mode.
A minimalistic barebones example project was written, which deploys cleanly to heroku as observed live at faye-rails-example.herokuapp.com.

Are there any performance/functionality differences between installing the New Relic RPM as a gem vs. as a Heroku add-on?

I am hosting my Rails 3 application on Heroku and would like to add New Relic monitoring.
I notice that Heroku has an add-on that I suppose sets everything up for you, but I also notice that it doesn't create a "real" New Relic account - instead, it creates a Heroku-specific New Relic account that you can only access through Heroku.
What I am curious about is: are there any differences in ...
Functionality
Mainly, does the Heroku-specific add-on offer any additional Heroku-specific features other than configuring the service for you? It seems to me that, if not, it might be better to use the gem so as to avoid any mysterious Heroku monkey-patching?
Configurability
Does only being able to access the New Relic account via Heroku have any downsides (other than the annoying Heroku header frame taking up the top of every screen)?
Performance
Does the Heroku set-up afford any performance benefits over self-installation of the gem?
Cost
It looks like the Heroku New Relic add-on charges by the dyno. Does this make it more or less expensive overall than a comparable plan directly through New Relic? If it's more expensive, does it have any features that justify the extra cost other than the simplified configuration?
Thanks all!
Functionality
AFAIK it does not add any functionality besides adjusting and viewing through Heroku.
Configurability
This is the biggest upside. Heroku is all about making things easier and with the plugin all you have to do is install it you are ready to go.
Performance
Heroku plugins are essentially heroku-gems that get pulled in somewhere along the line. We would need to research how the plugin was made; obviously if the plugin used something faster than ruby then it would probably be faster than the new-relic gem which is just made of ruby.
Cost
I do not think you are missing anything here. You will end up paying two parties, so whatever Heroku charges that is your extra cost being $0.06 dyno.

Does Juggernaut work on Heroku?

I'm building a Rails app that includes live group chat. I've heard Juggernaut is the best option for this. Does it work on Heroku?
They did have experimental node.js support but it seems to be in closed beta for the timebeing. Expect a release soon.
http://blog.heroku.com/archives/2010/9/20/an_update_on_heroku_node_js_support/
I have minimal sysadmin skills but managed to set up an Ubuntu 10.04 environment with relative ease. http://purebreeze.com/2011/03/adding-realtime-push-updates-to-agileista-using-juggernaut/
The 'easiest' option is probably to use Pusher but probably not as fun or cost effective.
UPDATED
Heroku now fully support node.js
Here's a gist from the juggernaut author showing how he set up juggernaut on Heroku:
https://gist.github.com/1003748
I will also update my blog post shortly to reflect getting up and running.
It's much easier now!

Best desktop platform for CRUD on an online Rails web app?

There are so many choices, i need a win/mac application capable of sending info to a rails app, i already have the rails app working on a server, so i just need basic crud activity via xml.
So what should you work this with , Realbasic, Java, Flex?
Thanks in advance.
If you feel like staying in Ruby then you could check out Monkeybars. I haven't done anything serious in it myself but it seems nice, except that the lack of new information on their site is a little discouraging.