Ruby on Rails App vs Core Development - ruby-on-rails

I have been doing some searching with ruby on rails but there is one thing I don't quite understand reading about it? What exactly is the difference between app and core development? Is core development improving upon rails while apps are for website creation? Any explanation on the difference would be useful. Thank you!

Yes. :)
If you're seeing "Rails Core" or "Rails Core Contributor" or the like, that's referring to development of Rails itself.
Rails apps are for app/site creation, as you stated.
(Though if you are in the app-building business, it is both useful and educational to pay attention to development of the framework itself.)

You hit it right on the head there. Contributing to "rails core" means that you're adding on to the rails gem itself (https://github.com/rails/rails). Rails app development means that you've simply used rails to develop your own applications (e.g. rails new myapp and so on).

Core development is for the development of rails itself, as stated above. I am looking to setup a Rails application development environment. I am looking for a vagrant box for a good virtual machine environment. I found one here; however, it describes that the "VM is not designed for Rails application development, only Rails core development." This distinction is important to know.

Related

How to maintain Standard Rails Application

I already have experience with Rails development process but i still have confusion about to maintain standard development of Rails Application, mean how to maintain standard of assets, views format etc.. can anyone explain about standard rails application repo
Read this rails style guide.
You will get a better picture about folder structure and standards about Rails.

Is it possible to buld a CLI app using Ruby on Rails?

I'm new to Ruby and I'm looking to write a CLI app. My app is not suited for a web app. I'm running Ruby 2.2.2 on OSX and Ubuntu.
Can I use Rails to build an app that is strictly interacting via the CLI (not via HTTP)?
Yes, you can definitely use a Rails app. That's the short answer.
As Controllers and Views are likely unneeded in a CLI application, a large chunk of the Rails framework will be obviated entirely. But Rails models, ActiveRecord, Arel and the database management aspects are really powerful. How nice it would be to just leverage those.
SHOULD you? Outside the scope of your question and highly dependent on your requirements & personal preference, which I'm not privy to, of course.

Setting up Rhodes environment with Ruby on Rails already installed

I am learning and have already set up a Ruby on Rails environment based on Hartl's book. I would also like to set up a Rhodes environment for mobile app development.
How would I set up Rhodes after having set up Ruby on Rails, without messing up my Ruby on Rails environment? Also, will I still need RhoSync if I have SQLite3 (or MySQL) with WEBrick (or Apache)?
I am running Ubuntu 11.04 (I will use RhoHub for the compiles)
NOTE: I have found these instructions on the Ubuntu Forum but they are not exactly what I'm looking for, as I am using ruby with RVM
Any help would be greatly appreciated.
After much searching and reading the Rhomobile book that was just released, if you have a Ruby on Rails environment, all you need to do is:
install the "Rhodes" gem
install the "Rhosync" gem
the SDK of the phone you wish to develop for (this also depends on your dev machine)
RhoSync is a server on the phone which talks to whatever backend you need, whether it is your own server/DB or another like Heroku (the book gives a Heroku example). This means your DB and Server are not an issue.
A friendly note to all, I am a beginner so I could stand under correction. I only answered with my findings as not many people had answered this questions, so I assumed not many people knew the answer.
Hope this helps other beginners, and feel free to correct my findings if it's needed.

When Rails require mod_rails, what about Django, TurboGears, Symfony, CakePHP? Can they deploy using mod_python and mod_php?

When Rails applications seem hard to deploy (or used to be), what about Django, TurboGears, Symfony, CakePHP -- can they be simply deployed using mod_python or mod_php? Actually, won't it need something like a mod_django so that the code can run in a "Django" environment? (Just like Rails' script/console or Rails 3's rails console)
Django applications can certainly be deployed with minimum fuss using mod_python.
That said, experienced people will tell you to use the more lightweight and efficient mod_wsgi instead of mod_python. This too can be done with minimum effort. I have done it on multiple occasions and app deployment was always the least of my worries.
Update
#Rebus has it right:
mod_python is not being actively developed anymore, use mod_wsgi
There are a number of ways to deploy a Django site. See the Django Docs or the Django book. As mentioned mod_python is dead and mod_wsgi is the recommended method. Another method which has been making more noise lately is gunicorn. You can see Eric Holscher's blog post about how easy the deployment can be with it.
For CakePHP if you have a standard PHP installation, you probably, at most, only need to load mod_rewrite. This module is often included in the build, though.

Options for distribution of an offline Ruby on Rails application

I am developing an application in using Ruby on Rails, mostly as an excuse to learn the language.
This is not intended to be a web-based application - and perhaps I have chosen the wrong language, but...
My understanding is, that in order to run an instance of this application on somebody else's computer, they would need to install ruby on rails, and a webserver (or webrick, perhaps), as well as my application code.
I am just curious if there are any other options for distributing my application as a standalone app, or perhaps just a simple way to package up a web browser and ROR together with my app for a simple, one-step install?
I have personally never needed to do this. But, I have ran across this tutorial http://www.erikveen.dds.nl/distributingrubyapplications/rails.html that I think will be helpful. The tutorial covers how to actually convert a rails app into a standalone exe file.
Note, Slingshot appears to be a dead project (see comments). I'll leave this answer here for historical purposes and the off-chance that it comes back
Joyent's Slingshot might be a good bet.
Joyent Slingshot allows developers to deploy Rails applications like a standard desktop application, which work online and offline (with synchronization), have drag and drop, and interact with all the other desktop applications.
With Joyent Slingshot:
Create a hybrid Web/desktop application
Synchronize online and offline data
Use the same code for online and offline application(s)
Deploy and update your application easily
Drag into and out of application
Here are some further links to help with your evaluation and/or to help you get started:
Introducing Joyent Slingshot
Basic application walkthrough
Slingshot wiki
The way most people ship ruby programs, including Rails webapps, as a standalone exe is via rubyscript2exe. They describe how to package a Rails application at http://www.erikveen.dds.nl/distributingrubyapplications/rails.html. Ruby, Rails, and all the associated libraries will be included in the EXE file.
As others mentioned, Ruby is not necessarily Rails and if you really want an easy way to write a distributable GUI application in Ruby, Shoes is an excellent place to start looking.
Gears on Rails maybe?
You could always consider compiling your Ruby to JVM byte-code (via JRuby) or .NET byte-code (via IronRuby) to distribute to people who have those virtual machines and don't want to install a Ruby runtime.
You might want to check out Shoes for building desktop applications in Ruby. Rails really is tuned for building websites.
You can include Ruby on Rails by freezing it to the version of Rails you want to use in your project. They call this Freezing. The user will not have to install Rails to use your application. You can do this with any library you use in your project. If the project uses a library, just place it under the Vendor folder in your project. Then use a tool similar to what #Josh answered with to package it.
You will need a web server to run the project though. There is no way around this. Ruby on Rails is just like ASP.NET in this regard, in that it is a server side framework. The server runs the code and outputs the HTML to the browser by using the Rails framework.
Unfortunately, you may have picked the wrong framework to do what you want. Instead of Ruby on Rails, you may want to check out Shoes, which is a framework for developing GUI applications using Ruby.
You do not specifically say whether it is supposed to be a GUI application or not. From the other answers, I would guess so.
Therefore, you need to clarify what your goals are. RoR is a specialized framework for web applications. If your goal is to learn RoR, I'd say to get yourself some inexpensive web hosting and make yourself an app. If your goal is to learn Ruby, not necessarily Rails, then Shoes, IronRuby, JRuby, MacRuby and others may be good options to look at.

Resources