Class | WEBrick::HTTPAuth::Htgroup |
In: |
lib/webrick/httpauth/htgroup.rb
|
Parent: | Object |
# File lib/webrick/httpauth/htgroup.rb, line 15 15: def initialize(path) 16: @path = path 17: @mtime = Time.at(0) 18: @group = Hash.new 19: open(@path,"a").close unless File::exist?(@path) 20: reload 21: end
# File lib/webrick/httpauth/htgroup.rb, line 56 56: def add(group, members) 57: @group[group] = members(group) | members 58: end
# File lib/webrick/httpauth/htgroup.rb, line 37 37: def flush(output=nil) 38: output ||= @path 39: tmp = Tempfile.new("htgroup", File::dirname(output)) 40: begin 41: @group.keys.sort.each{|group| 42: tmp.puts(format("%s: %s", group, self.members(group).join(" "))) 43: } 44: tmp.close 45: File::rename(tmp.path, output) 46: rescue 47: tmp.close(true) 48: end 49: end
# File lib/webrick/httpauth/htgroup.rb, line 51 51: def members(group) 52: reload 53: @group[group] || [] 54: end
# File lib/webrick/httpauth/htgroup.rb, line 23 23: def reload 24: if (mtime = File::mtime(@path)) > @mtime 25: @group.clear 26: open(@path){|io| 27: while line = io.gets 28: line.chomp! 29: group, members = line.split(/:\s*/) 30: @group[group] = members.split(/\s+/) 31: end 32: } 33: @mtime = mtime 34: end 35: end