2013-02-08 2 views
-1

У меня есть файл с разделителями табуляции, называемый text.txt. следующим образом.Chef and ruby ​​Как загрузить текстовый файл в хэш

a\tb 
c\td 

Я, шеф-повар, мне нужно загрузить этот файл в хэш, называемый myhash.

Как это сделать?

+0

Ничего. Я не знаю, как открыть файл в рубине, как я могу в python. Я использую шеф-повар, но я разработчик python. – Tampa

+0

Ruby. Документация по файлам: http://ruby-doc.org/core-1.9.3/File.html – Huluk

+0

http://stackoverflow.com/questions/14730833/how-i- Кэн-capture-значения-в-командной строки и добавления к рецепту –

ответ

0

Я не знаю о шеф-поваре, но вот чисто рубиновый раствор. Может быть, это помогает:

file = File.open('test.txt', 'r') 
lines = file.readlines 
file.close 
myhash = Hash.new 
lines.each do |line| 
    line.chomp! 
    key, value = line.split("\t") 
    myhash[key] = value 
end 
0

Вы должны переформатировать файл тест в формате JSON:

{ 
    "a": "b", 
    "c": "d" 
} 

И тогда вы можете запустить chef-client или chef-solo обеспечения этого JSon файла:

chef-solo -j myfile.json 

Вы будете иметь возможность использовать эти данные в качестве атрибутов узлов в таких рецептах:

node[:a] #equals "b" 
node[:c] #equals "d" 
Смежные вопросы