gem_dependencies_visualizer 0.1.5 → 0.1.6

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: cdb9a51b51a557ad4b43df551279a765d3bf9451
4
- data.tar.gz: 781f4d337725ec8e109346e24fab39e2188c6692
3
+ metadata.gz: 50b6ebe9df3e9a5f6c6e22bd5ead97322ee48a58
4
+ data.tar.gz: d96a8db942e132292b75ff3768f5f8b353117360
5
5
  SHA512:
6
- metadata.gz: 0ba22599307500b44a3b515bebcfcc1a2a188ccd9f3311845a5abc7327175fe3baecdca9dc18ac722b22c1803356db4492245464f7fd87d11fdc95ca062ac559
7
- data.tar.gz: 195fda093daf34168c430a74192c287d5c9a34282f7cfc828874dd112da6e3f7ac4ac7cb6ecc6226ae7c7d8617a2400593ad9c125aef53fd46a00f252d5b4916
6
+ metadata.gz: 20a0346dfb78a963d5e33d498a0e52f003f3a934f1db4ef4904642d2434ee0b75e8dc26a0cb04425991b60425e9b9635ccd017d74de7c0944f3831a7be78253c
7
+ data.tar.gz: bad3bc75f350ee196d40d89d6193de27bebeee787aa40c7ece37b5c046e6a7421561d2c9cfd1d338a9c02d1314bccac016b59fd3a890417e0f0a772a59e7a541
data/.gitignore CHANGED
@@ -11,6 +11,8 @@
11
11
  # IntelliJ / Rubymine files
12
12
  .idea/
13
13
  *.iml
14
+ .generators
15
+ .rakeTasks
14
16
 
15
17
  # Don't take into account all built gems
16
- *.gem
18
+ *.gem
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.1.6 (2016-09-10)
2
+
3
+ Features:
4
+ * Add new method for producing graphs from .gemspec and Gemfile.lock file contents, called produce_gems_graph_from_gemspec.
5
+
1
6
  ## 0.1.5 (2016-09-07)
2
7
 
3
8
  Features:
data/README.md CHANGED
@@ -18,12 +18,13 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- To produce a graph of your gem dependencies, pass the content of a Gemfile.lock and, if available, the content of the Gemfile as is as an input to the visualizer. You can (optionaly) pass a graph name you might want to give to the .png file to be produced.
21
+ To produce a graph of your gem dependencies, pass the content of a Gemfile.lock and, if available, the content of the Gemfile as is as an input to the visualizer. For gems, you can also use a different method to pass the gemspec and your Gemfile.lock content. You can (optionaly) pass a graph name you might want to give to the .png file to be produced.
22
22
 
23
23
  To use it just run the following in your code:
24
24
 
25
25
  ```ruby
26
26
  GemDependenciesVisualizer.produce_gems_graph(gemfile_content, gemfile_lock_content, graph_name, options = {})
27
+ GemDependenciesVisualizer.produce_gems_graph_from_gemspec(gemspec_file_content, gemfile_lock_content, graph_name, options = {})
27
28
  ```
28
29
 
29
30
  Available options you could use are:
@@ -13,6 +13,18 @@ module GemDependenciesVisualizer
13
13
  end
14
14
  end
15
15
 
16
+ def self.produce_gems_graph_from_gemspec(gemspec_content, gem_file_lock_content, graph_name = nil, options = {})
17
+ if gem_file_lock_content.nil?
18
+ puts 'Please insert both gemspec and Gemfile.lock contents to proceed or just Gemfile.lock content.'
19
+ else
20
+ g = GraphViz::new( :G, :type => :digraph )
21
+ g[:rankdir] = rankdir(options)
22
+
23
+ data = populate_gem_data_from_gemspec gemspec_content, gem_file_lock_content, options
24
+ populate_gem_graph g, data, graph_name, options
25
+ end
26
+ end
27
+
16
28
  #########
17
29
  protected
18
30
  #########
@@ -32,6 +44,12 @@ module GemDependenciesVisualizer
32
44
  end
33
45
  end
34
46
 
47
+ def self.collect_gems_from_gemspec_file(gemspec_file_content, options = {})
48
+ unless gemspec_file_content.nil?
49
+ (gemspec_file_content.scan /.*spec\.(add.*dependency|name.*=) ['"](?<attribute>\S*)['"]/).flatten.uniq.sort
50
+ end
51
+ end
52
+
35
53
  def self.collect_gems_from_gemfile_lock(gem_file_lock_content, options = {})
36
54
  string_array = gem_file_lock_content.gsub("\r\n", "\n").split("\n")
37
55
  gem_list_index = 0
@@ -84,6 +102,16 @@ module GemDependenciesVisualizer
84
102
  gem_list
85
103
  end
86
104
 
105
+ def self.populate_gem_data_from_gemspec(gemspec_file_content, gemfile_lock_content, options = {})
106
+ gem_dependencies = collect_gems_from_gemfile_lock gemfile_lock_content, options
107
+ gems = collect_gems_from_gemspec_file gemspec_file_content, options
108
+
109
+ {
110
+ :gems => gems,
111
+ :gem_dependencies => gem_dependencies
112
+ }
113
+ end
114
+
87
115
  def self.populate_gem_data(gem_file_content, gemfile_lock_content, options = {})
88
116
  gem_dependencies = collect_gems_from_gemfile_lock gemfile_lock_content, options
89
117
  gems = collect_gems_from_gemfile gem_file_content, options
@@ -135,8 +163,10 @@ module GemDependenciesVisualizer
135
163
 
136
164
  private_class_method :populate_gem_graph
137
165
  private_class_method :populate_gem_data
166
+ private_class_method :populate_gem_data_from_gemspec
138
167
  private_class_method :clear_gem_name_from_version
139
168
  private_class_method :rankdir
140
169
  private_class_method :collect_gems_from_gemfile
141
170
  private_class_method :collect_gems_from_gemfile_lock
171
+ private_class_method :collect_gems_from_gemspec_file
142
172
  end
@@ -1,3 +1,3 @@
1
1
  module GemDependenciesVisualizer
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_dependencies_visualizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasilis Kalligas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-08 00:00:00.000000000 Z
11
+ date: 2016-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler