Ruby命令行程序,用于保存和更新用户/首选项

时间:2013-02-26 01:40:55

标签: ruby file parsing command-line stdin

我正在构建一个应用程序,它接受stdin来保存用户及其首选项。我应该将stdin写入文本文件并将用户输入保存在那里吗?

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

让我们说我希望用户输入' -s tommy likes apples '在命令行中,我希望它输出:

tommy likes apples

同一个用户tommy也可以输入' -s tommy like oranges '然后会更新他之前的偏好:

tommy likes oranges

感谢任何帮助/指示,谢谢!

1 个答案:

答案 0 :(得分:0)

如果你做的很简单,我没有看到使用文本文件的问题。替代品很多,没有更多细节,我担心我不能做出好的推荐。

def add_user(input)
  File.open('new_accounts.txt', 'w') {|file| 
      file.write(input) 
  }
  puts input
end

仅供参考:这将使您的文本文件更新。 : - )

编辑:更改了add_user方法。