为Web服务器提供mruby和Rack-based API支持的Web框架:mruby-hibari
                 jopen
                 10年前
            
                    针对Web服务器的Web应用程序框架,提供mruby和基于Rack的API支持。
mruby-hibari 当前支持以下服务器:
Synopsis
Write once, run the same on any servers above.
OOP Style
class MyApp < Hibari::App    def build      res.code = 200      res.headers["content-type"] = "text/html; charset=utf8"      res.body.push("Hello, World!")      req.params.each do |k,v|        res.body.push("#{k}: #{v}")      end    end  end    MyApp.new.runDSL Style
hibari do    res.code = 200    res.headers["content-type"] = "text/html; charset=utf8"    res.body.push("Hello, World!")    req.params.each do |k,v|      res.body.push("#{k}: #{v}")    end  endHow to Setup
ngx_mruby, mod_mruby
- Add dependency on mruby-hibari into the build_config.rb in your mruby installation.
- Write mruby handler like above.
h2o
- git cloneat h2o/deps to embed mruby-hibari:cd h2o/deps && git clone https://github.com/kentaro/mruby-hibari
- Write mruby handler like above.
API
Hibari::Request
env()=>Hash
Read-only accessor toENVpassed from Web server.
uri()=>URI
Builds URI and returns it asURIobject.
params()=>Hash
Parses query string and returns it asHashobject.
(This method currently does nothing about decoding or other; it just splits the query string with&and=)
request_method()=>String
script_name()=>String
path_info()=>String
request_uri()=>String
query_string()=>String
server_name()=>String
server_addr()=>String
remote_addr()=>String
remote_port()=>String
scheme()=>String
engine_name()=>String
Shortcuts toenv[XXX].
Hibari::Response
code()=>Int
code=(Int)=> ()
Accessor to HTTP response code.
headers()=>Hash
headers=(Hash)=> ()
Accessor to HTTP response headers.
body()=>Array
body=(Array)=> ()
Accessor to HTTP response body.
to_rack()=>Array
Returns an array that follows Rack's spec.