Sinatra 101(一)

Sinatra 101(1)
介绍
Sinatra是由 Blake Mizerany在2007年开发出来的基于Rack之上带有轻量级的HTTP请求方式的领域特定语言(DSL)。其非常简洁而优雅。当你从Rails转移到Sinatra,你会像刚从J2EE转到Rails一样震撼,感谢开发者,它们让Web开发这件事简单而充满乐趣。Sinatra有几大优点:
  • 简单但功能完备,你可以非常轻松的在一个文件里创建一个完整的Web应用。
  • 灵活性,没有项目结构的限制,你可以使用Ruby Gem,Rack或者是其自带的扩展API实现你想要的功能。
  • 轻量级, Sinatra没有各种附带的看似诱人,实则扰人的附加功能,你只项目中的所有代码都是为项目服务的。另外,整个Sinatra的代码也只有一千多行
  • 无模式,无需纠缠于MVC的结构,也没有绑定各种ORM(Active Record, Mongoid等), Javascript框架或者模板系统(haml,erb,slim等)你完全掌控如何最好的实现你的应用。

Hello World
安装Sinatra, “gem install sinatra”
coding….
require 'sinatra'

get '/' do
    "Hello World"
end
done.
运行,“ruby main.rb”, 默认情况下,sinatra会使用4567端口,访问http://localhot:4567

使用ruby命令运行系统时,任何对代码的改动要生效都必须重启, 有一个工具可以帮助我们做这件事:shotgun
gem install shotgun

安装该工具,然后使用
shotgun main.rb

启动程序,这样改动完之后,就不用每次改动都手动重启系统了,shotgun会自动检测,如有改动,自动重启。shotgun的默认端口是9393,因此新的系统需要访问http://localhost:9393

部署到Heroku
1. Heroku采用Git做代码管理,你首先需要把自己的代码置于Git下
git init
git add .
git ci -m "init repository"


2.安装heroku
gem install heroku


3.创建自己的heroku项目,注意heroku对项目的名称有限制,只能使用小写字母,数字和“-”
heroku create [project-name]


4. 添加配置文件congfig.ru,Gemfile config.ru是用来告诉heroku如何启动该程序的,如果你启动的方
ruby main.rb

那么,config.ru里需要如下方式添加:
require './main'
run Sinatra::Application

另外需要添加Gemfile,让heroku知道该项目依赖了哪些库
source 'http://rubygems.org'
gem 'sinatra'

然后运行“bundle install”, 确保Gemfile能够正常工作。

5. 把所有的文件加入Git,然后push所有的文件到heroku
git push heroku master

访问项目的URL,http://[project-name].heroku.com,就可以看到项目的结果了