Developer Documentation

Purpose

Documentation for developers contributing to or extending Excavate.

Topics

Topic Description

Architecture

Design principles and patterns

Contributing

How to contribute

Code Style

Coding standards

Testing

Running and writing tests

Debugging

Debugging techniques

Release Process

How releases work

Quick Start for Contributors

# Clone repository
git clone https://github.com/omnizip/excavate.git
cd excavate

# Install dependencies
bundle install

# Run tests
bundle exec rspec

# Run linter
bundle exec rubocop

Architecture Overview

Excavate follows object-oriented design principles:

  • Facade pattern (Excavate::Archive)

  • Strategy pattern (format-specific extractors)

  • Registry pattern (extension mapping)

See Architecture for detailed documentation.

Next Steps

Start with Architecture to understand the codebase structure, then explore specific topics.


Table of contents