lapidarius 1.1.4 → 2.0.1

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: 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