Project

lapidarius

0.0
No commit activity in last 3 years
No release in over 3 years
A tiny library to visualize and count gem dependencies recursively
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0
~> 5.0
~> 10.0
 Project Readme

Table of Contents

  • Scope
    • Alternatives
      • gem dep
      • bundle viz
  • Installation
  • Usage
    • Version
    • Remote
    • Quiet

Scope

This gem is aimed to recursively collect the runtime dependencies footprint of the specified gem.
The output of the library mimics the tree shell utility, highlighting the nested dependencies via ASCII characters.

Alternatives

Some alternatives exists:

gem dep

The standard gem dep command just unearth one level of dependencies.

bundle viz

The bundle viz command relies on the Gemfile and the graphviz library to generate a visual representation of the gem inter-dependencies.
While it is great to visualize inter-dependencies, i have hard times figuring out gem's runtime footprint.

Installation

Install the gem from your shell:

gem install lapidarius

Usage

This library relies heavily on the Gem::Commands::DependencyCommand class to recursively the dependencies tree.
Both runtime and development dependencies are counted once, but just the former are printed on screen:

lapidarius sinatra
sinatra (2.0.0)
├── mustermann (~> 1.0)
├── rack (~> 2.0)
├── rack-protection (= 2.0.0)
│   └── rack (>= 0)
└── tilt (~> 2.0)

4 runtime, 5 development

Version

By default this library scans for the latest available version >= 0 found at rubygems.org.
In case you are interested on a specific version just specify the -v option:

lapidarius sinatra -v 1.4.7
sinatra (1.4.7)
├── rack (~> 1.5)
├── rack-protection (~> 1.4)
│   └── rack (>= 0)
└── tilt (< 3, >= 1.3)

3 runtime, 4 development

Remote

By default this library scan for local gems, warning if the gem is not installed:

lapidarius rails -v 1.2.6
No gems found matching rails (= 1.2.6)

If you want to scan for remote gems specify the -r option (be aware of slowness):

lapidarius rails -v 1.2.6 -r
rails (1.2.6)
├── actionmailer (= 1.3.6)
│   └── actionpack (= 1.13.6)
│       └── activesupport (= 1.4.4)
├── actionpack (= 1.13.6)
│   └── activesupport (= 1.4.4)
├── actionwebservice (= 1.2.6)
│   ├── actionpack (= 1.13.6)
│   │   └── activesupport (= 1.4.4)
│   └── activerecord (= 1.15.6)
│       └── activesupport (= 1.4.4)
├── activerecord (= 1.15.6)
│   └── activesupport (= 1.4.4)
├── activesupport (= 1.4.4)
└── rake (>= 0.7.2)

6 runtime, 5 development

Quiet

Some gems have several interdependencies that results in a multitude of tree branches.
In case you just dare to count dependencies without the visual noise, you can pass the -q option:

lapidarius rails -v 5.1.5 -r -q
37 runtime, 48 development