• 【sinatra】安装测试


    $ gem install sinatra
    
    1. 测试:
    $ 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规则的自动测试。

            安装很简单。

    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之外的地方。

    使用“重载”解决“每次重启的麻烦”


    $ gem install sinatra-contrib
            然后,在“require ‘sinatra/base’”的正后方加入:
    1
    require 'sinatra/reloader'
            最后,只需要通过register来声明使用重载(用Thin作服务器不能很好地运行,所以一并设定在WEBrick上)。
    1
    2
    3
    4
    5
    6
    7
    class App < Sinatra::Base
      enable :inline_templates
      enable :logging
      set :server, "webrick"
      register Sinatra::Reloader
      #...
    end
            想设定为只在development环境中有效也很简单。
    1
    2
    3
    4
    configure :development do
      register Sinatra::Reloader
      set :server, "webrick"
    end
            这样,就能在运行着Sinatra进程的终端,进行设计变更、逻辑变更等各种修改(追加gem等的情况是需要重启的,这个请注意)。
  • 相关阅读:
    Delphi字符串函数大全
    Jackson 工具类使用及配置指南
    Mybatis中javaType和jdbcType对应关系
    Mybatis SqlSessionTemplate 源码解析
    GridView 使用技巧【转】
    Spring JSR250注解
    表格文字不换行
    Sql 分页
    从GridView生成DataTable
    故障诊断:解惑IIS服务器无法添加映射之谜
  • 原文地址:https://www.cnblogs.com/lizunicon/p/3536365.html
Copyright © 2020-2023  润新知