jbuilder的set!方法重构接口
https://github.com/rails/jbuilder 的set!方法重构接口,
因为grape没法使用 jBuilder 的缓存,所以直接用 Rails 写 API
(1)多个图片
images: {
poster: {
url: "http://r4.ykimg.com/0510000057CD17166714C04FDC0628CE",
md5: "ee63b0a11cb1e39331d5ce11d38fceec"
},
right_top_corner: {
url: "http://r1.ykimg.com/0510000057CEA19C6714C063660BEB44",
md5: "e50d520de494538d4633086d46845a81"
}
},
原来的方法为
json.images do
component.pictures.each do |p|
if p.name == 'poster'
json.poster do
json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
json.md5 p.md5
end
end
if p.name == 'icon'
json.icon do
json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
json.md5 p.md5
end
end
if p.name == 'background'
json.background do
json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
json.md5 p.md5
end
end
end
end
精简后为
json.images do
component.pictures.each do |p|
json.set! p.name do
json.set! :url, "http://r#{rand(4) + 1}.ykimg.com/#{p.url}"
json.set! :md5, p.md5
end
end
end
(2)hints 是一个 hash,遍历 Hash 的文档http://ruby-doc.org/core-2.3.1/Hash.html#method-i-each
hint: {
left: "left",
right: ""
},
精简前
json.hint do
if component.hints.key?("left")
json.left component.hints["left"]
end
if component.hints.key?("center")
json.center component.hints["center"]
end
if component.hints.key?("right")
json.right component.hints["right"]
end
end
精简后
json.hint do
component.hints.each do |key,value|
json.set! key, value
end
end
jbuilder的set!方法重构接口的更多相关文章
- C#属性-索引器-里氏替换-多态-虚方法-抽象-接口-泛型-
1.属性 //属性的2种写法 public class person { private string _name; public string Name { get { return _name; ...
- GoLang之方法与接口
GoLang之方法与接口 Go语言没有沿袭传统面向对象编程中的诸多概念,比如继承.虚函数.构造函数和析构函数.隐藏的this指针等. 方法 Go 语言中同时有函数和方法.方法就是一个包含了接受者的函数 ...
- 使用 highchart 绘制柱状图的通用方法与接口
本文给出使用 highchart 绘制柱状图的通用方法与接口, 只要指定相应的数据结构和配置, 就可以直接拿来使用. 一. 数据结构与基本接口 一般绘制图形, 会涉及到较复杂的数据结构, 比如使 ...
- JAVAEE——Mybatis第一天:入门、jdbc存在的问题、架构介绍、入门程序、Dao的开发方法、接口的动态代理方式、SqlMapConfig.xml文件说明
1. 学习计划 第一天: 1.Mybatis的介绍 2.Mybatis的入门 a) 使用jdbc操作数据库存在的问题 b) Mybatis的架构 c) Mybatis的入门程序 3.Dao的开发方法 ...
- 初识 go 语言:方法,接口及并发
目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...
- Mock Server 实现post方法的接口(三)
Mock Server 实现post方法的接口(三) 1.mock server实现的接口,当request中未设置"method"时,会自动将所有method试一次,所以一定要指 ...
- mock server 实现get方法的接口(二)
mock server 实现get方法的接口(二) 下面是实现查询品牌的接口demo: 1.当response数据量小的时候,可以直接使用json, mock会自动设置headers为applicat ...
- Go 语言中的方法,接口和嵌入类型
https://studygolang.com/articles/1113 概述 在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题: 编译器会 ...
- Go 入门 - 方法和接口
方法和接口 方法的接受者 Go中没有类,取而代之的是在结构体上定义的方法 为了将方法(函数)绑定在某一类结构体上,我们在定义函数(方法)时引入"接受者"的概念. 方法接受者在它自己 ...
随机推荐
- wpf 拖图片到窗体
前台代码:<Window x:Class="拖拽.MainWindow" xmlns="http://schemas.microsoft.com/wi ...
- asp.net xml 增删改操作
user.xml <?xml version="1.0" encoding="utf-8"?> <user> <person> ...
- log4net 记录到数据库和本地文件
1)配置代码 <?xml version="1.0" encoding="utf-8" ?> <configuration> <c ...
- C#------获取最后一个"/"字符后面的所有内容
public ActionResult GetFile(string id) { var path = _db.MailAtchs.Where(p => p.MailID == new Guid ...
- mysql中文坑爹的东西
1.首先pb需要utf8格式,所以由ansi转换成utf8格式才能传输 2.在接收端,需要将utf8转换成ansi才能用 3.在插入数据库之前需要将sql从ansi转换成utf8格式 4.数据库设置字 ...
- 云服务程序在启动的时候执行Powershell脚本
如果在云服务程序启动时候,需要执行Powershell脚本,我们需要将脚本嵌入到程序中,并且编写一个cmd来执行这个脚本,具体如下: 1.编写测试的Powershell脚本:每隔10分钟 检测dns ...
- Flash Decompiler
http://www.sothink.com/product/flash-decompiler-for-mac/ http://blog.sina.com.cn/s/blog_697935ad0100 ...
- setTimeout 导致的浏览器假死
问题 前几天,同事遇到一个浏览器假死的问题.就是浏览器在响应一个请求的时候,就突然不响应时间,进入假死状态,Cup也飙升到100%. 但是这个问题只出现在IE浏览器,chrome和Firefox等 ...
- 菜鸟疑问之新建网站与新建web应用程序区别
学习asp.net一定少不了这困惑:新建网站与新建web应用程序有什么区别? 新建web应用程序 新建网站 呵呵,其实从名字看一个是webApplication,一个是webSite.名字不同罢了? ...
- How to know if file is complete on the server using FTP
This is a very old and well-known problem. There is no way to be absolutely certain a file being wri ...