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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a7606c59e6b5897a112ec58118cffb863ec076b
4
- data.tar.gz: 8ee8fa083d4734547a296560cbeaa75c08087534
3
+ metadata.gz: f938fc2c5cb8331b341f25bdae60c9fe8d85c025
4
+ data.tar.gz: bd1e8febede5aeff9886084ffbe8e37ef094edac
5
5
  SHA512:
6
- metadata.gz: 240027f25409fedfc94e7200dd94dbad9647557a3a768cd0cb9d3af5bb10d8d2e911cc44c15d9772b12a1e377f527350582220750a96c8f0988f0dfbe4414b83
7
- data.tar.gz: c2b00be9cae80b0732516b5e457b83ed68895d2e3adca9561248003909d387d8827c600e1269665ceb04b5c85bcb9b21d2416d76de52a643cc91b5ef0bae1805
6
+ metadata.gz: 44abf19bd372068a6d2b3166182a896dd1a0446d9e186ed3a4ef66a15237c940b844904b8ccf3d2daeee8869b1ee34d3e9a787e458bf15275a87333827a4fab7
7
+ data.tar.gz: 143f94108ff2541f79fa30354906aacfdd65b60868af48775a1c714130ac62003c399fb264dc11f279abe8d1cd7701322e3e63090ed43d42c5c7ddf47b652a9d
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  *.gem
11
+ tags
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
- * [Warning](#warning)
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
- $ ./bin/lapidarius --gem=grape
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
- $ ./bin/lapidarius --gem=sinatra --recursive
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
- ### Warning
73
- Consider only the gems installed on your system are scanned for their own dependencies, no remote fetching is performed.
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
+ ```
@@ -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)
@@ -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
- src = src.split(/\n\n/).first
31
- src.split("\n").tap do |tokens|
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
@@ -1,3 +1,3 @@
1
1
  module Lapidarius
2
- VERSION = "1.1.4"
2
+ VERSION = "2.0.1"
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: 1.1.4
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-27 00:00:00.000000000 Z
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