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

Constructor Details

#initialize(build) ⇒ Mrbc

Returns a new instance of Mrbc.



282
283
284
285
286
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 282

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

Instance Attribute Details

#compile_optionsObject

Returns the value of attribute compile_options.



280
281
282
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 280

def compile_options
  @compile_options
end

Instance Method Details

#run(out, infiles, funcname) ⇒ Object



288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'ext/enterprise_script_service/mruby/lib/mruby/build/command.rb', line 288

def run(out, infiles, funcname)
  @command ||= @build.mrbcfile
  infiles = [infiles].flatten
  infiles.each do |f|
    _pp "MRBC", f.relative_path, nil, :indent => 2
  end
  IO.popen("#{filename @command} #{@compile_options % {:funcname => funcname}} #{filename(infiles).join(' ')}", '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