Module: Rant::Generators::Win32::RubyCmdWrapper

Defined in:
lib/rant/import/win32/rubycmdwrapper.rb

Class Method Summary collapse

Class Method Details

.rant_gen(rac, ch, args, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rant/import/win32/rubycmdwrapper.rb', line 11

def self.rant_gen(rac, ch, args, &block)
    fl = args.first
    unless args.size == 1 and fl.respond_to? :to_ary
 rac.abort_at(ch,
      "Win32::RubyCmdWrapper takes a list of filenames.")
    end
    if fl.respond_to? :exclude
 fl.exclude "*.cmd"
    end
    fl = fl.to_ary
    cmd_files = fl.map { |f| f.sub_ext "cmd" }
    cmd_files.zip(fl).each { |cmd, bin|
 # the .cmd file does not depend on the bin file
 rac.cx.file cmd do |t|
      open(t.name, "w") { |f|
  i_bin = File.join(::Rant::Env::RUBY_BINDIR,
        File.basename(bin))
  rac.cmd_msg "Writing #{t.name}: #{i_bin}"
                       # TODO: Better use Env::RUBY_EXE?
  f.puts "@#{rac.cx.sys.sp ::Rant::Env::RUBY} #{rac.cx.sys.sp i_bin} %*"
      }
 end
    }
    cmd_files
end