Sha256: 33ff5084abff27ea270cc4c905745ee72616284a9ba3975a01847b2b8b678c28
Contents?: true
Size: 1.87 KB
Versions: 2
Compression:
Stored size: 1.87 KB
Contents
module IronWorkerNG module Feature module Ruby module MergeGem def self.merge_binary? @merge_binary ||= false end def self.merge_binary=(merge_binary) @merge_binary = merge_binary end class Feature < IronWorkerNG::Feature::Base attr_reader :spec def initialize(code, spec) super(code) @spec = spec end def gem_path path = @spec.full_gem_path # bundler fix ['/gems/' + @spec.full_name, '/gems'].each do |bad_part| path.gsub!(bad_part + bad_part, bad_part) end path end def bundle(container) if not @code.full_remote_build if @spec.extensions.length == 0 || IronWorkerNG::Feature::Ruby::MergeGem.merge_binary? IronCore::Logger.debug 'IronWorkerNG', "Bundling ruby gem with name='#{@spec.name}' and version='#{@spec.version}'" if File.exists?(@spec.full_gem_path) container_add(container, '__gems__/gems/' + @spec.full_name, gem_path) else from_dir = File.dirname(@spec.loaded_from) @spec.files.each do |fname| container_add(container, '__gems__/gems/' + @spec.full_name + '/' + fname, from_dir + '/' + fname) if File.file?(from_dir + '/' + fname) end end container_add(container, "__gems__/specifications/#{@spec.full_name}.gemspec", @spec.loaded_from) else IronCore::Logger.warn 'IronWorkerNG', "Skipping ruby gem with name='#{@spec.name}' and version='#{@spec.version}' as it contains native extensions, switching to full remote build should fix this" end end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
iron_worker_ng-0.12.1 | lib/iron_worker_ng/feature/ruby/merge_gem.rb |
iron_worker_ng-0.12.0 | lib/iron_worker_ng/feature/ruby/merge_gem.rb |