gem_dependencies_visualizer 0.1.1 → 0.1.2

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: de992f80871f73bf446a31e89e82f91dfacb53a9
4
- data.tar.gz: a51116d79a4286a8756f989655ab6a1798f5b7c3
3
+ metadata.gz: 3e1b5c2e069f8f02090a5c009799d19620d2aad3
4
+ data.tar.gz: a7db7cbf70c542ea3b7069229d83083e47cdd6c0
5
5
  SHA512:
6
- metadata.gz: 988358d47ef693a4035d5a9a8d3e6c072e89594b14a2f9e3a1dd7528e8b428fbb4ba60da3dd4b1ce630f7e508d0586ffb415c3bcef44b080306e8ab146bad51b
7
- data.tar.gz: 8d1663a7a5cd13eaedd0688d02ad30976180c5ea7bb39fd3c25e5007eb8a8b63ffd326d35726d66645d7b1f7c8db6d5c9c28caf5399a5c9326c5c81c9105e79a
6
+ metadata.gz: 8a3652a5c7d05d52f0e87dda7409abf4ae3c2de794ac4a4c3d6efd46702f7318314927b991b99679dbeac18153c37614c9e2ed304e7e05875d83775cbc294a44
7
+ data.tar.gz: 116715344d7289cfe57e38ade7b7eb77b0a984129705d79b2a4a4a4189c157faaa2a074420dc2aa01a9b8c08d1295d4155fac9e875a5b8dde416edadd4cdab7b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 0.1.2 (2016-09-04)
2
+
3
+ Fixes:
4
+ * Regex is now updated to support gems without version set
5
+
6
+ Features:
7
+ * Allow clients to set if they want the gem version in the graph
8
+ * Read through the whole Gemfile.lock content (not just the first)
9
+
1
10
  ## 0.1.1 (2016-09-02)
2
11
 
3
12
  Fixes:
@@ -1,3 +1,3 @@
1
1
  module GemDependenciesVisualizer
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,11 +1,12 @@
1
1
  require "gem_dependencies_visualizer/version"
2
2
 
3
3
  module GemDependenciesVisualizer
4
- def self.produce_gems_graph(string_input, graph_name = nil)
4
+ def self.produce_gems_graph(string_input, graph_name = nil, options = {})
5
5
  unless string_input.nil?
6
6
  g = GraphViz::new( :G, :type => :digraph )
7
+ g[:rankdir] ='LR'
7
8
 
8
- data = populate_gem_data string_input
9
+ data = populate_gem_data string_input, options
9
10
  populate_gem_graph g, data, graph_name
10
11
  end
11
12
  end
@@ -14,35 +15,53 @@ module GemDependenciesVisualizer
14
15
  protected
15
16
  #########
16
17
 
17
- def self.populate_gem_data(gemfile_lock_content)
18
+ def self.populate_gem_data(gemfile_lock_content, options = {})
18
19
  string_array = gemfile_lock_content.gsub("\r\n", "\n").split("\n")
19
20
  gem_list_index = 0
21
+ gem_list = {}
20
22
 
21
23
  string_array.each_with_index do |x, index|
22
- if /.*GEM.*/.match x
23
- gem_list_index = index + 3
24
- break
25
- end
26
- end
24
+ if /.*specs:.*/.match x
25
+ gem_list_index = index + 1
27
26
 
28
- continue = true
29
- gem_list = {}
30
- key = string_array[gem_list_index].gsub(/ \(.*\)/, '').gsub(' ', '')
31
- values = []
32
- gem_list_index += 1
33
-
34
- while continue
35
- if /^ [\S]* \(.*\)$/.match string_array[gem_list_index]
36
- gem_list[key] = values
37
- key = string_array[gem_list_index].gsub(/ \(.*\)/, '').gsub(' ', '')
27
+ continue = true
28
+
29
+ if options[:keep_gem_version]
30
+ key = string_array[gem_list_index].strip
31
+ else
32
+ key = clear_gem_name_from_version string_array[gem_list_index]
33
+ end
34
+
38
35
  values = []
39
- elsif /^ [\S]* \(.*\)$/.match string_array[gem_list_index]
40
- values << string_array[gem_list_index].gsub(/ \(.*\)/, '').gsub(' ', '')
41
- else
42
- continue = false
43
- end
36
+ gem_list_index += 1
37
+
38
+ while continue
39
+ if /^ [\S]*( \(.*\))?$/.match string_array[gem_list_index]
40
+ gem_list[key] = values
44
41
 
45
- gem_list_index += 1
42
+ if options[:keep_gem_version]
43
+ key = string_array[gem_list_index].strip
44
+ else
45
+ key = clear_gem_name_from_version string_array[gem_list_index]
46
+ end
47
+
48
+ values = []
49
+ elsif /^ [\S]*( \(.*\))?$/.match string_array[gem_list_index]
50
+ if options[:keep_gem_version]
51
+ value = string_array[gem_list_index].strip
52
+ else
53
+ value = clear_gem_name_from_version string_array[gem_list_index]
54
+ end
55
+
56
+ values << value
57
+ else
58
+ gem_list[key] = values
59
+ continue = false
60
+ end
61
+
62
+ gem_list_index += 1
63
+ end
64
+ end
46
65
  end
47
66
 
48
67
  gem_list
@@ -69,6 +88,11 @@ module GemDependenciesVisualizer
69
88
  graph.output(:png => "#{directory_name}/#{graph_name.nil? ? "graph_sample" : graph_name }.png" )
70
89
  end
71
90
 
91
+ def self.clear_gem_name_from_version(name)
92
+ name.gsub(/ \(.*\)/, '').gsub(' ', '')
93
+ end
94
+
72
95
  private_class_method :populate_gem_graph
73
96
  private_class_method :populate_gem_data
97
+ private_class_method :clear_gem_name_from_version
74
98
  end
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.1
4
+ version: 0.1.2
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-02 00:00:00.000000000 Z
11
+ date: 2016-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler