2016-02-26 2 views
1

У меня есть следующий код: рубиновыйрубин распакуйте - терпит неудачу с неинициализированного постоянной ZIP :: Файл

require 'HTTPClient' 
require 'rubygems' 
require 'zip' 

def self.unzip(data, dest_dir) 
    ::Zip::File.open_buffer(data) do |fzip| 
    fzip.each do |entry| 
    path = File.join(dest_dir, entry.name) 
    puts "here" 
    FileUtils::mkdir_p(File.dirname(path)) 
    fzip.extract(entry, path) unless File.exist?(path) 
    #fzip.close 
    end 
    end 
end 

def self.fetch_from_url(url, dest_dir) 
    response = HTTPClient.get(url, follows_redirect: true) 
    if response.status == 200 
    unzip(response.body, dest_dir) 
    else 
    raise 'Could not fetch files from 3scale' 
    end 
end 


url = 'link/artifactory/zip-release-local/djin/3Sroxy/1.0.5/configuration.zip' 
fetch_from_url(url, "/Users/something/") 

Когда я бегу это в Mac рубин 2.0.0p481 он прекрасно работает и расстегивает папку, но когда я бегу то же самое в CentOS 6.6 в рубин 1.8.7 это терпит неудачу со следующим:

[[email protected] ~]# sudo ruby test/ex.rb 
test/ex.rb:7:in `unzip': uninitialized constant Zip::File (NameError) 
    from test/ex.rb:20:in `fetch_from_url' 
    from test/ex.rb:28 

также, я сделал:

gem install zip 
Successfully installed zip-2.0.2 
1 gem installed 
Installing ri documentation for zip-2.0.2... 
Installing RDoc documentation for zip-2.0.2... 
+0

Вы уже установили комплект? –

+0

@Alif Jamaluddin - Я сделал [root @ ip-10-201-90-206 ~] # gem install zip Успешно установлен zip-2.0.2 Установлен 1 камень Установка документации ri для zip-2.0.2. .. Установка документации по RDoc для zip-2.0.2 ... – Scooby

+0

Вам необходимо использовать gim rubyzip @Scooby – Prashant4224

ответ

4

Как Prashant4224 стат ред, вам необходимо установить

gem install rubyzip 

Вы, кажется, использовать zip Gem ...

0

В Gemfile вам нужно добавить. Все остальное не помогло мне.

gem 'rubyzip', '>= 1.0.0' 
gem 'zip-zip' 
Смежные вопросы