Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
# When we create our Rackup file, we'll already be requiring RubyGems and Sinatra,
# so we don't require them again if they've already been loaded.
require 'rubygems' unless defined? ::RubyGems
require 'sinatra' unless defined? ::Sinatra
require 'rack' # more on the decision to include this below
require 'dm-core'
require 'haml'
require 'ruby-debug'
# If you want changes to your application to appear in development mode without having to
# restart the application, you need something that will reload your app automatically.
# There are solutions out there (like Shotgun) but these are very slow. It's far quicker
# to use this method to reload your app. However, it's not foolproof: sometimes, things
# will get screwy. When that happens, just restart your application manually.
configure :development do
use Rack::Reloader
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/db/bottles.sqlite3")
configure :production do
# Put your production database connection string here.
# This is such a simple application that we likely don't need a separate file for models,
# but it keeps things clean.
require 'models'
# DataMapper's automatic upgrading is not without its issues, which is not that surprising
# given what it attempts to do. Don't rely on it to always do what you expect - use
# auto_migrate! to ensure your database schema is updated correct. HOWEVER, note that
# auto_migrate! will destroy the data in your database, so you should never use it in a
# production environment (this may be a surprise to Rails users). I tend to use auto_migrate!
# as I build the app and make major db changes, but once I have things pretty stable
# I switch to auto_upgrade!.
# DataMapper.auto_migrate!
get '/' do
haml :index
helpers do
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment