deps_grapher 1.0.1 → 1.0.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
  SHA256:
3
- metadata.gz: 48a2d2dd4c46e98e2283e13a37b9f692691ebab1cd8a95eba9ad4a590471c2be
4
- data.tar.gz: 9d783c9c65c71ebbd7c49f88f09b30e8e107b9690c5c82bd01160d800cf3a700
3
+ metadata.gz: 7a737245f2c63696cd2a7f5c492ddb9c049e8f8e9a3e51ee9ce897dc4fb8e593
4
+ data.tar.gz: dbb1e28028e37ef1d5127ce8e576012057b11518c7253c0dce047097aea8ad2d
5
5
  SHA512:
6
- metadata.gz: 16aab351cbb8a09355b69c6cd5b010011a7f06b1f0327867f75042d302a704f94cb0ba0fffd9ed34871eadcf0ba41bcb62a6620752c7ae3614214e9f0cdb1a0e
7
- data.tar.gz: 4cb34be594f84381ee1882ad0d7cf611a0f200ed9089d67ae6b242fab65e9d3da2a9f5df0db3131bbc41095d5e45512477eee320e93da6e41d2cb62ae7eb8bda
6
+ metadata.gz: 1e8d778b87a6c3e3ce815f2911c47fe7c636c31dc42d7000094e4c2415ab3628377eb235007641386099c07d126489d630bba7785c56318913d613706a0f58b8
7
+ data.tar.gz: f6f93769c92aaeb8111defca8a6ea1e4781ce711678c2d1e728be33c8fefbb4d6ceec8534078db6937add8942c954225da4867859357d4bc8f65cc7c81042856
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## [1.0.2] - 2024-04-03
2
+ - Use `prism` gem instead of `parser` gem (parsing process is approximately 30% faster)
3
+
1
4
  ## [1.0.1] - 2024-03-26
2
5
  - Fixed a cache issue
3
6
  - Fixed an issue that `__FILE__` or `__dir__` is nil in the configuration file
data/README.md CHANGED
@@ -5,7 +5,7 @@ A Tool to visualize Ruby class dependencies
5
5
 
6
6
  ## Description
7
7
 
8
- Deps Grapher is intended for a general understanding of class dependencies through static analysis. It uses `parser` gem.
8
+ Deps Grapher is intended for a general understanding of class dependencies through static analysis. It uses `prism` gem.
9
9
 
10
10
  Please note the following:
11
11
 
data/deps_grapher.gemspec CHANGED
@@ -31,4 +31,5 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency "activesupport"
33
33
  spec.add_dependency "parser"
34
+ spec.add_dependency "prism"
34
35
  end
@@ -40,7 +40,7 @@ module DepsGrapher
40
40
 
41
41
  log do
42
42
  source_buffer = Parser::Source::Buffer.new(@file_path)
43
- parser = Parser::CurrentRuby.new
43
+ parser = Prism::Translation::Parser.new
44
44
  process parser.parse(source_buffer.read)
45
45
  end
46
46
  end
@@ -38,14 +38,14 @@ module DepsGrapher
38
38
  private
39
39
 
40
40
  def dfs(current, target_path_matcher, visited, path, paths)
41
- return if visited[current]
42
-
43
41
  visited[current] = true
44
42
 
45
43
  if target_path_matcher.match?(current.class_name)
46
44
  paths << path
47
45
  else
48
46
  @graph[current]&.each do |node|
47
+ next if visited[node]
48
+
49
49
  dfs node, target_path_matcher, visited, path + [node], paths
50
50
  end
51
51
  end
@@ -16,7 +16,7 @@ module DepsGrapher
16
16
 
17
17
  def extract!(file_path)
18
18
  source_buffer = Parser::Source::Buffer.new(file_path)
19
- parser = Parser::CurrentRuby.new
19
+ parser = Prism::Translation::Parser.new
20
20
  process parser.parse(source_buffer.read)
21
21
  end
22
22
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DepsGrapher
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
5
5
  end
data/lib/deps_grapher.rb CHANGED
@@ -5,7 +5,7 @@ require "active_support"
5
5
  require "active_support/core_ext"
6
6
  require "json"
7
7
  require "fileutils"
8
- require "parser/current"
8
+ require "prism"
9
9
  require "net/https"
10
10
  require "logger"
11
11
  require "erb"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deps_grapher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jk-es335
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-27 00:00:00.000000000 Z
11
+ date: 2024-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: prism
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description:
42
56
  email:
43
57
  - dev@hacomono.co.jp