有关如何在Ruby中实现DSL的优秀在线教程是什么?我正在寻找解释整个过程的动手实例.
我知道在关于DSL和Ruby的好书上有这个问题:关于基于Ruby的DSL的好书.
我试图用我的Web应用程序生成一个战争以及一个带有嵌入式jetty的自包含jar文件.对于嵌入式jetty(jar文件分发),我添加一个servlet,如下所示:
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new HelloServlet()),"/*");
server.start();
server.join();
}
Run Code Online (Sandbox Code Playgroud)
war文件分发使用web.xml文件,该文件在web-app部分中包含以下内容:
<servlet>
<servlet-class>com.example.HelloServlet</servlet-class>
<servlet-name>SimplestServer</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
这有效.但是,我想摆脱两种方法之间的重复.即,当我添加一个新的servlet时,我想要只在一个位置配置它.我可以从嵌入式jetty加载和使用web.xml文件吗?
通常,我希望我的功能测试不执行动作缓存.轨道似乎是在我身边,默认为config.action_controller.perform_caching = false在environment/test.rb.这导致正常的功能测试没有测试缓存.
那么我如何在Rails 3中测试缓存.
这个线程中提出的解决方案似乎相当hacky或者对Rails 2: 如何在rails中的功能测试中启用页面缓存?
我想做的事情如下:
test "caching of index method" do
with_caching do
get :index
assert_template 'index'
get :index
assert_template ''
end
end
Run Code Online (Sandbox Code Playgroud)
也许还有更好的方法来测试缓存是否被击中?