【sinatra】安装测试
$ gem install sinatra
- 测试:
$ subl app.rb
- app.rb内容:
require 'sinatra' get '/' do
"Hello, World!"
end
- 运行服务器:
$ ruby app.rb
在浏览器中输入:localhost:4567,没问题的话就会显示Hello, World!
- 基于类的宏来定义route的写法:
require 'rubygems' #有没有都行,不影响
require 'sinatra/base' class App<Sinatra::Base
get '/' do
"Hello, World!"
end
end
- 使用模板
见过用过的有两种:erb、haml
$ gem install haml #安装haml
#encoding:utf-8
require 'sinatra/base'
require 'haml' class App<Sinatra::Base
enable :inline_templates
get '/' do
@title="Top"
haml "My Way"
end
get '/name/:name' do
@name=params[:name]
@title="Song for #{@name}"
haml "#{@name}'s Way"
end
end App.run! __END__ @@layout
!!!5
%html
%head
%title=@title
%body
%h1=@title
%div=yield
- 导入被称之为“Rack::Rewrite”的、在应用系统内部重写URL的中间件。
当然,用mod_rewrite或Nginx也能做同样的事,但用“Rack::Rewrite”具有在应用系统内部记述rewrite规则的优点。
- 能不依存服务器应用程序中来书写rewrite规则。
这一点,尤其在无法控制服务器应用程序的云环境中,比如部署在heroku时等,非常便利。 - 借助Rack::Test等,能够书写rewrite规则的自动测试。
- 能不依存服务器应用程序中来书写rewrite规则。
安装很简单。
1
|
$ gem install rack-rewrite |
。。。
require 'rack/rewrite'
。。。
# 重写URL到/name/*
use Rack::Rewrite do
rewrite %r{^/song_for/(.*)},'/name/$1'
end
- 通过“use”来使用的中间件,称之为“Rack Middleware”。这些中间件,实际上是遵照Rack的应用框架,也可以同样的使用在Ramaze和Rails等上面。
- 通过“register”来登录的被称为“Sinatra Extensions”模块,不能使用在Sinatra、或者是本次所说明的Sinatra扩张框架Padrino、Sinatra Base之外的地方。
使用“重载”解决“每次重启的麻烦”
然后,在“require ‘sinatra/base’”的正后方加入:
最后,只需要通过register来声明使用重载(用Thin作服务器不能很好地运行,所以一并设定在WEBrick上)。
想设定为只在development环境中有效也很简单。
这样,就能在运行着Sinatra进程的终端,进行设计变更、逻辑变更等各种修改(追加gem等的情况是需要重启的,这个请注意)。 |
【sinatra】安装测试的更多相关文章
- mahout 安装测试
1 下载 在http://archive.apache.org/dist/mahout下载相应版本的mahout 版本,获取官网查看http://mahout.apache.org 相关的信息
- Hbase的安装测试工作
Hbase的安装测试工作: 安装:http://www.cnblogs.com/neverwinter/archive/2013/03/28/2985798.html 测试:http://www.cn ...
- ubuntu下opencv2.4.9安装测试
ubuntu下opencv2.4.9安装测试 whowhoha@outlook.com 一.依赖包安装 1. build-essential 软件包 sudo apt-get install bui ...
- 如何在本地安装测试ECSHOP 转载
如何在本地安装测试ECSHOP 如何在本地(自己的电脑)上先安装ECShop 一.创建PHP环境 1.下载AppServ 因为ECShop在线网上商店系统是用PHP语言开发的,所以,在本地架设网店之前 ...
- 谷歌Cartographer学习(1)-快速安装测试(转载)
转载自谷歌Cartographer学习(1)-快速安装测试 代码放到个人github上,https://github.com/hitcm/ 如下,需要安装3个软件包,ceres solver.cart ...
- ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版
主要参考文档:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 一. 32位版本: coreseek安装需要预装的软件: ap ...
- Centos 7.3 编译 & 安装 & 测试 facebook faiss
许多 AI 系统训练完毕,正式上线时的基本操作往往可以抽象为:在高维向量空间中,给定一个向量,寻找与之最相近的 k 个向量.当向量数目异常巨大时,如何快速地执行这一基本操作,便成为 AI 系统在工程应 ...
- Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)
1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...
- redis3.2.10单实例安装测试
redis3.2.10单实例安装测试 主要是实际使用环境中使用,为了方便快速部署,特意记录如下: # root用户 yum -y install make gcc-c++ cmake bison-de ...
- openstack系列文章(1)devstack安装测试Queens
1.在OpenStack 圈子中,有这么一句名言:”不要让朋友在生产环境中运行DevStack.但是初学者在没有掌握OpenStack CLI的情况下用devstack安装测试环境还是不错的.本系列文 ...
随机推荐
- Anacodna之conda与 virtualenv对比使用教程,创建虚拟环境
conda创建虚拟环境 1.查看包 conda list查看安装了哪些包 conda env list查看有哪些虚拟环境 conda -V查看conda的版本 2.创建虚拟环境,命名为myflaska ...
- Barricade---hdu5889(最短路+网络流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5889 题意:有n个点m条边,每条边的长度相同,我们可以默认为1,构成一个无向图:现在起点为1,终点为n ...
- css3画图之大白(●—●)
把大白送给你~ <!DOCTYPE html> <html> <head> <title>大白</title> <meta http- ...
- C#事务相关
之前在程序中用到事务时,都是在存储过程中创建事务来对数据进行控制,其实在C#中也有事务类. 1.DbTransaction类对数据库访问添加事务,它是对数据库事务操作的基类,继承此类的有: Sys ...
- 给你完美浪漫的七夕,APICloud送你双人电影票!
我一直觉得“幸福的感觉” 就像存款 留着以后用 会幸福感爆棚 于是,我一直习惯于等等,再等等 以为那样就会很幸福 直到有一天,突然发现,在我构想的未来中,总是有你 世界那么大,我只在乎你 世界那么长, ...
- 奥威Power-BI V11——凤凰涅槃,重磅来袭
时隔一年,奥威Power-BI重磅再推新版,在之前V10 WEB可视化前端分析工具基础上,更加注重用户体验这一块.V11站在用户的角度,以用户的视野去设计研发新版本,最终在前端框架的优化.移动设备的体 ...
- WW多线程和锁
问题: WorldWind中是双线程的,一直忽略了多线程中数据共享,修改数据会产生问题.可是在WW中并没有看到锁的东西. 还有就是动态释放内存的问题.因为采用D3D的C#封装库不可避免涉及COM对象的 ...
- .NET中常见对象类型
.NET中六大内置对象:1.Response 2.Request 3.Session 4.Appliction 5.Server 6.Cookie System.Web.HttpCo ...
- 转:DLL教程
首先:DLL技术是针对C的技术,虽然也支持C++,但是对C++的支持不够好.C++对应的是COM技术. 建议首先看一下Programming Windows的21章,虽然没有讲MFC如何制作DLL, ...
- set方法内存分析
// // main.m // 04-set方法的内存管理分析 // // Created by apple on 14-3-17. // // #import <Foundation/F ...