小编Jos*_*osh的帖子

在Grape/Rack :: Mount :: Route中访问已编译的路由

我正在尝试生成由我的Grape :: API(MyApi)子类生成的所有路由的列表.

我可以致电:

MyApi.send(:route_set).instance_variable_get(:@routes)
Run Code Online (Sandbox Code Playgroud)

这给了我一个Rack :: Mount :: Route对象的数组.

Route对象唯一有用的属性是:返回Hash的条件,如下所示:

 :path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,哈希值是用于匹配路径路径的正则表达式.我也可以使用:named_captures从regexp获取所有命名的捕获:

{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}
Run Code Online (Sandbox Code Playgroud)

最终我要做的是生成通过Grape :: API创建的所有路由的列表,它们的完整路径等.在条件下尝试解构正则表达式对我没有意义.是否存在另一种访问/生成Rack :: Mount :: Route的可读路径的方法?

rack ruby-on-rails ruby-1.9 grape-api

9
推荐指数
2
解决办法
6448
查看次数

如何以编程方式创建元组数组?

我认为必须有一种动态的方式来执行以下操作。这里有一个隐含的问题,即如何动态创建原始值数组?请注意:我不需要向量。

let mut positional_frequencies: [[(u16, char); 26]; 5] = [ 
             [(0, 'A'), (0, 'B'), (0, 'C'), (0, 'D'), (0, 'E'),
             (0, 'F'), (0, 'G'), (0, 'H'), (0, 'I'), (0, 'J'),
             (0, 'K'), (0, 'L'), (0, 'M'), (0, 'N'), (0, 'O'),
             (0, 'P'), (0, 'Q'), (0, 'R'), (0, 'S'), (0, 'T'),
             (0, 'U'), (0, 'V'), (0, 'W'), (0, 'X'), (0, 'Y'),
             (0, 'Z')],
             [(0, 'A'), (0, 'B'), (0, 'C'), (0, 'D'), (0, 'E'),
             (0, 'F'), (0, 'G'), (0, 'H'), (0, 'I'), …
Run Code Online (Sandbox Code Playgroud)

rust

-1
推荐指数
1
解决办法
324
查看次数

标签 统计

grape-api ×1

rack ×1

ruby-1.9 ×1

ruby-on-rails ×1

rust ×1