class Falkor::Extract::Gem
Attributes
file_name[R]
Public Class Methods
new(file_name)
click to toggle source
# File lib/falkor/extract/gem.rb, line 6 def initialize(file_name) @file_name = file_name end
Public Instance Methods
extract()
click to toggle source
# File lib/falkor/extract/gem.rb, line 10 def extract ::Gem::Package::FileSource.new(file_name).with_read_io do |io| ::Gem::Package::TarReader.new(io).each do |entry| next if entry.full_name != "data.tar.gz" write_tar_file(entry.read) remove_file break # ignore further entries end end tar_file_name end
Private Instance Methods
remove_file()
click to toggle source
# File lib/falkor/extract/gem.rb, line 41 def remove_file FileUtils.rm file_name end
tar_file_name()
click to toggle source
# File lib/falkor/extract/gem.rb, line 35 def tar_file_name File.join( File.dirname(file_name), File.basename(file_name, ".gem") + ".tar.gz" ) end
write_tar_file(contents)
click to toggle source
# File lib/falkor/extract/gem.rb, line 29 def write_tar_file(contents) File.open(tar_file_name, "wb") do |file| file.write contents end end