spoom 1.6.3 → 1.7.0

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.
data/rbi/spoom.rbi CHANGED
@@ -6,11 +6,8 @@
6
6
 
7
7
  module Spoom
8
8
  class << self
9
- sig { params(ruby: ::String, file: ::String).returns(::Prism::Node) }
10
- def parse_ruby(ruby, file:); end
11
-
12
- sig { params(ruby: ::String, file: ::String).returns([::Prism::Node, T::Array[::Prism::Comment]]) }
13
- def parse_ruby_with_comments(ruby, file:); end
9
+ sig { params(ruby: ::String, file: ::String, comments: T::Boolean).returns(::Prism::Node) }
10
+ def parse_ruby(ruby, file:, comments: T.unsafe(nil)); end
14
11
  end
15
12
  end
16
13
 
@@ -1133,6 +1130,7 @@ end
1133
1130
 
1134
1131
  Spoom::Deadcode::Plugins::ActiveRecord::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
1135
1132
  Spoom::Deadcode::Plugins::ActiveRecord::CALLBACKS = T.let(T.unsafe(nil), Array)
1133
+ Spoom::Deadcode::Plugins::ActiveRecord::CALLBACK_CONDITIONS = T.let(T.unsafe(nil), Array)
1136
1134
  Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Array)
1137
1135
 
1138
1136
  class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base
@@ -2100,8 +2098,8 @@ class Spoom::Model::AttrReader < ::Spoom::Model::Attr; end
2100
2098
  class Spoom::Model::AttrWriter < ::Spoom::Model::Attr; end
2101
2099
 
2102
2100
  class Spoom::Model::Builder < ::Spoom::Model::NamespaceVisitor
2103
- sig { params(model: ::Spoom::Model, file: ::String, comments: T::Array[::Prism::Comment]).void }
2104
- def initialize(model, file, comments:); end
2101
+ sig { params(model: ::Spoom::Model, file: ::String).void }
2102
+ def initialize(model, file); end
2105
2103
 
2106
2104
  sig { override.params(node: ::Prism::CallNode).void }
2107
2105
  def visit_call_node(node); end
@@ -2554,117 +2552,42 @@ class Spoom::Printer
2554
2552
  def printt; end
2555
2553
  end
2556
2554
 
2557
- Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2558
- module Spoom::Sorbet; end
2559
-
2560
- class Spoom::Sorbet::Assertions
2561
- class << self
2562
- sig { params(ruby_contents: ::String, file: ::String).returns(::String) }
2563
- def rbi_to_rbs(ruby_contents, file:); end
2564
-
2565
- private
2566
-
2567
- sig { params(ruby_contents: ::String, file: ::String).returns(T::Array[::Spoom::Sorbet::Assertions::AssignNode]) }
2568
- def collect_assigns(ruby_contents, file:); end
2569
-
2570
- sig { params(assign: ::Spoom::Sorbet::Assertions::AssignNode).returns(::String) }
2571
- def dedent_value(assign); end
2572
- end
2573
- end
2555
+ module Spoom::RBS; end
2556
+ class Spoom::RBS::Annotations < ::Spoom::RBS::Comment; end
2574
2557
 
2575
- class Spoom::Sorbet::Assertions::AssignNode
2576
- sig do
2577
- params(
2578
- node: T.any(::Prism::ClassVariableAndWriteNode, ::Prism::ClassVariableOperatorWriteNode, ::Prism::ClassVariableOrWriteNode, ::Prism::ClassVariableWriteNode, ::Prism::ConstantAndWriteNode, ::Prism::ConstantOperatorWriteNode, ::Prism::ConstantOrWriteNode, ::Prism::ConstantPathAndWriteNode, ::Prism::ConstantPathOperatorWriteNode, ::Prism::ConstantPathOrWriteNode, ::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode, ::Prism::GlobalVariableAndWriteNode, ::Prism::GlobalVariableOperatorWriteNode, ::Prism::GlobalVariableOrWriteNode, ::Prism::GlobalVariableWriteNode, ::Prism::InstanceVariableAndWriteNode, ::Prism::InstanceVariableOperatorWriteNode, ::Prism::InstanceVariableOrWriteNode, ::Prism::InstanceVariableWriteNode, ::Prism::LocalVariableAndWriteNode, ::Prism::LocalVariableOperatorWriteNode, ::Prism::LocalVariableOrWriteNode, ::Prism::LocalVariableWriteNode),
2579
- operator_loc: ::Prism::Location,
2580
- value: ::Prism::Node,
2581
- type: ::Prism::Node
2582
- ).void
2583
- end
2584
- def initialize(node, operator_loc, value, type); end
2585
-
2586
- sig do
2587
- returns(T.any(::Prism::ClassVariableAndWriteNode, ::Prism::ClassVariableOperatorWriteNode, ::Prism::ClassVariableOrWriteNode, ::Prism::ClassVariableWriteNode, ::Prism::ConstantAndWriteNode, ::Prism::ConstantOperatorWriteNode, ::Prism::ConstantOrWriteNode, ::Prism::ConstantPathAndWriteNode, ::Prism::ConstantPathOperatorWriteNode, ::Prism::ConstantPathOrWriteNode, ::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode, ::Prism::GlobalVariableAndWriteNode, ::Prism::GlobalVariableOperatorWriteNode, ::Prism::GlobalVariableOrWriteNode, ::Prism::GlobalVariableWriteNode, ::Prism::InstanceVariableAndWriteNode, ::Prism::InstanceVariableOperatorWriteNode, ::Prism::InstanceVariableOrWriteNode, ::Prism::InstanceVariableWriteNode, ::Prism::LocalVariableAndWriteNode, ::Prism::LocalVariableOperatorWriteNode, ::Prism::LocalVariableOrWriteNode, ::Prism::LocalVariableWriteNode))
2588
- end
2589
- def node; end
2558
+ class Spoom::RBS::Comment
2559
+ sig { params(string: ::String, location: ::Prism::Location).void }
2560
+ def initialize(string, location); end
2590
2561
 
2591
2562
  sig { returns(::Prism::Location) }
2592
- def operator_loc; end
2563
+ def location; end
2593
2564
 
2594
2565
  sig { returns(::String) }
2595
- def rbs_type; end
2596
-
2597
- def type; end
2598
-
2599
- sig { returns(::Prism::Node) }
2600
- def value; end
2566
+ def string; end
2601
2567
  end
2602
2568
 
2603
- Spoom::Sorbet::Assertions::AssignType = T.type_alias { T.any(::Prism::ClassVariableAndWriteNode, ::Prism::ClassVariableOperatorWriteNode, ::Prism::ClassVariableOrWriteNode, ::Prism::ClassVariableWriteNode, ::Prism::ConstantAndWriteNode, ::Prism::ConstantOperatorWriteNode, ::Prism::ConstantOrWriteNode, ::Prism::ConstantPathAndWriteNode, ::Prism::ConstantPathOperatorWriteNode, ::Prism::ConstantPathOrWriteNode, ::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode, ::Prism::GlobalVariableAndWriteNode, ::Prism::GlobalVariableOperatorWriteNode, ::Prism::GlobalVariableOrWriteNode, ::Prism::GlobalVariableWriteNode, ::Prism::InstanceVariableAndWriteNode, ::Prism::InstanceVariableOperatorWriteNode, ::Prism::InstanceVariableOrWriteNode, ::Prism::InstanceVariableWriteNode, ::Prism::LocalVariableAndWriteNode, ::Prism::LocalVariableOperatorWriteNode, ::Prism::LocalVariableOrWriteNode, ::Prism::LocalVariableWriteNode) }
2604
-
2605
- class Spoom::Sorbet::Assertions::Locator < ::Spoom::Visitor
2569
+ class Spoom::RBS::Comments
2606
2570
  sig { void }
2607
2571
  def initialize; end
2608
2572
 
2609
- sig { returns(T::Array[::Spoom::Sorbet::Assertions::AssignNode]) }
2610
- def assigns; end
2611
-
2612
- sig { params(node: ::Prism::Node).returns(T::Boolean) }
2613
- def contains_heredoc?(node); end
2614
-
2615
- sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2616
- def t?(node); end
2617
-
2618
- sig { params(node: ::Prism::CallNode).returns(T::Boolean) }
2619
- def t_annotation?(node); end
2620
-
2621
- sig do
2622
- params(
2623
- node: T.any(::Prism::ClassVariableAndWriteNode, ::Prism::ClassVariableOperatorWriteNode, ::Prism::ClassVariableOrWriteNode, ::Prism::ClassVariableWriteNode, ::Prism::ConstantAndWriteNode, ::Prism::ConstantOperatorWriteNode, ::Prism::ConstantOrWriteNode, ::Prism::ConstantPathAndWriteNode, ::Prism::ConstantPathOperatorWriteNode, ::Prism::ConstantPathOrWriteNode, ::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode, ::Prism::GlobalVariableAndWriteNode, ::Prism::GlobalVariableOperatorWriteNode, ::Prism::GlobalVariableOrWriteNode, ::Prism::GlobalVariableWriteNode, ::Prism::InstanceVariableAndWriteNode, ::Prism::InstanceVariableOperatorWriteNode, ::Prism::InstanceVariableOrWriteNode, ::Prism::InstanceVariableWriteNode, ::Prism::LocalVariableAndWriteNode, ::Prism::LocalVariableOperatorWriteNode, ::Prism::LocalVariableOrWriteNode, ::Prism::LocalVariableWriteNode)
2624
- ).void
2625
- end
2626
- def visit_assign(node); end
2627
-
2628
- def visit_class_variable_and_write_node(*args, **_arg1, &blk); end
2629
- def visit_class_variable_operator_write_node(*args, **_arg1, &blk); end
2630
- def visit_class_variable_or_write_node(*args, **_arg1, &blk); end
2631
- def visit_class_variable_write_node(*args, **_arg1, &blk); end
2632
- def visit_constant_and_write_node(*args, **_arg1, &blk); end
2633
- def visit_constant_operator_write_node(*args, **_arg1, &blk); end
2634
- def visit_constant_or_write_node(*args, **_arg1, &blk); end
2635
- def visit_constant_path_and_write_node(*args, **_arg1, &blk); end
2636
- def visit_constant_path_operator_write_node(*args, **_arg1, &blk); end
2637
- def visit_constant_path_or_write_node(*args, **_arg1, &blk); end
2638
- def visit_constant_path_write_node(*args, **_arg1, &blk); end
2639
- def visit_constant_write_node(*args, **_arg1, &blk); end
2640
- def visit_global_variable_and_write_node(*args, **_arg1, &blk); end
2641
- def visit_global_variable_operator_write_node(*args, **_arg1, &blk); end
2642
- def visit_global_variable_or_write_node(*args, **_arg1, &blk); end
2643
- def visit_global_variable_write_node(*args, **_arg1, &blk); end
2644
- def visit_instance_variable_and_write_node(*args, **_arg1, &blk); end
2645
- def visit_instance_variable_operator_write_node(*args, **_arg1, &blk); end
2646
- def visit_instance_variable_or_write_node(*args, **_arg1, &blk); end
2647
- def visit_instance_variable_write_node(*args, **_arg1, &blk); end
2648
- def visit_local_variable_and_write_node(*args, **_arg1, &blk); end
2649
- def visit_local_variable_operator_write_node(*args, **_arg1, &blk); end
2650
- def visit_local_variable_or_write_node(*args, **_arg1, &blk); end
2651
- def visit_local_variable_write_node(*args, **_arg1, &blk); end
2652
- def visit_multi_write_node(*args, **_arg1, &blk); end
2653
- end
2654
-
2655
- Spoom::Sorbet::Assertions::Locator::ANNOTATION_METHODS = T.let(T.unsafe(nil), Array)
2656
-
2657
- class Spoom::Sorbet::Assertions::Locator::HeredocVisitor < ::Spoom::Visitor
2658
- sig { void }
2659
- def initialize; end
2573
+ sig { returns(T::Array[::Spoom::RBS::Annotations]) }
2574
+ def annotations; end
2660
2575
 
2661
2576
  sig { returns(T::Boolean) }
2662
- def contains_heredoc; end
2577
+ def empty?; end
2663
2578
 
2664
- sig { override.params(node: T.nilable(::Prism::Node)).void }
2665
- def visit(node); end
2579
+ sig { returns(T::Array[::Spoom::RBS::Signature]) }
2580
+ def signatures; end
2666
2581
  end
2667
2582
 
2583
+ module Spoom::RBS::ExtractRBSComments
2584
+ sig { params(node: ::Prism::Node).returns(::Spoom::RBS::Comments) }
2585
+ def node_rbs_comments(node); end
2586
+ end
2587
+
2588
+ class Spoom::RBS::Signature < ::Spoom::RBS::Comment; end
2589
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2590
+ module Spoom::Sorbet; end
2668
2591
  Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2669
2592
  Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2670
2593
 
@@ -2859,87 +2782,250 @@ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
2859
2782
  Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
2860
2783
  Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
2861
2784
 
2862
- class Spoom::Sorbet::Sigs
2785
+ module Spoom::Sorbet::Translate
2863
2786
  class << self
2864
- sig { params(ruby_contents: ::String, positional_names: T::Boolean).returns(::String) }
2865
- def rbi_to_rbs(ruby_contents, positional_names: T.unsafe(nil)); end
2787
+ sig { params(ruby_contents: ::String, file: ::String).returns(::String) }
2788
+ def rbs_comments_to_sorbet_sigs(ruby_contents, file:); end
2789
+
2790
+ sig { params(ruby_contents: ::String, file: ::String).returns(::String) }
2791
+ def sorbet_assertions_to_rbs_comments(ruby_contents, file:); end
2792
+
2793
+ sig { params(ruby_contents: ::String, file: ::String, positional_names: T::Boolean).returns(::String) }
2794
+ def sorbet_sigs_to_rbs_comments(ruby_contents, file:, positional_names: T.unsafe(nil)); end
2866
2795
 
2867
- sig { params(ruby_contents: ::String).returns(::String) }
2868
- def rbs_to_rbi(ruby_contents); end
2796
+ sig { params(ruby_contents: ::String, file: ::String).returns(::String) }
2797
+ def strip_sorbet_sigs(ruby_contents, file:); end
2798
+ end
2799
+ end
2869
2800
 
2870
- sig { params(ruby_contents: ::String).returns(::String) }
2871
- def strip(ruby_contents); end
2801
+ class Spoom::Sorbet::Translate::Error < ::Spoom::Error; end
2872
2802
 
2873
- private
2803
+ class Spoom::Sorbet::Translate::RBSCommentsToSorbetSigs < ::Spoom::Sorbet::Translate::Translator
2804
+ include ::Spoom::RBS::ExtractRBSComments
2874
2805
 
2875
- sig { params(ruby_contents: ::String).returns(T::Array[[::RBI::RBSComment, T.any(::RBI::Attr, ::RBI::Method)]]) }
2876
- def collect_rbs_comments(ruby_contents); end
2806
+ sig { override.params(node: ::Prism::CallNode).void }
2807
+ def visit_call_node(node); end
2808
+
2809
+ sig { override.params(node: ::Prism::ClassNode).void }
2810
+ def visit_class_node(node); end
2811
+
2812
+ sig { override.params(node: ::Prism::DefNode).void }
2813
+ def visit_def_node(node); end
2814
+
2815
+ sig { override.params(node: ::Prism::ModuleNode).void }
2816
+ def visit_module_node(node); end
2877
2817
 
2878
- sig { params(ruby_contents: ::String).returns(T::Array[[::RBI::Sig, T.any(::RBI::Attr, ::RBI::Method)]]) }
2879
- def collect_sorbet_sigs(ruby_contents); end
2818
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
2819
+ def visit_singleton_class_node(node); end
2820
+
2821
+ private
2822
+
2823
+ sig do
2824
+ params(
2825
+ node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode),
2826
+ constant_regex: ::Regexp
2827
+ ).returns(T::Boolean)
2880
2828
  end
2829
+ def already_extends?(node, constant_regex); end
2830
+
2831
+ sig { params(node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode)).void }
2832
+ def apply_class_annotations(node); end
2833
+
2834
+ sig { params(annotations: T::Array[::Spoom::RBS::Annotations], sig: ::RBI::Sig).void }
2835
+ def apply_member_annotations(annotations, sig); end
2836
+
2837
+ sig { params(node: ::Prism::CallNode).void }
2838
+ def visit_attr(node); end
2881
2839
  end
2882
2840
 
2883
- class Spoom::Sorbet::Sigs::Error < ::Spoom::Error; end
2841
+ class Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments < ::Spoom::Sorbet::Translate::Translator
2842
+ sig { override.params(node: ::Prism::CallNode).void }
2843
+ def visit_call_node(node); end
2844
+
2845
+ private
2884
2846
 
2885
- class Spoom::Sorbet::Sigs::RBIToRBSTranslator
2886
- class << self
2887
- sig do
2888
- params(
2889
- sig: ::RBI::Sig,
2890
- node: T.any(::RBI::Attr, ::RBI::Method),
2891
- positional_names: T::Boolean
2892
- ).returns(::String)
2893
- end
2894
- def translate(sig, node, positional_names: T.unsafe(nil)); end
2847
+ sig { params(node: ::Prism::Node).returns(T::Boolean) }
2848
+ def at_end_of_line?(node); end
2895
2849
 
2896
- private
2850
+ sig { params(call: ::Prism::CallNode).void }
2851
+ def build_rbs_annotation(call); end
2897
2852
 
2898
- sig { params(sig: ::RBI::Sig, node: ::RBI::Attr, positional_names: T::Boolean).returns(::String) }
2899
- def translate_attr_sig(sig, node, positional_names: T.unsafe(nil)); end
2853
+ sig { params(assign: ::Prism::Node, value: ::Prism::Node).returns(::String) }
2854
+ def dedent_value(assign, value); end
2900
2855
 
2901
- sig { params(sig: ::RBI::Sig, node: ::RBI::Method, positional_names: T::Boolean).returns(::String) }
2902
- def translate_method_sig(sig, node, positional_names: T.unsafe(nil)); end
2903
- end
2856
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2857
+ def t?(node); end
2858
+
2859
+ sig { params(node: ::Prism::CallNode).returns(T::Boolean) }
2860
+ def t_annotation?(node); end
2904
2861
  end
2905
2862
 
2906
- class Spoom::Sorbet::Sigs::RBSToRBITranslator
2907
- class << self
2908
- sig { params(comment: ::RBI::RBSComment, node: T.any(::RBI::Attr, ::RBI::Method)).returns(T.nilable(::String)) }
2909
- def translate(comment, node); end
2863
+ Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments::LINE_BREAK = T.let(T.unsafe(nil), Integer)
2910
2864
 
2911
- private
2865
+ class Spoom::Sorbet::Translate::SorbetSigsToRBSComments < ::Spoom::Sorbet::Translate::Translator
2866
+ sig { params(ruby_contents: ::String, file: ::String, positional_names: T::Boolean).void }
2867
+ def initialize(ruby_contents, file:, positional_names:); end
2868
+
2869
+ sig { override.params(node: ::Prism::CallNode).void }
2870
+ def visit_call_node(node); end
2871
+
2872
+ sig { override.params(node: ::Prism::ClassNode).void }
2873
+ def visit_class_node(node); end
2912
2874
 
2913
- sig { params(comment: ::RBI::RBSComment, node: ::RBI::Attr).returns(::String) }
2914
- def translate_attr_sig(comment, node); end
2875
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
2876
+ def visit_constant_write_node(node); end
2877
+
2878
+ sig { override.params(node: ::Prism::DefNode).void }
2879
+ def visit_def_node(node); end
2880
+
2881
+ sig { override.params(node: ::Prism::ModuleNode).void }
2882
+ def visit_module_node(node); end
2883
+
2884
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
2885
+ def visit_singleton_class_node(node); end
2915
2886
 
2916
- sig { params(rbs_comment: ::RBI::RBSComment, node: ::RBI::Method).returns(::String) }
2917
- def translate_method_sig(rbs_comment, node); end
2887
+ private
2888
+
2889
+ sig { params(sigs: T::Array[[::Prism::CallNode, ::RBI::Sig]]).void }
2890
+ def apply_member_annotations(sigs); end
2891
+
2892
+ sig { params(node: ::Prism::ConstantWriteNode).returns(::String) }
2893
+ def build_type_member_string(node); end
2894
+
2895
+ sig { params(node: ::Prism::CallNode).void }
2896
+ def visit_attr(node); end
2897
+
2898
+ sig { params(node: ::Prism::CallNode).void }
2899
+ def visit_class_annotation(node); end
2900
+
2901
+ sig { params(node: ::Prism::CallNode).void }
2902
+ def visit_extend(node); end
2903
+
2904
+ sig do
2905
+ params(
2906
+ node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode),
2907
+ block: T.proc.void
2908
+ ).void
2918
2909
  end
2910
+ def visit_scope(node, &block); end
2911
+
2912
+ sig { params(node: ::Prism::CallNode).void }
2913
+ def visit_sig(node); end
2914
+ end
2915
+
2916
+ class Spoom::Sorbet::Translate::StripSorbetSigs < ::Spoom::Sorbet::Translate::Translator
2917
+ sig { override.params(node: ::Prism::CallNode).void }
2918
+ def visit_call_node(node); end
2919
+ end
2920
+
2921
+ class Spoom::Sorbet::Translate::Translator < ::Spoom::Visitor
2922
+ abstract!
2923
+
2924
+ sig { params(ruby_contents: ::String, file: ::String).void }
2925
+ def initialize(ruby_contents, file:); end
2926
+
2927
+ sig { returns(::String) }
2928
+ def rewrite; end
2929
+
2930
+ private
2931
+
2932
+ sig { params(offset: ::Integer).returns(::Integer) }
2933
+ def adjust_to_line_end(offset); end
2934
+
2935
+ sig { params(offset: ::Integer).returns(::Integer) }
2936
+ def adjust_to_line_start(offset); end
2937
+
2938
+ sig { params(offset: ::Integer).returns(::Integer) }
2939
+ def adjust_to_new_line(offset); end
2940
+
2941
+ sig { params(node: ::Prism::CallNode).returns(T::Boolean) }
2942
+ def sorbet_sig?(node); end
2919
2943
  end
2920
2944
 
2921
- class Spoom::Sorbet::Sigs::Scanner
2922
- sig { params(source: ::String).void }
2923
- def initialize(source); end
2945
+ module Spoom::Source; end
2946
+
2947
+ class Spoom::Source::Delete < ::Spoom::Source::Edit
2948
+ sig { params(from: ::Integer, to: ::Integer).void }
2949
+ def initialize(from, to); end
2950
+
2951
+ sig { override.params(bytes: T::Array[T.untyped]).void }
2952
+ def apply(bytes); end
2953
+
2954
+ sig { returns(::Integer) }
2955
+ def from; end
2956
+
2957
+ sig { override.returns([::Integer, ::Integer]) }
2958
+ def range; end
2959
+
2960
+ def to; end
2924
2961
 
2925
- sig { params(line: ::Integer, character: ::Integer).returns(::Integer) }
2926
- def find_char_position(line, character); end
2962
+ sig { override.returns(::String) }
2963
+ def to_s; end
2927
2964
  end
2928
2965
 
2929
- Spoom::Sorbet::Sigs::Scanner::LINE_BREAK = T.let(T.unsafe(nil), Integer)
2966
+ class Spoom::Source::Edit
2967
+ abstract!
2968
+
2969
+ sig { abstract.params(bytes: T::Array[::Integer]).void }
2970
+ def apply(bytes); end
2971
+
2972
+ sig { abstract.returns([::Integer, ::Integer]) }
2973
+ def range; end
2974
+ end
2975
+
2976
+ class Spoom::Source::Insert < ::Spoom::Source::Edit
2977
+ sig { params(position: ::Integer, text: ::String).void }
2978
+ def initialize(position, text); end
2979
+
2980
+ sig { override.params(bytes: T::Array[::Integer]).void }
2981
+ def apply(bytes); end
2982
+
2983
+ sig { returns(::Integer) }
2984
+ def position; end
2985
+
2986
+ sig { override.returns([::Integer, ::Integer]) }
2987
+ def range; end
2930
2988
 
2931
- class Spoom::Sorbet::Sigs::SigsLocator < ::RBI::Visitor
2989
+ sig { returns(::String) }
2990
+ def text; end
2991
+
2992
+ sig { override.returns(::String) }
2993
+ def to_s; end
2994
+ end
2995
+
2996
+ class Spoom::Source::PositionError < ::Spoom::Error; end
2997
+
2998
+ class Spoom::Source::Replace < ::Spoom::Source::Edit
2999
+ sig { params(from: ::Integer, to: ::Integer, text: ::String).void }
3000
+ def initialize(from, to, text); end
3001
+
3002
+ sig { override.params(bytes: T::Array[::Integer]).void }
3003
+ def apply(bytes); end
3004
+
3005
+ sig { returns(::Integer) }
3006
+ def from; end
3007
+
3008
+ sig { override.returns([::Integer, ::Integer]) }
3009
+ def range; end
3010
+
3011
+ sig { returns(::String) }
3012
+ def text; end
3013
+
3014
+ def to; end
3015
+
3016
+ sig { override.returns(::String) }
3017
+ def to_s; end
3018
+ end
3019
+
3020
+ class Spoom::Source::Rewriter
2932
3021
  sig { void }
2933
3022
  def initialize; end
2934
3023
 
2935
- sig { returns(T::Array[[::RBI::RBSComment, T.any(::RBI::Attr, ::RBI::Method)]]) }
2936
- def rbs_comments; end
3024
+ sig { params(other: ::Spoom::Source::Edit).void }
3025
+ def <<(other); end
2937
3026
 
2938
- sig { returns(T::Array[[::RBI::Sig, T.any(::RBI::Attr, ::RBI::Method)]]) }
2939
- def sigs; end
2940
-
2941
- sig { override.params(node: T.nilable(::RBI::Node)).void }
2942
- def visit(node); end
3027
+ sig { params(bytes: T::Array[::Integer]).void }
3028
+ def rewrite!(bytes); end
2943
3029
  end
2944
3030
 
2945
3031
  class Spoom::Timeline
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Terrasa
@@ -107,6 +107,20 @@ dependencies:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: 0.3.3
110
+ - !ruby/object:Gem::Dependency
111
+ name: rbs
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 4.0.0.dev.4
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 4.0.0.dev.4
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: rexml
112
126
  requirement: !ruby/object:Gem::Requirement
@@ -226,8 +240,8 @@ files:
226
240
  - lib/spoom/parse.rb
227
241
  - lib/spoom/poset.rb
228
242
  - lib/spoom/printer.rb
243
+ - lib/spoom/rbs.rb
229
244
  - lib/spoom/sorbet.rb
230
- - lib/spoom/sorbet/assertions.rb
231
245
  - lib/spoom/sorbet/config.rb
232
246
  - lib/spoom/sorbet/errors.rb
233
247
  - lib/spoom/sorbet/lsp.rb
@@ -236,7 +250,14 @@ files:
236
250
  - lib/spoom/sorbet/lsp/structures.rb
237
251
  - lib/spoom/sorbet/metrics.rb
238
252
  - lib/spoom/sorbet/sigils.rb
239
- - lib/spoom/sorbet/sigs.rb
253
+ - lib/spoom/sorbet/translate.rb
254
+ - lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb
255
+ - lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb
256
+ - lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb
257
+ - lib/spoom/sorbet/translate/strip_sorbet_sigs.rb
258
+ - lib/spoom/sorbet/translate/translator.rb
259
+ - lib/spoom/source.rb
260
+ - lib/spoom/source/rewriter.rb
240
261
  - lib/spoom/timeline.rb
241
262
  - lib/spoom/version.rb
242
263
  - lib/spoom/visitor.rb
@@ -263,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
284
  - !ruby/object:Gem::Version
264
285
  version: '0'
265
286
  requirements: []
266
- rubygems_version: 3.6.8
287
+ rubygems_version: 3.6.9
267
288
  specification_version: 4
268
289
  summary: Useful tools for Sorbet enthusiasts.
269
290
  test_files: []