Как я могу хранить определенные пользователем данные в хэше - PullRequest
0 голосов
/ 18 ноября 2011

Помогите, я нуб, просто нужен совет по этому куску кода. У меня большая часть моей программы работает, в этой части я ошеломлен, я хочу получить имя и пароль. Затем сделайте имя ключом, а пароль - значением. Теперь он должен быть определен пользователем. Тогда я должен снова получить эту хэш-информацию. Я думал, что возврат будет работать ... вот мой код

  def login_prompt
  vault = {}
     puts "WELCOME! please enter an existing username: "
     username = gets.chomp
     checkname = Noxread.new
     comparename = checkname.read_file
     comparename.keys.include?("#{username}") 
     if comparename == true
       puts "please enter your password: "
       password = gets.chomp
       vault[username]= password
       else puts "username already exists!! would you like to retry? (y/n)"
       case answer
     when /^y/
         login_prompt
     when /^n/
     exit
       end
     end
 end

так, чтобы собирать информацию. и это мой код для слияния этого и хеш, который я извлек из файла. в классе NoxRead

require_relative 'read' требуется 'CSV'

 class Noxwrite
  attr_accessor :name :password  

  def initialize  
    @name = name 
    @password = password
  end

  def upsum

    x = Noxread.new
    y = x.read_file
    z = login_prompt
    y.merge(z) {|name, password| name + ',' + password}
    return y

   end

    def write_file

    ehash = upsum
    CSV.open("data.csv", "wb") do |csv|
    csv << ehash
    end

  end

end

1 Ответ

0 голосов
/ 18 ноября 2011

В чем проблема с этим кодом. Кажется, хорошо, за исключением того факта, что пароли не должны читаться как это в открытом тексте.

Когда вы пишете что-то вроде

user_hash = login_prompt

user_hash будет иметь желаемый хеш

{"username"=>"password"}

...