lapidarius 3.1.2 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -3
- data/lib/lapidarius/cutter.rb +22 -12
- data/lib/lapidarius/gem.rb +1 -0
- data/lib/lapidarius/tree.rb +1 -1
- data/lib/lapidarius/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 236dff5c4632cb817064529fe17871c0c7dfb677
|
4
|
+
data.tar.gz: 9e97e388558dcd1d89c6d64bbd7c43019290d15f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3de53054c5989401d803782a84ed7a6cc5edec327fadc1ba79a9fa6fcfcf533ed2b431f52bc072da257ad669b826a07d6e05b0ad1b22d468b65ff5a790be545c
|
7
|
+
data.tar.gz: 97e45c387dd9f0b5c3d31c325ba8d98bbdf08b9c40e9839e2d517f1722340f674eeb45ec4e1bfff4fc9666bb90d760a920c9df41b6d85c9b5f83fca8d8154b29
|
data/README.md
CHANGED
@@ -27,9 +27,10 @@ No remote fetching is performed.
|
|
27
27
|
|
28
28
|
## Usage
|
29
29
|
This library invokes the `Gem::Commands::DependencyCommand` class recursively to collect all the levels of dependency.
|
30
|
-
|
30
|
+
Both runtime and development dependencies are counted (identical dependencies are counted once).
|
31
|
+
Just the runtime dependencies tree is printed to screen:
|
31
32
|
|
32
|
-
```
|
33
|
+
```shell
|
33
34
|
$ lapidarius --gem=sinatra
|
34
35
|
sinatra (2.0.0)
|
35
36
|
├── mustermann (~> 1.0)
|
@@ -38,5 +39,5 @@ sinatra (2.0.0)
|
|
38
39
|
│ └── rack (>= 0)
|
39
40
|
└── tilt (~> 2.0)
|
40
41
|
|
41
|
-
4 runtime
|
42
|
+
4 runtime, 4 development
|
42
43
|
```
|
data/lib/lapidarius/cutter.rb
CHANGED
@@ -5,34 +5,44 @@ module Lapidarius
|
|
5
5
|
class Cutter
|
6
6
|
DEVELOPMENT = "development"
|
7
7
|
|
8
|
-
class GemNotCreatedError < StandardError; end
|
9
|
-
|
10
8
|
def initialize(name, cmd_klass = Command)
|
11
9
|
@name = name
|
12
10
|
@cmd = cmd_klass.new
|
11
|
+
@dev_deps = []
|
13
12
|
end
|
14
13
|
|
15
|
-
def call
|
14
|
+
def call
|
15
|
+
recurse.tap do |gem|
|
16
|
+
gem.dev_count = dev_count if gem
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private def recurse(name = @name, gem = nil)
|
16
21
|
tokens = tokenize(name)
|
17
22
|
token = tokens.shift
|
18
23
|
gem ||= Gem.factory(token)
|
19
|
-
fail GemNotCreatedError, "unable to create a gem from #{token}" unless gem
|
20
24
|
tokens.each do |t|
|
21
|
-
dep = Gem.factory(t)
|
22
|
-
next unless dep
|
25
|
+
next unless dep = Gem.factory(t)
|
23
26
|
gem << dep
|
24
|
-
|
27
|
+
recurse(dep.name, dep)
|
25
28
|
end
|
26
29
|
gem
|
27
30
|
end
|
28
31
|
|
32
|
+
def dev_count
|
33
|
+
@dev_deps.map { |e| e.split(" ").first }.uniq.count
|
34
|
+
end
|
35
|
+
|
29
36
|
private def tokenize(name)
|
30
37
|
src = @cmd.call(name)
|
31
|
-
data = src
|
32
|
-
data.
|
33
|
-
|
34
|
-
|
35
|
-
|
38
|
+
data = normalize(src)
|
39
|
+
dev, tokens = data.partition { |token| token.match(/#{DEVELOPMENT}/) }
|
40
|
+
@dev_deps.concat(dev)
|
41
|
+
tokens
|
42
|
+
end
|
43
|
+
|
44
|
+
private def normalize(src)
|
45
|
+
src.split(/\n\n/).map!(&:strip).first.split("\n").map(&:strip)
|
36
46
|
end
|
37
47
|
end
|
38
48
|
end
|
data/lib/lapidarius/gem.rb
CHANGED
data/lib/lapidarius/tree.rb
CHANGED
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: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|