精华内容
下载资源
问答
  • rack

    2014-11-06 10:21:26
    #!/usr/bin/python #-*-coding:UTF-8 -*- import sys   rack = {"172.23.155.101":"rack01", if __name__=="__main__":  print "/" + rack.get(sys.argv[1],"rack00")

    #!/usr/bin/python  
    #-*-coding:UTF-8 -*-  
    import sys  
      
    rack = {"172.23.155.101":"rack01",

                }

    if __name__=="__main__":  

        print "/" + rack.get(sys.argv[1],"rack00")
    展开全文
  • Rack

    2016-02-12 16:29:13
    Rack为使用Ruby开发web应用提供了一个最小的模块化和可修改的接口。用可能最简单的方式来包装HTTP请求和响应,它为web 服务器,web框架和中间件的API进行了统一并提纯到了单一的方法调用。
    Rack为使用Ruby开发web应用提供了一个最小的模块化和可修改的接口。用可能最简单的方式来包装HTTP请求和响应,它为web 服务器,web
    框架
    和中间件的API进行了统一并提纯到了单一的方法调用。
    展开全文
  • Rack-CAS是执行客户端身份验证的简单中间件。 特征 基于机架 独立于框架的框架适用于,但不依赖于Rails,Sinatra等。 最小的依赖项当前的gem依赖项是 ,和 。 支持CAS额外属性额外属性虽然一团糟。 因此,请告知...
  • Xapian::机架 Xapian::Rack 提供了一个机架中间件,用于索引本地和外部 HTML 文档。 安装 将此行添加到应用程序的 Gemfile 中: ...results = Xapian::Rack.find(request.env, query, {:options => Xapian::Qu
  • rack-reverse-proxy, rack的反向代理 rack的反向代理:这个 repo 已经移到了 waterlink/rack-reverse-proxy 。
  • Rack :: Authorize是用于授权api访问的Rack中间件。 我们知道有Cancan,它是Ruby on Rails的出色授权库。 但是Cancan的规则是为Ruby Class定义的,当我们创建Web服务时,限制对api端点的访问是一项常见的任务。 这...
  • Rack :: Ratelimit 在单个应用程序中运行多个速率限制器 将每个速率限制范围限制为某些请求:API,文件,GET与POST等。 根据请求特征应用每个速率限制:IP,子域,OAuth2令牌等。 灵活的时间窗口可限制突发流量与...
  • rack简介

    2019-09-24 03:15:44
    什么是rack rack是对ruby的Net::HTTP进行封装了的包,使用rack能够方便的新建一个简单的web应用。 what is rack Rack describes itself as follows: Rack在支持Ruby和Ruby框架的web服务间提供了一个最小接口。 ...

    什么是rack

    rack是对ruby的Net::HTTP进行封装了的包,使用rack能够方便的新建一个简单的web应用。

    what is rack

    Rack describes itself as follows:

    Rack在支持Ruby和Ruby框架的web服务间提供了一个最小接口。

    Rack出现以前,Ruby的web框架都是实现自己的一套接口,导致实现web服务非常的困难,同时不同框架之间也很难共享代码。现在几乎所有的Ruby web框架都实现了Rack,包括Rails和Sinatra,也就是说,现在这些应用都以类似的方式运行。

    Rack核心框架提供了大量的工具让你能够很简单的构建自己的web应用或接口。一行代码就可以实现一个Rack应用,但是我们需要更屌一点。


    rack安装
    Rack的安装很简单:

    gem install rack

    helloword举例

    #config.ru文件内容
    class Helloworld
      def call(env)
        [200, {'Content-Type' => 'text/html'}, ["Hello World!"]]
      end
    end
    run Helloworld.new

    上面的代码和下面的lambda表达式功能是等价的:

    run ->(env) { [200, {"Content-Type" => "text/html"}, ["Hello World!"]] }

    当前路径下执行rackup

    #rackup
    [2016-09-24 10:34:45] INFO  WEBrick 1.3.1
    [2016-09-24 10:34:45] INFO  ruby 1.9.3 (2014-11-13) [x86_64-linux]
    [2016-09-24 10:34:45] INFO  WEBrick::HTTPServer#start: pid=125538 port=9292
    

    浏览器访问http://localhost:9292 或执行curl 127.0.0.1:9292就能看到内容

    # curl  127.0.0.1:9292
    hello world

    Rack是怎么工作的

    Rack有两个简单的要求。第一,你的请求必须有一个call方法响应,这就是为什么lambda或者Proc在这里可以用。call方法需要一个类似hash的参数,参数中包含了请求以及其他的环境参数。call方法返回包含三个元素的数组,[status, header, body]。status是对request的响应状态;header是一个哈希,内容是响应的头部信息;body是响应的消息体,必须是一个可遍历的对象,例如Array或者IO对象。

    使用Rack提供的工具

    Rack提供了大量的工具用于构建Ruby应用,所以我们尝试使用一个小工具,我们来增加些路由。

    class HelloWorld
      def call(env)
        req = Rack::Request.new(env)
        case req.path_info
        when /hello/
          [200, {"Content-Type" => "text/html"}, ["Hello World!"]]
        when /goodbye/  
          [500, {"Content-Type" => "text/html"}, ["Goodbye Cruel World!"]]
        else
          [404, {"Content-Type" => "text/html"}, ["I'm Lost!"]]
        end
      end
    end
    
    run HelloWorld.new

    执行结果:

    # curl  127.0.0.1:9292/hello
    Hello World!
    # 
    # curl  127.0.0.1:9292/goodbye
    Goodbye Cruel World!
    

    首先我们创建了一个Rack::Request对象,并将request中传递过来的env对象提供给Rack::Request对象。然后我们就可以使用path_info属性,根据其值进行我们的路由处理。
    如果此时用浏览器访问http://localhost:9292,就会得到一个404错误页面。

    让我们更屌一点

    虽然上面的方法已经能够提供简单的路由功能,但是太挫,而且case也没法实现我们所有的路由功能。
    我们更进一步,构建一个能够处理GET请求的小框架。
    我们先来看看应用长什么样子,然后再一点点实现我们的框架。

    #当前目录添加到ruby的加载路径中
    $:.unshift File.dirname(__FILE__)
    #require我们后面要实现的框架
    require 'simple_framework0'
    
    route("/hello") do
      "Hello #{params['name'] || "World"}!"
    end
    
    route("/goodbye") do
      status 500
      "Goodbye Cruel World!"
    end
    
    run SimpleFramework.app

    simple_framework0.rb将是我们的框架实现代码,提供了一个route方法,route方法需要一个路径和块作为参数。如果请求能够和path匹配,提供的块将会被执行,块的最后一行代码是返回值,将作为response的body。


    看看我们的SimpleFramework长啥样。

    # 后面将要实现的action,处理具体的请求
    require 'action'
    class SimpleFramework
    
      def self.app
        @app ||= begin
          Rack::Builder.new do
            map "/" do
              run ->(env) {[404, {'Content-Type' => 'text/plain'}, ['Page Not Found!']] }
            end
          end
        end
      end
    
    end
    
    def route(pattern, &block)
      SimpleFramework.app.map(pattern) do
        run Action.new(&block)
      end
    end

    下面是Action的实现。

    class Action
      attr_reader :headers, :body, :request
    
      def initialize(&block)
        @block = block
        @status = 200
        @headers = {"Content-Type" => "text/html"}
        @body = ""
      end
    
      def status(value = nil)
        value ? @status = value : @status
      end
    
      def params
        request.params
      end
    
      def call(env)
        @request = Rack::Request.new(env)
        @body = self.instance_eval(&@block)
        [status, headers, [body]]
      end
    
    end

    整个的代码结构是:

    tree
    .
    ├── action.rb
    ├── config.ru
    └── simple_framework0.rb

    参考文档

    gist:4240848

    转载于:https://www.cnblogs.com/cuimiemie/p/6442646.html

    展开全文
  • gem 'rack-router' 然后执行: $ bundle 或将其自己安装为: $ gem install rack-router 用法 这是一个示例,显示了一个简单的机架应用程序,该应用程序可打印路线参数的值: require 'rack/router' require ...
  • Rack :: SslEnforcer是用于实施SSL连接的简单Rack中间件。 从0.2.0版开始,Rack :: SslEnforcer默认将Cookies标记为安全(必须手动设置HSTS)。 已针对Ruby 1.8.7、1.9.2、1.9.3、2.0.0、2.1.10、2.2.7、2.3.4、...
  • rack-attack, 用于阻塞&节流的rack 中间件 :: 攻击 !rack 中间件,用于阻塞&节流滥用请求。Rack::Attack 是一个 rack 中间件,用来保护你的网络应用程序不受坏客户端的影响。 它允许基于请求的任意属性的...
  • 该gem提供了和dredd rake任务,以使测试方便于Rack应用程序。 在本地验证蓝图时,无需任何人工干预即可自动设置应用程序服务器。 除了方便之外,这还允许将API蓝图用作验收测试套件,例如,在客户端开发人员将用作...
  • 机架-jsonp-中间件 将所有 .jsonp 请求转换为 jsonp 响应的机架中间件。 概述 (不支持“回调”,因为它是一个非常通用的参数名称) 顺便说一句,别忘了试试 (一个纯 JS JSONP 助手),他们是一对... require 'rack
  • Inspur Cloud rack

    2018-11-27 16:29:38
    Inspur 最新Rack服务器介绍,讲述其设计架构,以及行业分析,对更好的理解服务器有新的帮助
  • JACK Rack-开源

    2021-05-09 08:39:04
    JACK Rack是LADSPA效果架,用于JACK低延迟音频API
  • rack-recaptcha, 通过Recaptcha验证验证验证的rack 中间件 机架 recaptcha 在web应用程序中删除这个 rack 中间件,通过Recaptcha启用验证验证。:如何使用配置首先,安装库: [sudo] gem 安装机架 recaptcha你必须在...
  • 该项目包含一个名为RustRack的Ruby模块,该模块完全在Rust中实现,该模块具有符合Rack协议的#call方法。 提供了一个Rackup文件,该文件安装了模块以处理请求。 编译: $ make 这将创建一个垫片Ruby本机扩展(lib ...
  • <div><p>These variables generally come too late to be useful. Removed <code>Rack::Lock which depends on these variables.</p><p>该提问来源于开源项目:rack/rack</p></div>
  • 在任何Rack应用程序中,通过任何ORM,通过URL参数声明式过滤数据。 安装 将rack-reducer添加到您的Gemfile中: gem 'rack-reducer' , require : 'rack/reducer' Rack :: Reducer除了Rack本身之外没有其他依赖项。...
  • 一个Serverless v1.x插件,用于使用Serverless构建部署的Ruby Rack应用程序。 兼容的Rack应用程序框架包括Sinatra,Cuba和Padrino。 产品特点 透明地将API网关和ALB请求与标准机架请求之间进行转换 支持您对Rack的...
  • rack-test-rest是对rack-test的扩展,当与Test::Unit结合使用时,可以简化单元测试正确设计的 RESTful API 的过程。 安装 $ gem install rack-test-rest 用 rack-test-rest使用一组更高级别的方法扩展了rack-test ...
  • 杰克耶尔(Rack-Jekyll) 将您的应用程序转换为应用程序。 您可以使用rackup, ,来运行它。 您可以将Rack-Jekyll与任何经过修改的Jekyll一起运行。 您可以将Rack-Jekyll部署到Heroku,EC2,Rackspace,专用...
  • 该gem扩展了dav4rack以提供CardDAV扩展,CalDAV当前不可用,但最终也将可用。 用法 看一下sample文件夹,这是一个标准的Rack应用程序,应与任何兼容的服务器一起运行。 您可以使用诸如此类的thin运行示例: $ cd ...
  • rack-forwarder-源码

    2021-05-03 02:38:16
    gem "rack-forwarder" 然后执行: $ bundle 或将其自己安装为: $ gem install rack-forwarder 用法 require "rack/forwarder" use Rack :: Forwarder do # Forward /foo/bar to http://localhost:5000/bar ...
  • Cisco L2 L3 IOU Rack V5 (newer version from Cisco L2 L3 IOU Rack V3)-附件资源
  • rack-offline, 用于构建脱机web应用程序的rack 和 Rails 插件 HTML5离线HTML5提供了两种在流行的移动设备( 如iPhone和 Android ) 以及基于 webkit ...用法使用 Rack::Offline 最简单的方法是在 Rails 应用程序中使用 Ra
  • rack-push-notification, 用于管理推送通知的rack 可以挂载web服务 Rack::PushNotification为管理推送通知管理单元为rack安装 webserviceRack::PushNotification 生成可以由iOS应用程序消费的API端点,并为推送通知...
  • 像React.js组件一样, Rack::Component实现一个render方法,该方法接受输入数据并返回要显示的内容。 您可以在任何Rack应用程序中使用“组件”来代替“控制器”,“视图”,“模板”和“助手”。 安装 将rack-...
  • rack-raw-upload, 处理原始文件上传的rack 中间件 警告:你可能不需要这个如果你想使用这个,因为你正在执行HTML5文件上传,你可能正在做的是的"旧路径"。有一个"新建",更好的方式来做这个。 对于你的问题,它可能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,195
精华内容 8,478
关键字:

rack