【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安装测试环境还是不错的.本系列文 ...
随机推荐
- 框架,公共模块,unified思想
最近两周一直在加班加点refactor代码,贡献了2014年最后一个周末和2015年元旦三天假期,终于赶在了sprint结束之前完成. 可见,这个sprint做的并不理想! 项目逻辑本身并不复杂,从数 ...
- Swift-01 UIWebView加载网页
UIWebView在swift里面的语法,和OC不太一样,但是,使用方法什么的,都是从OC演变过来的.比如,都得有init方法,都有loadRequest方法,所以,有了OC这个基础,学习swift是 ...
- Selenium2学习-034-WebUI自动化实战实例-032-获取页面 body 大小
获取 body 元素大小的方法,非常简单,直接上码,敬请参阅! /** * Get body size * * @author Aaron.ffp * @version V1.0.0: autoSel ...
- sell -- 解码16进制unicode
1. //System.out.println("decodeUnicode:" + decodeUnicode("0049"));//I public sta ...
- Jackson:fasterxml和codehaus的区别
Jackson fasterxml和codehaus的区别: 它们是jackson的两个分支.也是两个版本的不同包名.jackson从2.0开始改用新的包名fasterxml:1.x版本的包名是cod ...
- 监控mysql主从同步状态脚本
监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...
- zabbix配置发送报警邮件
配置邮件分为两种情况: 第一种:使用远端邮件服务器发送报警邮件 Linux系统版本:CentOS6.5-64 下载mailx: http://nchc.dl.sourceforge.net/proje ...
- Tomcat启动时自动加载一个类
有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...
- 互联网4.0时代需要商业智能BI
当今大数据互联网时代飞速发展,德国提出了工业化4.0, 美国提出了产业互联网,而中国提出了两化深度融合战略.越来越多的企业家开始安耐不住了,开始担心自己的企业是否跟的上时代的变化,是否使用了商业智能B ...
- 在windows下使用cmd命令行对java文件进行编译和执行
windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量 相关配置链接:java基础学习总结—— ...