2015-09-17 33 views
-1

我創建了一個散列來讀取MIME類型和擴展名。我有麻煩試圖解析多個條目,這樣JPEG行:如何解析散列中的值?

image/png png 

image/jpeg jpeg jpg jpe 

我的代碼讀取這與MIME類型是關鍵的哈希和擴展的值如下:

def initialize(mime_file_content) 
     @mime_file_content = mime_file_content 
     @hash = Hash.new 
     @mime_file_content.lines.each do |pair| 
     pair.chomp! 
     next if pair.empty? 
     next if pair.include? "#" 
     key,value = pair.split(" ",2) 
     @hash[key] = value 
     end 
end 

的PNG線輸出精細:

key: image/png 
value: png 

將JPEG輸出:

key: image/jpeg 
value: jpeg jpg jpe 

我不知道如何分離多個jpeg擴展名值,以便我可以將它們分配給image/jpeg鍵。我試圖做的第二分裂:

@hash.each_value {|value| value.split(" ")} 

這沒有奏效。有沒有辦法在一行上分割多個值並將它們分配給同一個鍵?

回答

0

使用圖示

key,*value = pair.split(" ") 

生成這樣的散列

{"image/png"=>["png"], "image/jpeg"=>["jpeg", "jpg", "jpe"]} 
+0

工作。謝謝! – Semion

0

務必:

@hash.each {|k, v| @hash[k] = v.split} 

或者更直接,在你的代碼,更改行:

@hash[key] = value 

@hash[key] = value.split