class RbRotate::Directory

Represents one log directory.

Attributes

identifier[R]
path[R]

Public Class Methods

new(identifier, parent = nil) click to toggle source

Constructor.

Identifier is symbol so identifier in configuration file or string, so directory path.

# File lib/rb.rotate/directory.rb, line 56
def initialize(identifier, parent = nil)
    @parent = parent
    if identifier.kind_of? Symbol
        @identifier = identifier
    else
        @path = identifier
    end
end

Public Instance Methods

compressable?() click to toggle source

Indicates, directory entries should be compressed in archive.

# File lib/rb.rotate/directory.rb, line 187
def compressable?
    not self.configuration[:compress].nil?
end
configuration() click to toggle source

Returns the configuration instance.

# File lib/rb.rotate/directory.rb, line 69
def configuration
    if @configuration.nil?
        # If no identifier set, looks for the dir
        #  in configuration.
        if @identifier.nil?
            directory = Configuration::find_path(@path)
            
            if not directory.nil?
                @identifier = directory.identifier
                @configured = true
            elsif not @parent.nil?
                @identifier = @parent.identifier
                @configured = false
            else
                @identifier = :default
                @configured = false
            end
        else
            @configured = true
        end
        
        @configuration = DirectoryConfiguration::new(@identifier)
    end
    
    return @configuration
end
configured?() click to toggle source

Indicates, it isn’t child directory of configured directory, but directly the configured directory.

# File lib/rb.rotate/directory.rb, line 101
def configured?
    self.configuration
    @configured
end
configured_ancestor() click to toggle source

Returns the “nearest” configured ancestor.

# File lib/rb.rotate/directory.rb, line 137
def configured_ancestor
    if self.configured?
        self
    elsif not @parent.nil?
        @parent.configured_ancestor
    else
        nil
    end
end
each_directory(&block) click to toggle source

Traverses through all directories in directory.

# File lib/rb.rotate/directory.rb, line 159
def each_directory(&block)
    Reader::read(self, :filter => :dirs, &block)
end
each_file(&block) click to toggle source

Traverses through all files in directory.

# File lib/rb.rotate/directory.rb, line 151
def each_file(&block)
    Reader::read(self, :filter => :files, &block)
end
relative_path() click to toggle source

Returns relative path to parent (configured) directory.

# File lib/rb.rotate/directory.rb, line 125
def relative_path
    if self.configured?
        "."
    else
        self.path[(self.configured_ancestor.path.length + 1)..-1]
    end
end
rotate!() click to toggle source

Rotates.

# File lib/rb.rotate/directory.rb, line 167
def rotate!
    # Cleans old or expired items
    # self.storage.cleanup! (cleaned up globally by dispatcher call)
    
    # Rotates
    if self.configuration[:recursive]
        self.each_directory do |directory|
            directory.rotate!
        end
    end
    self.each_file do |file|
        file.rotate!
    end
end
storage() click to toggle source

Returns storage appropriate to directory.

# File lib/rb.rotate/directory.rb, line 195
def storage
    Storage::get(self)
end