【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安装测试环境还是不错的.本系列文 ...
随机推荐
- JS:checkFrom对输入框和文本框的判断总结
天看了老东家的一个专题页面,发现里边的checkFrome.js收集了很多对文本框的判断,非常有用收藏一下.其中包含了:1.页面截取字符串2.文本框最大长度限制3.判断必须是数字和字母的组合4.判断是 ...
- sublime text2 操作及插件
sublime text2 1. 文件快速导航: 这是sublime上面很好用的功能之一,ctrl+p可以调出窗口,菜单上的解释是gotoanythings ,确实如其所言,调出窗口后,直接输入关键字 ...
- Quartz的配置文件quartz.properties详解
配置 quartz.properties 文件 文件 quartz.properties 定义了 Quartz 应用运行时行为,还包含了许多能控制 Quartz 运转的属性.这个文件应该放在class ...
- 使用Aspose.Cell控件实现多个Excel文件的合并
之前有写过多篇关于使用Apose.Cell控件制作自定义模板报表和通用的导出Excel表格数据的操作,对这个控件的功能还是比较满意,而且也比较便利.忽然有一天,一个朋友说:你已经有生成基于自定义模板报 ...
- Nested transactions in stored procedure of SQLServer
question: if the nested transaction encountered an exception, then rollbacked. How about the outer t ...
- C语言课本实例
1. 将一维数组的内容倒顺 #include <stdio.h>void func(int *s,int n){ int i,temp; for(i=0;i<n/2;i++) { t ...
- JavaScript:表单验证模型
之前做的验证提示以弹框的形式出现太丑陋了,不符合标准的验证提示.如果要想进行更好的数据验证操作,那么必须进行一些模块化设计,通过表单样式的改变来提示.其实,一般的数据验证无非就是那么几种,例如: 大多 ...
- 安装好mysql后允许远程连接
安装好mysql后允许远程连接 http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html http://blog.csdn.net/zxyvb/arti ...
- windows系统下利用MySql命令行进入MySql数据库
Enter password: ****
- oracle恢复备份数据
sqlplus链接数据库: 1.sqlplus 用户名/密码@IP地址/数据库名称 2.sqlplus 用户名/密码@数据库名称 注:第二种方法要在tnsnames.oRA文件中配置数据库名称 链接断 ...