lapidarius 1.1.4 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +17 -5
- data/lib/lapidarius/cli.rb +6 -7
- data/lib/lapidarius/cutter.rb +8 -3
- data/lib/lapidarius/version.rb +1 -1
- metadata +2 -3
- data/tags +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f938fc2c5cb8331b341f25bdae60c9fe8d85c025
|
4
|
+
data.tar.gz: bd1e8febede5aeff9886084ffbe8e37ef094edac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44abf19bd372068a6d2b3166182a896dd1a0446d9e186ed3a4ef66a15237c940b844904b8ccf3d2daeee8869b1ee34d3e9a787e458bf15275a87333827a4fab7
|
7
|
+
data.tar.gz: 143f94108ff2541f79fa30354906aacfdd65b60868af48775a1c714130ac62003c399fb264dc11f279abe8d1cd7701322e3e63090ed43d42c5c7ddf47b652a9d
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -5,9 +5,10 @@
|
|
5
5
|
* [gem dep](#gem-dep)
|
6
6
|
* [bundle viz](#bundle-viz)
|
7
7
|
* [Usage](#usage)
|
8
|
+
* [Warning](#warning)
|
8
9
|
* [Unique dependencies](#unique-dependencies)
|
9
10
|
* [Recursive print](#recursive-print)
|
10
|
-
* [
|
11
|
+
* [Filter by version](#filter-by-version)
|
11
12
|
|
12
13
|
## Scope
|
13
14
|
This gem is aimed to list recursively the **runtime dependencies** footprint of the specified gem.
|
@@ -25,10 +26,13 @@ While it is great to visualize inter-dependencies, i have hard times figuring ou
|
|
25
26
|
## Usage
|
26
27
|
The library relies on the *Gem::Commands::DependencyCommand* class (the one invoked by the *gem dep* command line), invoking it recursively to deeply fetch dependencies.
|
27
28
|
|
29
|
+
### Warning
|
30
|
+
Consider only the gems installed on your system are scanned for their own dependencies, no remote fetching is performed.
|
31
|
+
|
28
32
|
### Unique dependencies
|
29
33
|
The command outcome includes all of the unique (by name) nested runtime dependencies:
|
30
34
|
```
|
31
|
-
$
|
35
|
+
$ lapidarius --gem=grape
|
32
36
|
|
33
37
|
grape (0.17.0) 20
|
34
38
|
------------------------------
|
@@ -58,7 +62,7 @@ ice_nine (~> 0.11.0)
|
|
58
62
|
### Recursive print
|
59
63
|
To print dependencies hierarchy recursively, provide the *--recursive* flag. Duplicates are not counted:
|
60
64
|
```
|
61
|
-
$
|
65
|
+
$ lapidarius --gem=sinatra --recursive
|
62
66
|
|
63
67
|
sinatra (1.4.7) 3
|
64
68
|
------------------------------
|
@@ -69,5 +73,13 @@ tilt (< 3, >= 1.3)
|
|
69
73
|
|
70
74
|
```
|
71
75
|
|
72
|
-
###
|
73
|
-
|
76
|
+
### Filter by version
|
77
|
+
If you have multiple versions of the same gem installed, the library will fetch the first one listed by default.
|
78
|
+
To specify the version of the gem to be scanned provide the *--version* flag:
|
79
|
+
```
|
80
|
+
$ lapidarius --gem=rack --version=2.0.1
|
81
|
+
|
82
|
+
rack (2.0.1) 0
|
83
|
+
------------------------------
|
84
|
+
|
85
|
+
```
|
data/lib/lapidarius/cli.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "optparse"
|
2
|
-
require "lapidarius/version"
|
3
2
|
require "lapidarius/cutter"
|
4
3
|
require "lapidarius/renderer"
|
5
4
|
|
@@ -9,6 +8,7 @@ module Lapidarius
|
|
9
8
|
@args = args
|
10
9
|
@io = io
|
11
10
|
@gem = nil
|
11
|
+
@version = nil
|
12
12
|
@recursive = nil
|
13
13
|
end
|
14
14
|
|
@@ -29,15 +29,14 @@ module Lapidarius
|
|
29
29
|
@gem = gem
|
30
30
|
end
|
31
31
|
|
32
|
+
opts.on("-vVERSION", "--version=VERSION", "Specify the gem version") do |version|
|
33
|
+
@version = version
|
34
|
+
end
|
35
|
+
|
32
36
|
opts.on("-r", "--recursive", "Print dependencies recursively") do |recursive|
|
33
37
|
@recursive = recursive
|
34
38
|
end
|
35
39
|
|
36
|
-
opts.on("-v", "--version", "Print library version") do
|
37
|
-
@io.puts VERSION
|
38
|
-
exit
|
39
|
-
end
|
40
|
-
|
41
40
|
opts.on("-h", "--help", "Prints this help") do
|
42
41
|
@io.puts opts
|
43
42
|
exit
|
@@ -46,7 +45,7 @@ module Lapidarius
|
|
46
45
|
end
|
47
46
|
|
48
47
|
private def cutter(cmd_klass)
|
49
|
-
@cutter = Lapidarius::Cutter.new(gem: @gem, cmd_klass: cmd_klass)
|
48
|
+
@cutter = Lapidarius::Cutter.new(gem: @gem, version: @version, cmd_klass: cmd_klass)
|
50
49
|
end
|
51
50
|
|
52
51
|
private def renderer(gem)
|
data/lib/lapidarius/cutter.rb
CHANGED
@@ -7,8 +7,9 @@ module Lapidarius
|
|
7
7
|
|
8
8
|
class GemNotCreatedError < StandardError; end
|
9
9
|
|
10
|
-
def initialize(gem:, cmd_klass: Command)
|
10
|
+
def initialize(gem:, version: nil, cmd_klass: Command)
|
11
11
|
@gem = gem
|
12
|
+
@version = version
|
12
13
|
@cmd = cmd_klass.new
|
13
14
|
end
|
14
15
|
|
@@ -27,13 +28,17 @@ module Lapidarius
|
|
27
28
|
end
|
28
29
|
|
29
30
|
private def tokenize(src)
|
30
|
-
|
31
|
-
|
31
|
+
data = src.split(/\n\n/).map!(&:strip)
|
32
|
+
by_version(data).split("\n").tap do |tokens|
|
32
33
|
tokens.map!(&:strip)
|
33
34
|
tokens.reject! { |token| token.match(/#{DEVELOPMENT}/) }
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
38
|
+
private def by_version(data)
|
39
|
+
data.detect { |d| d.match(/^Gem #{@gem}-#{@version}/) } || data.first
|
40
|
+
end
|
41
|
+
|
37
42
|
private def cmd(gem = @gem)
|
38
43
|
@cmd.call(gem)
|
39
44
|
end
|
data/lib/lapidarius/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lapidarius
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -77,7 +77,6 @@ files:
|
|
77
77
|
- lib/lapidarius/renderer.rb
|
78
78
|
- lib/lapidarius/ui.rb
|
79
79
|
- lib/lapidarius/version.rb
|
80
|
-
- tags
|
81
80
|
homepage: https://github.com/costajob/lapidarius
|
82
81
|
licenses:
|
83
82
|
- MIT
|
data/tags
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
2
|
-
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
3
|
-
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
4
|
-
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
5
|
-
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
6
|
-
!_TAG_PROGRAM_VERSION 5.8 //
|
7
|
-
<< ./lib/lapidarius/gem.rb /^ def <<(dep)$/;" f class:Lapidarius
|
8
|
-
== ./lib/lapidarius/gem.rb /^ def ==(gem)$/;" f class:Lapidarius
|
9
|
-
Cutter ./lib/lapidarius/cutter.rb /^ class Cutter$/;" c class:Lapidarius
|
10
|
-
Cutter ./spec/mocks.rb /^ class Cutter$/;" c class:Lapidarius
|
11
|
-
Env ./lib/lapidarius/env.rb /^ module Env$/;" m class:Lapidarius
|
12
|
-
Gem ./lib/lapidarius/gem.rb /^ class Gem$/;" c class:Lapidarius
|
13
|
-
KindError ./lib/lapidarius/gem.rb /^ class KindError < ArgumentError; end$/;" c class:Lapidarius.Gem
|
14
|
-
Lapidarius ./lib/lapidarius/cutter.rb /^module Lapidarius$/;" m
|
15
|
-
Lapidarius ./lib/lapidarius/env.rb /^module Lapidarius$/;" m
|
16
|
-
Lapidarius ./lib/lapidarius/gem.rb /^module Lapidarius$/;" m
|
17
|
-
Lapidarius ./lib/lapidarius/renderer.rb /^module Lapidarius$/;" m
|
18
|
-
Lapidarius ./lib/lapidarius/version.rb /^module Lapidarius$/;" m
|
19
|
-
Lapidarius ./spec/mocks.rb /^module Lapidarius$/;" m
|
20
|
-
NoEntGemError ./lib/lapidarius/renderer.rb /^ class NoEntGemError< ArgumentError; end$/;" c class:Lapidarius.Renderer
|
21
|
-
Renderer ./lib/lapidarius/renderer.rb /^ class Renderer$/;" c class:Lapidarius
|
22
|
-
call ./lib/lapidarius/cutter.rb /^ def call(src = cmd, gem = nil)$/;" f class:Lapidarius.Cutter
|
23
|
-
call ./lib/lapidarius/renderer.rb /^ def call(io = STDOUT)$/;" f class:Lapidarius.Renderer
|
24
|
-
cmd ./spec/mocks.rb /^ def cmd(gem = @gem)$/;" f class:Lapidarius.Cutter
|
25
|
-
deps ./lib/lapidarius/gem.rb /^ def deps(env = :all)$/;" f class:Lapidarius
|
26
|
-
development? ./lib/lapidarius/gem.rb /^ def development?$/;" f
|
27
|
-
factory ./lib/lapidarius/gem.rb /^ def self.factory(name)$/;" F class:Lapidarius.Gem
|
28
|
-
initialize ./lib/lapidarius/cutter.rb /^ def initialize(gem:, include_dev: false)$/;" f class:Lapidarius.Cutter
|
29
|
-
initialize ./lib/lapidarius/gem.rb /^ def initialize(name:, version:, env: Env::RUNTIME, deps: [])$/;" f class:Lapidarius
|
30
|
-
initialize ./lib/lapidarius/renderer.rb /^ def initialize(gem)$/;" f class:Lapidarius.Renderer
|
31
|
-
out ./lib/lapidarius/renderer.rb /^ def out$/;" f class:Lapidarius.Renderer
|
32
|
-
runtime? ./lib/lapidarius/gem.rb /^ def runtime?$/;" f
|
33
|
-
to_s ./lib/lapidarius/gem.rb /^ def to_s$/;" f class:Lapidarius
|