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

### Methods

add flush members new reload

### Public Class methods

new(path)

[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

add(group, members)

[Source]

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

flush(output=nil)

[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

members(group)

[Source]

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

reload()

[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]