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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d36f162e9683314260cb0ef8726db7907baa9de
4
- data.tar.gz: 350fc7920a94be4f8744a10e36eaa8d4c375e6bc
3
+ metadata.gz: 236dff5c4632cb817064529fe17871c0c7dfb677
4
+ data.tar.gz: 9e97e388558dcd1d89c6d64bbd7c43019290d15f
5
5
  SHA512:
6
- metadata.gz: b5f19b7399ad3f7545b7f598354ca7805ed6031917e28c6797900e07373350ca1c4b4ee876a9c5bce8a396cd2bb141566d7dfd3254f855f606d5d506aa9af326
7
- data.tar.gz: 50ba453163c082a7570eda70e8cd3a9cabb54484b475f0f63311a4c222684c311509b97ea1abb22cf955f46ebd48c2ecfb279a3b75e9b2d5be4161676c97e2ea
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
- Identical dependencies are counted just once:
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 dependencies
42
+ 4 runtime, 4 development
42
43
  ```
@@ -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(name = @name, gem = nil)
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
- call(dep.name, dep)
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.split(/\n\n/).map!(&:strip)
32
- data.first.split("\n").tap do |tokens|
33
- tokens.map!(&:strip)
34
- tokens.reject! { |token| token.match(/#{DEVELOPMENT}/) }
35
- end
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
@@ -23,6 +23,7 @@ module Lapidarius
23
23
  end
24
24
 
25
25
  attr_reader :name, :version, :deps
26
+ attr_accessor :dev_count
26
27
 
27
28
  def initialize(name:, version:, deps: [])
28
29
  @name = name
@@ -16,7 +16,7 @@ module Lapidarius
16
16
  out << @gem
17
17
  recurse
18
18
  out << ""
19
- out << "#{@gem.count} runtime dependencies"
19
+ out << "#{@gem.count} runtime, #{@gem.dev_count} development"
20
20
  end
21
21
  end
22
22
 
@@ -1,3 +1,3 @@
1
1
  module Lapidarius
2
- VERSION = "3.1.2"
2
+ VERSION = "3.2.0"
3
3
  end
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.1.2
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-21 00:00:00.000000000 Z
11
+ date: 2017-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler