Class: MRuby::Command::Mrbc

Inherits:
MRuby::Command show all
Defined in:
ext/enterprise_script_service/mruby/lib/mruby/build/command.rb

Constant Summary

Constants inherited from MRuby::Command

NotFoundCommands

Instance Attribute Summary collapse

Attributes inherited from MRuby::Command

#build, #command

Instance Method Summary collapse

Methods inherited from MRuby::Command

#clone, #shellquote

Constructor Details

#initialize(build) ⇒ Mrbc



332
333
334
335
336
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 332

def initialize(build)
  super
  @command = nil
  @compile_options = "-B%{funcname} -o-"
end

Instance Attribute Details

#compile_optionsObject

Returns the value of attribute compile_options.



330
331
332
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 330

def compile_options
  @compile_options
end

Instance Method Details

#run(out, infiles, funcname) ⇒ Object



338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 338

def run(out, infiles, funcname)
  @command ||= @build.mrbcfile
  infiles = [infiles].flatten
  infiles.each do |f|
    _pp "MRBC", f.relative_path, nil, :indent => 2
  end
  cmd = "#{filename @command} #{@compile_options % {:funcname => funcname}} #{filename(infiles).join(' ')}"
  puts cmd if Rake.verbose
  IO.popen(cmd, 'r+') do |io|
    out.puts io.read
  end
  # if mrbc execution fail, drop the file
  if $?.exitstatus != 0
    File.delete(out.path)
    exit(-1)
  end
end