docscribe 1.6.0 → 1.6.2

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -193
  3. data/exe/docscribe-client +26 -7
  4. data/lib/docscribe/cli/config_builder.rb +37 -2
  5. data/lib/docscribe/cli/coverage.rb +5 -5
  6. data/lib/docscribe/cli/formatters/json.rb +74 -29
  7. data/lib/docscribe/cli/formatters/sarif.rb +20 -3
  8. data/lib/docscribe/cli/options.rb +17 -2
  9. data/lib/docscribe/cli/rbs_gen.rb +4 -4
  10. data/lib/docscribe/cli/run.rb +107 -24
  11. data/lib/docscribe/cli/update_types.rb +61 -17
  12. data/lib/docscribe/cli.rb +19 -13
  13. data/lib/docscribe/config/defaults.rb +1 -0
  14. data/lib/docscribe/config/rbs.rb +22 -1
  15. data/lib/docscribe/config/template.rb +3 -0
  16. data/lib/docscribe/config/validation.rb +19 -0
  17. data/lib/docscribe/config.rb +1 -0
  18. data/lib/docscribe/infer/behavior.rb +13 -13
  19. data/lib/docscribe/infer/params.rb +2 -2
  20. data/lib/docscribe/infer/raises.rb +5 -6
  21. data/lib/docscribe/infer/returns.rb +1612 -151
  22. data/lib/docscribe/infer.rb +7 -7
  23. data/lib/docscribe/inline_rewriter/doc_builder.rb +485 -102
  24. data/lib/docscribe/inline_rewriter.rb +263 -97
  25. data/lib/docscribe/plugin/registry.rb +1 -0
  26. data/lib/docscribe/server/base.rb +255 -0
  27. data/lib/docscribe/server/client.rb +95 -0
  28. data/lib/docscribe/server/daemon.rb +678 -0
  29. data/lib/docscribe/server/protocol.rb +50 -0
  30. data/lib/docscribe/server.rb +4 -835
  31. data/lib/docscribe/types/primitive.rb +160 -0
  32. data/lib/docscribe/types/sorbet/base_provider.rb +33 -1
  33. data/lib/docscribe/types/yard/formatter.rb +35 -6
  34. data/lib/docscribe/types/yard/parser.rb +25 -20
  35. data/lib/docscribe/types/yard/validator.rb +131 -0
  36. data/lib/docscribe/validator/generic_compatibility.rb +698 -0
  37. data/lib/docscribe/validator/type_mismatch_validator.rb +287 -0
  38. data/lib/docscribe/version.rb +1 -1
  39. metadata +12 -3
@@ -40,9 +40,9 @@ module Docscribe
40
40
 
41
41
  # Analyze method behavior from AST node and method name.
42
42
  #
43
- # @param [Object] node def or defs node
44
- # @param [Object] method_name
45
- # @return [Hash<Symbol, Object>]
43
+ # @param [Parser::AST::Node?] node def or defs node
44
+ # @param [Symbol?] method_name
45
+ # @return [Hash<Symbol, Boolean>]
46
46
  def analyze_behavior(node, method_name)
47
47
  body = extract_body(node)
48
48
  Behavior.analyze(body, method_name)
@@ -50,8 +50,8 @@ module Docscribe
50
50
 
51
51
  # Get behavioral description for a method.
52
52
  #
53
- # @param [Object] node def or defs node
54
- # @param [Object] method_name
53
+ # @param [Hash<Symbol, Boolean>] node def or defs node
54
+ # @param [Symbol?] method_name
55
55
  # @return [String?]
56
56
  def infer_behavior_description(node, method_name)
57
57
  body = extract_body(node)
@@ -63,8 +63,8 @@ module Docscribe
63
63
 
64
64
  # Extract method body from def/defs node.
65
65
  #
66
- # @param [Object] node def or defs node
67
- # @return [Object?]
66
+ # @param [Parser::AST::Node] node def or defs node
67
+ # @return [Parser::AST::Node?]
68
68
  def extract_body(node)
69
69
  return nil unless node.is_a?(Parser::AST::Node)
70
70