class WEBrick::HTTPAuth::Htgroup
def add(group, members)
def add(group, members) @group[group] = members(group) | members end
def flush(output=nil)
def flush(output=nil) output ||= @path tmp = Tempfile.create("htgroup", File::dirname(output)) begin @group.keys.sort.each{|group| tmp.puts(format("%s: %s", group, self.members(group).join(" "))) } ensure tmp.close if $! File.unlink(tmp.path) else return File.rename(tmp.path, output) end end end
def initialize(path)
def initialize(path) @path = path @mtime = Time.at(0) @group = Hash.new File.open(@path,"a").close unless File.exist?(@path) reload end
def members(group)
def members(group) reload @group[group] || [] end
def reload
def reload if (mtime = File::mtime(@path)) > @mtime @group.clear File.open(@path){|io| while line = io.gets line.chomp! group, members = line.split(/:\s*/, 2) @group[group] = members.split(/\s+/) end } @mtime = mtime end end