我正在尝试开发一个新的警察(基于these guidelines),并竭尽全力以获取正确的node pattern。
我希望警察在boost::asio::io_service io_service;
boost::asio::io_service service2;
timer.async_wait(tick);
boost::thread_group threads;
threads.create_thread(boost::bind(&boost::asio::io_service::run, &io_service));
service2.run();
threads.join_all();
被称为而没有提供阻止的情况下注册犯罪。
即X.some_method
是冒犯,但X.some_method
不是冒犯。
我得到了用于识别X.some_method { blah }
的正确模式,即X.some_method
。
但是不确定如何为“未分配块”创建模式吗?
答案 0 :(得分:1)
显然,在已解析的AST中,当给一个节点一个块时,该节点然后表示为该块的第一个孩子。
即
'(send (const nil? :X) :some_method ...'
我们可以使用[92] pry(RuboCop)> node # `X.some_method(something) { do_something }`
=> s(:block,
s(:send,
s(:const, nil, :X), :some_method,
s(:send, nil, :something)),
s(:args),
s(:send, nil, :do_something))
实例进行检查。
这是完整的实现(包括多个方法名称的选项):
Rubocop::AST