我正在構建一個應用程序,它以stdin保存用戶及其偏好。我應該將stdin寫入文本文件並保存用戶輸入嗎?保存和更新用戶/偏好的Ruby命令行程序
commandline.rb
class CommandLine
def initialize(filename)
@file = File.open(filename, 'w')
end
def add_user(input)
@file = File.open('new_accounts.txt', 'r+')
@file.write(input)
puts input
end
def run
puts "Welcome to the Command Line Client!"
command = ''
while command != 'quit'
printf "enter command: "
input = gets.chomp
parts = input.split
command = parts[0]
case command
when 'quit' then puts 'Goodbye!'
when '-a' then add_user(parts[1..-1].join(" "))
else
puts 'Invalid command #{command}, please try again.'
end
end
end
end
a = CommandLine.new('new_accounts.txt')
a.run
比方說,我希望用戶輸入 '-a湯米挺喜歡吃蘋果' 在命令行,我希望它輸出:
tommy likes apples
同一個用戶tommy也可以輸入'-a tommy喜歡橙子',然後更新他以前的首選項:
tommy likes oranges
任何幫助/方向表示讚賞,謝謝!
您是否在尋找閱讀文件的例子? – nattyddubbs 2013-02-26 02:35:21
您可以將信息保存到文本文件,但是,數據如何存儲纔是重要的。不要將其保存爲CSV或每個用戶一行。相反,使用Ruby的YAML或JSON類以更通用的格式寫入數據,這很容易被解析和重用。實際上,我會使用某種數據庫,這樣可以創建/讀取/更新/刪除用戶信息,而不必每次都讀完或覆蓋用戶文件。看看SQLite和[Sequel](http://sequel.rubyforge.org)作爲出發地。 – 2013-02-26 03:15:05