Guest User

Untitled

a guest
May 27th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. class User
  4. attr_reader :username, :name, :friends, :sex, :password
  5. attr_writer :username, :name, :friends, :sex, :password
  6.  
  7. def initialize(username, name, friends, sex, password)
  8. @username = username
  9. @name = name
  10. @friends = friends
  11. @sex = sex
  12. @password = password
  13. end
  14.  
  15. def to_out
  16. print("USERNAME #{@username} \nNAME #{@name} \nSEX #{@sex} \nPASSWORD #{@password} \nFRIENDS ")
  17. @friends.each {|key, value| print("#{key}/#{value} ") }
  18. print("\n")
  19. end
  20.  
  21. end
  22.  
  23. $FILE = "database.txt"
  24. class Database
  25.  
  26. def initialize
  27. data = {}
  28. load()
  29. end
  30.  
  31. def [](name)
  32. return data[name]
  33. end
  34.  
  35. def []=(name,user)
  36. data[name] = user
  37. save()
  38. end
  39.  
  40. def users()
  41. data.each {|x| yield x}
  42. end
  43.  
  44. def exists_user?(name)
  45. return data.has_key(name)
  46. end
  47.  
  48. def read_line(database)
  49. File.open(database) do |file|
  50. file.each do |line|
  51. if not line =~ /^#|^\s*$/
  52. yield line
  53. end
  54. end
  55. end
  56. end
  57.  
  58. def split_line(line)
  59. a = []
  60. line.scan(/"[^"]*"|\S+/) do |word|
  61. a << word.gsub(/"/, "")
  62. end
  63. return a
  64. end
  65.  
  66. def load()
  67. username = name = password = sex = nil
  68. friends = {}
  69. read_line($FILE) do |line|
  70. args = split_line(line)
  71. case args[0]
  72. when "USERNAME"
  73. username = args[1]
  74. when "NAME"
  75. name = args[1]
  76. when "SEX"
  77. sex = args[1]
  78. when "PASSWORD"
  79. password = args[1]
  80. when "FRIENDS"
  81. args[1..-1].each do |arg|
  82. k,v = arg.split('/')
  83. friends[k] = v
  84. end
  85. else
  86. user = User.new(username, name, friends, sex, password)
  87. self[username] = user
  88. end
  89. end
  90. end
  91.  
  92. def save()
  93. open($FILE,"w") |f|
  94. data.each do |k,user|
  95. f.puts("USERNAME #{user.username}")
  96. f.puts("NAME #{user.name}")
  97. f.puts("SEX #{user.sex}")
  98. f.puts("PASSWORD #{user.password}")
  99. f.puts("FRIENDS #{user.friends}")
  100. f.puts("END\n");
  101. end
  102. end
  103. end
  104.  
  105. end
  106.  
  107. daisy = User.new("lonelygirl13", "Daisy Duck", {"nopants"=>"dated", "cheeseboy"=>"random"}, "Female", "sailorboy")
  108. test = Database.new()
Add Comment
Please, Sign In to add comment