method-ray 0.1.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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +23 -0
  3. data/LICENSE +21 -0
  4. data/README.md +39 -0
  5. data/exe/methodray +7 -0
  6. data/ext/Cargo.toml +24 -0
  7. data/ext/extconf.rb +40 -0
  8. data/ext/src/cli.rs +33 -0
  9. data/ext/src/lib.rs +79 -0
  10. data/lib/methodray/cli.rb +28 -0
  11. data/lib/methodray/commands.rb +78 -0
  12. data/lib/methodray/version.rb +5 -0
  13. data/lib/methodray.rb +9 -0
  14. data/rust/Cargo.toml +39 -0
  15. data/rust/src/analyzer/calls.rs +56 -0
  16. data/rust/src/analyzer/definitions.rs +70 -0
  17. data/rust/src/analyzer/dispatch.rs +134 -0
  18. data/rust/src/analyzer/install.rs +226 -0
  19. data/rust/src/analyzer/literals.rs +85 -0
  20. data/rust/src/analyzer/mod.rs +11 -0
  21. data/rust/src/analyzer/tests/integration_test.rs +136 -0
  22. data/rust/src/analyzer/tests/mod.rs +1 -0
  23. data/rust/src/analyzer/variables.rs +76 -0
  24. data/rust/src/cache/mod.rs +3 -0
  25. data/rust/src/cache/rbs_cache.rs +158 -0
  26. data/rust/src/checker.rs +139 -0
  27. data/rust/src/cli/args.rs +40 -0
  28. data/rust/src/cli/commands.rs +139 -0
  29. data/rust/src/cli/mod.rs +6 -0
  30. data/rust/src/diagnostics/diagnostic.rs +125 -0
  31. data/rust/src/diagnostics/formatter.rs +119 -0
  32. data/rust/src/diagnostics/mod.rs +5 -0
  33. data/rust/src/env/box_manager.rs +121 -0
  34. data/rust/src/env/global_env.rs +279 -0
  35. data/rust/src/env/local_env.rs +58 -0
  36. data/rust/src/env/method_registry.rs +63 -0
  37. data/rust/src/env/mod.rs +15 -0
  38. data/rust/src/env/scope.rs +330 -0
  39. data/rust/src/env/type_error.rs +23 -0
  40. data/rust/src/env/vertex_manager.rs +195 -0
  41. data/rust/src/graph/box.rs +157 -0
  42. data/rust/src/graph/change_set.rs +115 -0
  43. data/rust/src/graph/mod.rs +7 -0
  44. data/rust/src/graph/vertex.rs +167 -0
  45. data/rust/src/lib.rs +24 -0
  46. data/rust/src/lsp/diagnostics.rs +133 -0
  47. data/rust/src/lsp/main.rs +8 -0
  48. data/rust/src/lsp/mod.rs +4 -0
  49. data/rust/src/lsp/server.rs +138 -0
  50. data/rust/src/main.rs +46 -0
  51. data/rust/src/parser.rs +96 -0
  52. data/rust/src/rbs/converter.rs +82 -0
  53. data/rust/src/rbs/error.rs +37 -0
  54. data/rust/src/rbs/loader.rs +183 -0
  55. data/rust/src/rbs/mod.rs +15 -0
  56. data/rust/src/source_map.rs +102 -0
  57. data/rust/src/types.rs +75 -0
  58. metadata +119 -0
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: method-ray
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - dak2
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rbs
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '3.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
26
+ description: |
27
+ Method-Ray is a static analysis tool that checks the callability of methods in Ruby code.
28
+ It uses graph-based type inference to detect undefined method calls at analysis time.
29
+ email:
30
+ - dak2.dev@gmail.com
31
+ executables:
32
+ - methodray
33
+ extensions:
34
+ - ext/extconf.rb
35
+ extra_rdoc_files: []
36
+ files:
37
+ - CHANGELOG.md
38
+ - LICENSE
39
+ - README.md
40
+ - exe/methodray
41
+ - ext/Cargo.toml
42
+ - ext/extconf.rb
43
+ - ext/src/cli.rs
44
+ - ext/src/lib.rs
45
+ - lib/methodray.rb
46
+ - lib/methodray/cli.rb
47
+ - lib/methodray/commands.rb
48
+ - lib/methodray/version.rb
49
+ - rust/Cargo.toml
50
+ - rust/src/analyzer/calls.rs
51
+ - rust/src/analyzer/definitions.rs
52
+ - rust/src/analyzer/dispatch.rs
53
+ - rust/src/analyzer/install.rs
54
+ - rust/src/analyzer/literals.rs
55
+ - rust/src/analyzer/mod.rs
56
+ - rust/src/analyzer/tests/integration_test.rs
57
+ - rust/src/analyzer/tests/mod.rs
58
+ - rust/src/analyzer/variables.rs
59
+ - rust/src/cache/mod.rs
60
+ - rust/src/cache/rbs_cache.rs
61
+ - rust/src/checker.rs
62
+ - rust/src/cli/args.rs
63
+ - rust/src/cli/commands.rs
64
+ - rust/src/cli/mod.rs
65
+ - rust/src/diagnostics/diagnostic.rs
66
+ - rust/src/diagnostics/formatter.rs
67
+ - rust/src/diagnostics/mod.rs
68
+ - rust/src/env/box_manager.rs
69
+ - rust/src/env/global_env.rs
70
+ - rust/src/env/local_env.rs
71
+ - rust/src/env/method_registry.rs
72
+ - rust/src/env/mod.rs
73
+ - rust/src/env/scope.rs
74
+ - rust/src/env/type_error.rs
75
+ - rust/src/env/vertex_manager.rs
76
+ - rust/src/graph/box.rs
77
+ - rust/src/graph/change_set.rs
78
+ - rust/src/graph/mod.rs
79
+ - rust/src/graph/vertex.rs
80
+ - rust/src/lib.rs
81
+ - rust/src/lsp/diagnostics.rs
82
+ - rust/src/lsp/main.rs
83
+ - rust/src/lsp/mod.rs
84
+ - rust/src/lsp/server.rs
85
+ - rust/src/main.rs
86
+ - rust/src/parser.rs
87
+ - rust/src/rbs/converter.rs
88
+ - rust/src/rbs/error.rs
89
+ - rust/src/rbs/loader.rs
90
+ - rust/src/rbs/mod.rs
91
+ - rust/src/source_map.rs
92
+ - rust/src/types.rs
93
+ homepage: https://github.com/dak2/method-ray
94
+ licenses:
95
+ - MIT
96
+ metadata:
97
+ homepage_uri: https://github.com/dak2/method-ray
98
+ source_code_uri: https://github.com/dak2/method-ray
99
+ changelog_uri: https://github.com/dak2/method-ray/blob/main/CHANGELOG.md
100
+ bug_tracker_uri: https://github.com/dak2/method-ray/issues
101
+ rubygems_mfa_required: 'true'
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 3.4.0
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubygems_version: 3.6.9
117
+ specification_version: 4
118
+ summary: Method-Ray is a fast static analysis tool for Ruby methods.
119
+ test_files: []