Class WEBrick::HTTPAuth::Htgroup
In: webrick/httpauth/htgroup.rb
Parent: Object

Methods

add   flush   members   new   reload  

Public Class methods

[Source]

# File webrick/httpauth/htgroup.rb, line 15
      def initialize(path)
        @path = path
        @mtime = Time.at(0)
        @group = Hash.new
        open(@path,"a").close unless File::exist?(@path)
        reload
      end

Public Instance methods

[Source]

# File webrick/httpauth/htgroup.rb, line 56
      def add(group, members)
        @group[group] = members(group) | members
      end

[Source]

# File webrick/httpauth/htgroup.rb, line 37
      def flush(output=nil)
        output ||= @path
        tmp = Tempfile.new("htgroup", File::dirname(output))
        begin
          @group.keys.sort.each{|group|
            tmp.puts(format("%s: %s", group, self.members(group).join(" ")))
          }
          tmp.close
          File::rename(tmp.path, output)
        rescue
          tmp.close(true)
        end
      end

[Source]

# File webrick/httpauth/htgroup.rb, line 51
      def members(group)
        reload
        @group[group] || []
      end

[Source]

# File webrick/httpauth/htgroup.rb, line 23
      def reload
        if (mtime = File::mtime(@path)) > @mtime
          @group.clear
          open(@path){|io|
            while line = io.gets
              line.chomp!
              group, members = line.split(/:\s*/)
              @group[group] = members.split(/\s+/)
            end
          }
          @mtime = mtime
        end
      end

[Validate]