Class: Users

Inherits:
Object
  • Object
show all
Defined in:
lib/users.rb

Overview

$LOAD_PATH.unshift File.dirname(__FILE__) $LOAD_PATH.unshift File.expand_path(“../lib”, __FILE__)

Instance Method Summary collapse

Constructor Details

#initializeUsers

FILENAME=“data/sample.txt”



8
9
10
11
12
13
14
# File 'lib/users.rb', line 8

def initialize 
  lines = File.open(UFILE, 'r').readlines
  @entries = lines[0..-1]
  @usrs = @entries.collect do |line|
    entry_to_hash line
  end
end

Instance Method Details

#add(l_name, f_name) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/users.rb', line 25

def add l_name, f_name
  f = File.open(UFILE, "a")
  @usrs.collect do |line|
    if (l_name == line[:last_name]) && (f_name == line[:first_name])
      puts "User already exists, not added"
      break
    end
  end
  id_next = id_last + 1
  f.puts "#{l_name}|#{f_name}|false|#{id_next}"
  f.close
  initialize
end

#del(l_name, f_name) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/users.rb', line 39

def del l_name, f_name 
  f = File.open(UFILE, "w")
  @usrs.collect do |line|
    if (l_name == line[:last_name]) && (f_name == line[:first_name])
      loop
    else
      f.puts "#{line[:last_name]}|#{line[:first_name]}|#{line[:admin]}|#{line[:id]}"
    end
  end
  f.close
  initialize
end

#entry_to_hash(line) ⇒ Object



20
21
22
23
# File 'lib/users.rb', line 20

def entry_to_hash line
  values = line.split("|")
  Hash[fields.zip values]
end

#fieldsObject



16
17
18
# File 'lib/users.rb', line 16

def fields
  [:last_name, :first_name, :admin, :id]
end

#id_lastObject



52
53
54
55
56
57
58
59
60
61
# File 'lib/users.rb', line 52

def id_last
  last = 0
  @entries.collect do |line|
    last_name, first_name, admin, id = line.split("|")
    if id.to_i > last
      last = id.to_i
    end
  end
  last
end

#is_admin(l_name, f_name) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/users.rb', line 71

def is_admin l_name, f_name
  ans = false
  @entries.collect do |line|
    last_name, first_name, admin, id = line.split("|")
    if (l_name == last_name) && (f_name == first_name)
      if admin == "true"
        ans = true
      end
    end
  end
  ans
end

#name_update(old_l_name, f_name, new_l_name) ⇒ Object

def user_exists l_name, f_name

ans = false
@entries.collect do |line|
  last_name, first_name, admin, id = line.split("|")
  if (l_name == last_name) && (f_name == first_name)
    ans = true
  end
end
ans

end



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/users.rb', line 105

def name_update old_l_name, f_name, new_l_name
  @usrs.collect do |line|
    if (old_l_name == line[:last_name]) && (f_name == line[:first_name])
      line[:last_name] = new_l_name
    end
  end
 #   @entries.collect do |line|
 #     last_name, first_name, admin, id = line.split("|")
 #     if (old_l_name == last_name) && (f_name == first_name)
 #       line = "#{new_l_name}|{first_name}"
 #     end
 #   end
 #   puts @usrs
  save
end

#saveObject



121
122
123
124
125
126
127
# File 'lib/users.rb', line 121

def save 
  f = File.open(UFILE, "w")
  @usrs.collect do |line|
    f.puts "#{line[:last_name]}|#{line[:first_name]}|#{line[:admin]}|#{line[:id]}"
  end
  f.close
end

#user_exists(l_name, f_name) ⇒ Object



84
85
86
87
88
89
90
91
92
# File 'lib/users.rb', line 84

def user_exists l_name, f_name
  ans = false
  @usrs.collect do |line|
    if (l_name == line[:last_name]) && (f_name == line[:first_name])
      ans = true
    end
  end
  ans
end

#write_new(filename) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/users.rb', line 63

def write_new filename
  f = File.open(filename, "w")
  @entries.collect do |line|
    f.puts line
  end
  f.close
end