class Gem2exe::Builder
Public Class Methods
new(path:nil,gem:nil,version:nil,entrypoint:,out:,cores:nil,cache_dir:nil)
click to toggle source
# File lib/gem2exe/builder.rb, line 5 def initialize(path:nil,gem:nil,version:nil,entrypoint:,out:,cores:nil,cache_dir:nil) @gem = gem @version = version @path = path @entrypoint = entrypoint @out = out @tmpdir = (cache_dir || Dir.mktmpdir) @cores = (cores || self.cores+1) end
Public Instance Methods
build()
click to toggle source
# File lib/gem2exe/builder.rb, line 18 def build FileUtils.mkdir_p File.dirname(@out) cmd = [Gem2exe.rubyc_path] if Gem2exe.platform == "darwin" cmd += ["--openssl-dir", "/usr/local/etc/openssl"] else cmd += ["--openssl-dir", "/etc/ssl"] end if @path cmd += ["--root", @path] elsif @gem cmd += ["--gem", @gem] cmd += ["--gem-version", @version] else raise "path or gem must be given" end cmd += ["-o", @out] cmd += ["-d", @tmpdir] cmd += ["--make-args", "-j#{@cores}"] cmd += [@entrypoint] Runner.run! cmd, output: true end
Protected Instance Methods
cores()
click to toggle source
# File lib/gem2exe/builder.rb, line 48 def cores if Gem2exe.platform == "darwin" Integer(`sysctl -n hw.ncpu`) else Integer(`nproc`) end end