From: Jim Weirich Date: 2006-08-23T12:01:49+09:00 Subject: Re: [rake] patch to rule nobu@ruby-lang.org wrote: > The latest rake doesn't work with some patterns. Wow, you are really pushing the limits here. Good! > This is a patch to check it and allow file/task name starting > with a dot. Unfortunately, the patch broke several existing unit tests. But I think I got it working the way you want (more or less) without breaking anything. First some commentary: > 1) file name with source extension > rule '.o' => %w[.c Rakefile] do |t| > p "#{t.name} #{t.sources.join(' ')}" > end The current way of adding literal file name to a list of rule dependents is to wrap it in a lambda, e.g. rule '.o' => ['.c', proc{"Rakefile"}] do |t| ... end I added code to handle non-extension file names directly, so now the following will work: rule '.o' => %w[.c Rakefile] do |t| ... end > 2) file name which starts with a dot > file '.foo' > rule '.o' => %w[.c .foo] do |t| > p "#{t.name} #{t.sources.join(' ')}" > end Unfortunately, names beginning with dots are assumed to be file extension patterns. If you really need it, wrap it in a lambda as above, or use something that is obviously not an extension, e.g: rule '.o' => %w[.c ./.foo] do |t| ... end Code to handle the above has been committed. > 3) target name without extension > rule 'foo' => %w[.c] do |t| > p "#{t.name} #{t.sources.join(' ')}" > end If you are not matching a pattern in the rule, why don't you just use a normal task? Nevertheless, this should work with the recently committed code. Does this work for you? -- Jim Weirich