我想在Rails应用程序中包含有关Rake任务的信息.我们使用YARD作为文档,目前页面lib/tasks/development.rake默认显示为无格式文本.
我可以使用# @markup ruby YARD文档中的 Ruby源代码进行渲染.
但是,这只是内联任何注释,即使它们包含YARD指令# @!method foo.这意味着有关标记DSL的YARD文档似乎不适用.
我错过了什么吗?
如何让YARD识别文件中的代码与文档.rake?
NB我会很高兴一个忽略实际代码并只生成文档副本的解决方案,但文档副本的来源必须是.rake文件本身 - 我不希望文档存在于单独的.markdown文件(或其他任何)中,因为它也是很有可能它失去同步.
更多信息 - yard命令:
我正在使用.yardopts包含以下内容的文件:
--asset graphs 'app/**/*.rb' 'lib/**/*.rb' - README info/*
Run Code Online (Sandbox Code Playgroud)
要让YARD读取Rake任务,我可以'lib/tasks/*.rake' 在连字符后添加(即将Rake文件添加到YARD'文件'列表中),但如上所述,这不能正确处理它们.
根据Benjamin在下面的建议,我尝试'lib/tasks/*.rake' 在连字符之前添加(即将 Rake文件添加到要处理的常规Ruby文件列表中),但这似乎根本不会生成任何内容.
YARD可能会产生一些东西,但不是在预期的位置/我想要的预期文件名,我不太熟悉YARD如何确定某个地方是否有孤立的输出.在YARD生成的搜索中肯定没有任何合适的内容,而且简单find doc | grep rake或find doc | grep basename_of_rake_file不显示任何内容.
我正在尝试调试我正在编写的C++程序,但是当我在LLDB中运行并停止程序时,它只显示汇编程序,而不是原始源代码.例如,崩溃之后我正在尝试调试:
Process 86122 stopped
* thread #13: tid = 0x142181, 0x0000000100006ec1 debug_build`game::update() + 10961, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x0000000100006ec1 debug_build`game::update() + 10961
debug_build`game::update:
-> 0x100006ec1 <+10961>: movq (%rdx), %rdx
0x100006ec4 <+10964>: movq %rax, -0xb28(%rbp)
0x100006ecb <+10971>: movq -0x1130(%rbp), %rax
0x100006ed2 <+10978>: movq 0x8(%rax), %rsi
Run Code Online (Sandbox Code Playgroud)
我正在编译-O0 -g.通过Xcode(我在OSX上)或从命令行运行调试器时,我看到同样的事情.
我还需要做些什么才能让源代码显示在LLDB中?
补充说明
以下是典型构建命令的示例:
clang++ -std=c++1y -stdlib=libc++ -fexceptions -I/usr/local/include -c -O2 -Wall -ferror-limit=5 -g -O0 -ftrapv lib/format.cpp -o format.o
Run Code Online (Sandbox Code Playgroud)
之前-O2是因为那是我正在使用的默认值,但我相信后者-O0会覆盖它,对吧?
我试过的
我用一个简单的'hello world'程序使用相同的构建设置重新创建了这个问题.
经过一些搜索,我试着运行dsymutil main.o …
我想查看HTTParty gem从我的参数构建的完整URL,无论是在提交之前还是之后,都没关系.
我也很乐意从响应对象中抓取这个,但我也看不到这样做的方法.
(背景)
我正在使用HTTParty gem为API构建一个包装器.这是广泛的工作,但偶尔我从远程站点得到一个意外的响应,我想深入了解为什么 - 这是我发送错误的东西?如果是这样,什么?我是否以某种方式违反了请求?查看原始URL对于故障排除很有帮助,但我看不出如何.
例如:
HTTParty.get('http://example.com/resource', query: { foo: 'bar' })
Run Code Online (Sandbox Code Playgroud)
大概产生:
http://example.com/resource?foo=bar
Run Code Online (Sandbox Code Playgroud)
但我怎么检查这个?
在一个例子中我这样做:
HTTParty.get('http://example.com/resource', query: { id_numbers: [1, 2, 3] }
Run Code Online (Sandbox Code Playgroud)
但它没有用.通过实验,我能够产生这样的工作:
HTTParty.get('http://example.com/resource', query: { id_numbers: [1, 2, 3].join(',') }
Run Code Online (Sandbox Code Playgroud)
很明显,HTTParty构成查询字符串的默认方法与API设计者的首选格式不一致.这没关系,但确切地知道需要什么是很尴尬的.
目的:
我想要一个Tumblr博客从Rails应用程序的资产目录中提取CSS.
这意味着我可以使用SASS,Compass和其他全站点CSS来生成样式.
这也意味着如果在低级CSS中更新任何内容,tumblr.css将与常规CSS 一起重新生成cap deploy,并且Tumblr的外观将自动更改.
问题:
Rails 3资产管道为文件名添加了一个哈希,例如:
tumblr-c6ec969ce054623163b9404f6c8330e9.css
因此,Tumblr模板不能包含它,除非我每次更改时手动更新URL.
有没有办法有选择地禁用asset.digest一个文件,或者从SASS显式生成单个CSS文件,而无需通过整个资产管道?或者可能生成自动别名或其他什么?
我收到以下错误:'ComponentManager' does not refer to a value编译从该父类继承的子类时:
template<typename ComponentManager>
class component_collection {
protected:
int n_components;
int n_versions;
int first_blank;
int last_used;
std::vector<std::deque<shared_ptr<entity<ComponentManager>>>> entity_pointers;
public:
component_collection(int n_c, int n_v) :
n_components(n_c),
n_versions(n_v),
first_blank(0),
last_used(0),
entity_pointers(n_v, std::deque<shared_ptr<entity<ComponentManager>>>()) // <-- ERROR HERE
{}
...
};
Run Code Online (Sandbox Code Playgroud)
我很困惑我应该如何在构造函数std::vector中用n_v空std::deques初始化。
子类声明了一个类似vector的deques 并按预期编译/工作(直到我将 s 添加vector<deque>到父类,即):
template<typename ComponentManager>
class test_component_collection : public component_collection<ComponentManager> {
std::vector<std::deque<int>> values;
public:
test_component_collection(int n_c, int n_v) :
component_collection<ComponentManager>(n_c, n_v),
values(n_v, …Run Code Online (Sandbox Code Playgroud) 我目前有一些模板代码,如下所示:
render partial: 'reference', locals: { object: object }
Run Code Online (Sandbox Code Playgroud)
Rails _reference.html.erb在app/views/application/和中寻找局部app/views/controller_name/。
但是,此视图位于独立的控制器中,与object呈现的对象无关,因此不会在对象的view目录中查找app/views/object。我不能使用标准render object语法,而让Rails自动确定局部路径,因为我不想呈现局部路径object/object,而是呈现局部路径object/reference。
我该如何解决?
我在想:
render object语法的方式,但是指定了不同的部分名称;要么一个使用不同方法来查找部分的帮助函数,其用法如下:
render partial: find_partial('reference', object), locals: { object: object }
Run Code Online (Sandbox Code Playgroud)我尝试过的
我试图使用第二种方法:
def find_partial(name, object)
lookup_context.find name, [object.class.model_name.plural, 'application'], true
end
Run Code Online (Sandbox Code Playgroud)
这非常接近我想做的事,即找到正确的部分,application/reference如果没有,则退回通用。但是,它会找到实际的ActionView::Template,并且render期望使用字符串而不是实际的模板对象。也许有一种方法可以获取正确的字符串?还是渲染一个实际的模板?