lunchmoney 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.mdlrc +1 -0
  4. data/Gemfile.lock +36 -37
  5. data/README.md +2 -0
  6. data/lib/lunchmoney/objects/crypto.rb +6 -1
  7. data/lib/lunchmoney/version.rb +1 -1
  8. data/sorbet/rbi/annotations/activesupport.rbi +11 -0
  9. data/sorbet/rbi/gems/{activesupport@7.1.3.rbi → activesupport@7.1.3.2.rbi} +23 -23
  10. data/sorbet/rbi/gems/dotenv@3.1.0.rbi +300 -0
  11. data/sorbet/rbi/gems/{i18n@1.14.1.rbi → i18n@1.14.4.rbi} +48 -43
  12. data/sorbet/rbi/gems/{minitest@5.22.2.rbi → minitest@5.22.3.rbi} +19 -18
  13. data/sorbet/rbi/gems/{prism@0.19.0.rbi → prism@0.24.0.rbi} +8266 -7109
  14. data/sorbet/rbi/gems/{rack@3.0.8.rbi → rack@3.0.10.rbi} +83 -83
  15. data/sorbet/rbi/gems/{rbi@0.1.6.rbi → rbi@0.1.9.rbi} +114 -13
  16. data/sorbet/rbi/gems/{rubocop-ast@1.30.0.rbi → rubocop-ast@1.31.2.rbi} +61 -50
  17. data/sorbet/rbi/gems/{rubocop-minitest@0.34.5.rbi → rubocop-minitest@0.35.0.rbi} +34 -0
  18. data/sorbet/rbi/gems/{rubocop-rails@2.23.1.rbi → rubocop-rails@2.24.1.rbi} +159 -147
  19. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.7.rbi → rubocop-sorbet@0.8.0.rbi} +24 -42
  20. data/sorbet/rbi/gems/{rubocop@1.60.2.rbi → rubocop@1.62.1.rbi} +807 -646
  21. data/sorbet/rbi/gems/{tapioca@0.12.0.rbi → tapioca@0.13.1.rbi} +83 -62
  22. data/sorbet/rbi/gems/{thor@1.3.0.rbi → thor@1.3.1.rbi} +89 -50
  23. data/sorbet/rbi/gems/{webmock@3.20.0.rbi → webmock@3.23.0.rbi} +25 -25
  24. data/sorbet/rbi/gems/{yard@0.9.34.rbi → yard@0.9.36.rbi} +194 -58
  25. data/sorbet/tapioca/require.rb +1 -0
  26. metadata +22 -21
  27. data/sorbet/rbi/gems/dotenv@2.8.1.rbi +0 -234
  28. /data/sorbet/rbi/gems/{bigdecimal@3.1.6.rbi → bigdecimal@3.1.7.rbi} +0 -0
  29. /data/sorbet/rbi/gems/{drb@2.2.0.rbi → drb@2.2.1.rbi} +0 -0
  30. /data/sorbet/rbi/gems/{rubocop-shopify@2.14.0.rbi → rubocop-shopify@2.15.1.rbi} +0 -0
@@ -1157,6 +1157,10 @@ class RBI::Node
1157
1157
  sig { params(node: ::RBI::Node).void }
1158
1158
  def replace(node); end
1159
1159
 
1160
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#94
1161
+ sig { params(version: ::Gem::Version).returns(T::Boolean) }
1162
+ def satisfies_version?(version); end
1163
+
1160
1164
  # source://rbi//lib/rbi/printer.rb#162
1161
1165
  sig { params(indent: ::Integer, print_locs: T::Boolean, max_line_length: T.nilable(::Integer)).returns(::String) }
1162
1166
  def string(indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
@@ -1192,6 +1196,10 @@ class RBI::NodeWithComments < ::RBI::Node
1192
1196
  # source://rbi//lib/rbi/printer.rb#188
1193
1197
  sig { override.returns(T::Boolean) }
1194
1198
  def oneline?; end
1199
+
1200
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#104
1201
+ sig { returns(T::Array[::Gem::Requirement]) }
1202
+ def version_requirements; end
1195
1203
  end
1196
1204
 
1197
1205
  # source://rbi//lib/rbi/model.rb#601
@@ -1736,6 +1744,78 @@ class RBI::Rewriters::Deannotate < ::RBI::Visitor
1736
1744
  def deannotate_node(node); end
1737
1745
  end
1738
1746
 
1747
+ # Take a gem version and filter out all RBI that is not relevant to that version based on @version annotations
1748
+ # in comments. As an example:
1749
+ #
1750
+ # ~~~rb
1751
+ # tree = Parser.parse_string(<<~RBI)
1752
+ # class Foo
1753
+ # # @version > 0.3.0
1754
+ # def bar
1755
+ # end
1756
+ #
1757
+ # # @version <= 0.3.0
1758
+ # def bar(arg1)
1759
+ # end
1760
+ # end
1761
+ # RBI
1762
+ #
1763
+ # Rewriters::FilterVersions.filter(tree, Gem::Version.new("0.3.1"))
1764
+ #
1765
+ # assert_equal(<<~RBI, tree.string)
1766
+ # class Foo
1767
+ # # @version > 0.3.0
1768
+ # def bar
1769
+ # end
1770
+ # end
1771
+ # RBI
1772
+ # ~~~
1773
+ #
1774
+ # Supported operators:
1775
+ # - equals `=`
1776
+ # - not equals `!=`
1777
+ # - greater than `>`
1778
+ # - greater than or equal to `>=`
1779
+ # - less than `<`
1780
+ # - less than or equal to `<=`
1781
+ # - pessimistic or twiddle-wakka`~>`
1782
+ #
1783
+ # And/or logic:
1784
+ # - "And" logic: put multiple versions on the same line
1785
+ # - e.g. `@version > 0.3.0, <1.0.0` means version must be greater than 0.3.0 AND less than 1.0.0
1786
+ # - "Or" logic: put multiple versions on subsequent lines
1787
+ # - e.g. the following means version must be less than 0.3.0 OR greater than 1.0.0
1788
+ # ```
1789
+ # # @version < 0.3.0
1790
+ # # @version > 1.0.0
1791
+ # ```
1792
+ # Prerelease versions:
1793
+ # - Prerelease versions are considered less than their non-prerelease counterparts
1794
+ # - e.g. `0.4.0-prerelease` is less than `0.4.0`
1795
+ #
1796
+ # RBI with no versions:
1797
+ # - RBI with no version annotations are automatically counted towards ALL versions
1798
+ #
1799
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#57
1800
+ class RBI::Rewriters::FilterVersions < ::RBI::Visitor
1801
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#73
1802
+ sig { params(version: ::Gem::Version).void }
1803
+ def initialize(version); end
1804
+
1805
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#79
1806
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
1807
+ def visit(node); end
1808
+
1809
+ class << self
1810
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#66
1811
+ sig { params(tree: ::RBI::Tree, version: ::Gem::Version).void }
1812
+ def filter(tree, version); end
1813
+ end
1814
+ end
1815
+
1816
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#60
1817
+ RBI::Rewriters::FilterVersions::VERSION_PREFIX = T.let(T.unsafe(nil), String)
1818
+
1739
1819
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#6
1740
1820
  class RBI::Rewriters::GroupNodes < ::RBI::Visitor
1741
1821
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#10
@@ -1820,7 +1900,7 @@ class RBI::Rewriters::Merge::Conflict < ::T::Struct
1820
1900
  def to_s; end
1821
1901
 
1822
1902
  class << self
1823
- # source://sorbet-runtime/0.5.11156/lib/types/struct.rb#13
1903
+ # source://sorbet-runtime/0.5.11305/lib/types/struct.rb#13
1824
1904
  def inherited(s); end
1825
1905
  end
1826
1906
  end
@@ -2037,7 +2117,7 @@ class RBI::Rewriters::RemoveKnownDefinitions::Operation < ::T::Struct
2037
2117
  def to_s; end
2038
2118
 
2039
2119
  class << self
2040
- # source://sorbet-runtime/0.5.11156/lib/types/struct.rb#13
2120
+ # source://sorbet-runtime/0.5.11305/lib/types/struct.rb#13
2041
2121
  def inherited(s); end
2042
2122
  end
2043
2123
  end
@@ -2670,7 +2750,7 @@ class RBI::Tree < ::RBI::NodeWithComments
2670
2750
  sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
2671
2751
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
2672
2752
 
2673
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#38
2753
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#38
2674
2754
  sig do
2675
2755
  params(
2676
2756
  name: ::String,
@@ -2680,19 +2760,19 @@ class RBI::Tree < ::RBI::NodeWithComments
2680
2760
  end
2681
2761
  def create_class(name, superclass_name: T.unsafe(nil), &block); end
2682
2762
 
2683
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#45
2763
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#45
2684
2764
  sig { params(name: ::String, value: ::String).void }
2685
2765
  def create_constant(name, value:); end
2686
2766
 
2687
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#55
2767
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#55
2688
2768
  sig { params(name: ::String).void }
2689
2769
  def create_extend(name); end
2690
2770
 
2691
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#50
2771
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#50
2692
2772
  sig { params(name: ::String).void }
2693
2773
  def create_include(name); end
2694
2774
 
2695
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#89
2775
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#89
2696
2776
  sig do
2697
2777
  params(
2698
2778
  name: ::String,
@@ -2705,19 +2785,36 @@ class RBI::Tree < ::RBI::NodeWithComments
2705
2785
  end
2706
2786
  def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
2707
2787
 
2708
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#60
2788
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#112
2789
+ sig do
2790
+ params(
2791
+ name: ::String,
2792
+ sigs: T::Array[::RBI::Sig],
2793
+ parameters: T::Array[::RBI::Param],
2794
+ class_method: T::Boolean,
2795
+ visibility: ::RBI::Visibility,
2796
+ comments: T::Array[::RBI::Comment]
2797
+ ).void
2798
+ end
2799
+ def create_method_with_sigs(name, sigs:, parameters: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
2800
+
2801
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#60
2709
2802
  sig { params(name: ::String).void }
2710
2803
  def create_mixes_in_class_methods(name); end
2711
2804
 
2712
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#25
2805
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#25
2713
2806
  sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
2714
2807
  def create_module(name, &block); end
2715
2808
 
2716
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#9
2809
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#9
2717
2810
  sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
2718
2811
  def create_path(constant, &block); end
2719
2812
 
2720
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#74
2813
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#133
2814
+ sig { params(parameters: T::Array[::RBI::TypedParam], return_type: ::String).returns(::RBI::Sig) }
2815
+ def create_sig(parameters: T.unsafe(nil), return_type: T.unsafe(nil)); end
2816
+
2817
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#74
2721
2818
  sig do
2722
2819
  params(
2723
2820
  name: ::String,
@@ -2738,6 +2835,10 @@ class RBI::Tree < ::RBI::NodeWithComments
2738
2835
  sig { returns(T::Boolean) }
2739
2836
  def empty?; end
2740
2837
 
2838
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#118
2839
+ sig { params(version: ::Gem::Version).void }
2840
+ def filter_versions!(version); end
2841
+
2741
2842
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#38
2742
2843
  sig { void }
2743
2844
  def group_nodes!; end
@@ -2779,11 +2880,11 @@ class RBI::Tree < ::RBI::NodeWithComments
2779
2880
 
2780
2881
  private
2781
2882
 
2782
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#116
2883
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#148
2783
2884
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
2784
2885
  def create_node(node); end
2785
2886
 
2786
- # source://tapioca/0.11.14/lib/tapioca/rbi_ext/model.rb#111
2887
+ # source://tapioca/0.13.1/lib/tapioca/rbi_ext/model.rb#143
2787
2888
  sig { returns(T::Hash[::String, ::RBI::Node]) }
2788
2889
  def nodes_cache; end
2789
2890
  end
@@ -5254,6 +5254,9 @@ RuboCop::AST::NodePattern::Sets::SET_HAS_MANY_HAS_ONE = T.let(T.unsafe(nil), Set
5254
5254
  # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
5255
5255
  RuboCop::AST::NodePattern::Sets::SET_HAS_MANY_HAS_ONE_BELONGS_TO = T.let(T.unsafe(nil), Set)
5256
5256
 
5257
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
5258
+ RuboCop::AST::NodePattern::Sets::SET_HTML_HTML5 = T.let(T.unsafe(nil), Set)
5259
+
5257
5260
  # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
5258
5261
  RuboCop::AST::NodePattern::Sets::SET_IF_UNLESS = T.let(T.unsafe(nil), Set)
5259
5262
 
@@ -5853,38 +5856,38 @@ end
5853
5856
  class RuboCop::AST::ProcessedSource
5854
5857
  # @return [ProcessedSource] a new instance of ProcessedSource
5855
5858
  #
5856
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#26
5857
- def initialize(source, ruby_version, path = T.unsafe(nil)); end
5859
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#29
5860
+ def initialize(source, ruby_version, path = T.unsafe(nil), parser_engine: T.unsafe(nil)); end
5858
5861
 
5859
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#63
5862
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#73
5860
5863
  def [](*args); end
5861
5864
 
5862
5865
  # Returns the value of attribute ast.
5863
5866
  #
5864
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5867
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5865
5868
  def ast; end
5866
5869
 
5867
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#41
5870
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#51
5868
5871
  def ast_with_comments; end
5869
5872
 
5870
5873
  # @return [Boolean]
5871
5874
  #
5872
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#102
5875
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#112
5873
5876
  def blank?; end
5874
5877
 
5875
5878
  # Returns the value of attribute buffer.
5876
5879
  #
5877
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5880
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5878
5881
  def buffer; end
5879
5882
 
5880
5883
  # Raw source checksum for tracking infinite loops.
5881
5884
  #
5882
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#74
5885
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#84
5883
5886
  def checksum; end
5884
5887
 
5885
5888
  # @return [Comment, nil] the comment at that line, if any.
5886
5889
  #
5887
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#107
5890
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#117
5888
5891
  def comment_at_line(line); end
5889
5892
 
5890
5893
  # Consider using `each_comment_in_lines` instead
@@ -5892,170 +5895,178 @@ class RuboCop::AST::ProcessedSource
5892
5895
  # @deprecated use contains_comment?
5893
5896
  # @return [Boolean] if any of the lines in the given `source_range` has a comment.
5894
5897
  #
5895
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#129
5898
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#139
5896
5899
  def commented?(source_range); end
5897
5900
 
5898
5901
  # Returns the value of attribute comments.
5899
5902
  #
5900
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5903
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5901
5904
  def comments; end
5902
5905
 
5903
5906
  # Should have been called `comments_before_or_at_line`. Doubtful it has of any valid use.
5904
5907
  #
5905
5908
  # @deprecated Use `each_comment_in_lines`
5906
5909
  #
5907
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#137
5910
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#147
5908
5911
  def comments_before_line(line); end
5909
5912
 
5910
5913
  # Consider using `each_comment_in_lines` instead
5911
5914
  #
5912
5915
  # @return [Boolean] if any of the lines in the given `source_range` has a comment.
5913
5916
  #
5914
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#129
5917
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#139
5915
5918
  def contains_comment?(source_range); end
5916
5919
 
5917
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#151
5920
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#161
5918
5921
  def current_line(token); end
5919
5922
 
5920
5923
  # Returns the value of attribute diagnostics.
5921
5924
  #
5922
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5925
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5923
5926
  def diagnostics; end
5924
5927
 
5925
5928
  # @deprecated Use `comments.each`
5926
5929
  #
5927
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#79
5930
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#89
5928
5931
  def each_comment(&block); end
5929
5932
 
5930
5933
  # Enumerates on the comments contained with the given `line_range`
5931
5934
  #
5932
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#117
5935
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#127
5933
5936
  def each_comment_in_lines(line_range); end
5934
5937
 
5935
5938
  # @deprecated Use `tokens.each`
5936
5939
  #
5937
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#89
5940
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#99
5938
5941
  def each_token(&block); end
5939
5942
 
5940
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#98
5943
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#108
5941
5944
  def file_path; end
5942
5945
 
5943
5946
  # @deprecated Use `comment_at_line`, `each_comment_in_lines`, or `comments.find`
5944
5947
  #
5945
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#84
5948
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#94
5946
5949
  def find_comment(&block); end
5947
5950
 
5948
5951
  # @deprecated Use `tokens.find`
5949
5952
  #
5950
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#94
5953
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#104
5951
5954
  def find_token(&block); end
5952
5955
 
5953
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#172
5956
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#182
5954
5957
  def first_token_of(range_or_node); end
5955
5958
 
5956
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#155
5959
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#165
5957
5960
  def following_line(token); end
5958
5961
 
5959
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#176
5962
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#186
5960
5963
  def last_token_of(range_or_node); end
5961
5964
 
5962
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#159
5965
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#169
5963
5966
  def line_indentation(line_number); end
5964
5967
 
5965
5968
  # @return [Boolean] if the given line number has a comment.
5966
5969
  #
5967
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#112
5970
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#122
5968
5971
  def line_with_comment?(line); end
5969
5972
 
5970
5973
  # Returns the source lines, line break characters removed, excluding a
5971
5974
  # possible __END__ and everything that comes after.
5972
5975
  #
5973
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#49
5976
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#59
5974
5977
  def lines; end
5975
5978
 
5979
+ # Returns the value of attribute parser_engine.
5980
+ #
5981
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5982
+ def parser_engine; end
5983
+
5976
5984
  # Returns the value of attribute parser_error.
5977
5985
  #
5978
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5986
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5979
5987
  def parser_error; end
5980
5988
 
5981
5989
  # Returns the value of attribute path.
5982
5990
  #
5983
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5991
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5984
5992
  def path; end
5985
5993
 
5986
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#147
5994
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#157
5987
5995
  def preceding_line(token); end
5988
5996
 
5989
5997
  # Returns the value of attribute raw_source.
5990
5998
  #
5991
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
5999
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5992
6000
  def raw_source; end
5993
6001
 
5994
6002
  # Returns the value of attribute ruby_version.
5995
6003
  #
5996
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
6004
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
5997
6005
  def ruby_version; end
5998
6006
 
5999
6007
  # The tokens list is always sorted by token position, except for cases when heredoc
6000
6008
  # is passed as a method argument. In this case tokens are interleaved by
6001
6009
  # heredoc contents' tokens.
6002
6010
  #
6003
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#183
6011
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#193
6004
6012
  def sorted_tokens; end
6005
6013
 
6006
6014
  # @return [Boolean]
6007
6015
  #
6008
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#141
6016
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#151
6009
6017
  def start_with?(string); end
6010
6018
 
6011
6019
  # Returns the value of attribute tokens.
6012
6020
  #
6013
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
6021
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
6014
6022
  def tokens; end
6015
6023
 
6016
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#166
6024
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#176
6017
6025
  def tokens_within(range_or_node); end
6018
6026
 
6019
6027
  # @return [Boolean]
6020
6028
  #
6021
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#67
6029
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#77
6022
6030
  def valid_syntax?; end
6023
6031
 
6024
6032
  private
6025
6033
 
6026
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#190
6034
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#200
6027
6035
  def comment_index; end
6028
6036
 
6029
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#278
6030
- def create_parser(ruby_version); end
6037
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#312
6038
+ def create_parser(ruby_version, parser_engine); end
6031
6039
 
6032
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#294
6040
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#328
6033
6041
  def first_token_index(range_or_node); end
6034
6042
 
6035
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#299
6043
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#333
6036
6044
  def last_token_index(range_or_node); end
6037
6045
 
6038
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#196
6039
- def parse(source, ruby_version); end
6046
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#206
6047
+ def parse(source, ruby_version, parser_engine); end
6040
6048
 
6041
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#230
6042
- def parser_class(ruby_version); end
6049
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#240
6050
+ def parser_class(ruby_version, parser_engine); end
6043
6051
 
6044
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#304
6052
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#338
6045
6053
  def source_range(range_or_node); end
6046
6054
 
6047
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#213
6055
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#223
6048
6056
  def tokenize(parser); end
6049
6057
 
6050
6058
  class << self
6051
- # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
6052
- def from_file(path, ruby_version); end
6059
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#24
6060
+ def from_file(path, ruby_version, parser_engine: T.unsafe(nil)); end
6053
6061
  end
6054
6062
  end
6055
6063
 
6056
6064
  # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#15
6057
6065
  RuboCop::AST::ProcessedSource::INVALID_LEVELS = T.let(T.unsafe(nil), Array)
6058
6066
 
6067
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
6068
+ RuboCop::AST::ProcessedSource::PARSER_ENGINES = T.let(T.unsafe(nil), Array)
6069
+
6059
6070
  # @api private
6060
6071
  #
6061
6072
  # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#13
@@ -941,6 +941,40 @@ end
941
941
  # source://rubocop-minitest//lib/rubocop/cop/minitest/empty_line_before_assertion_methods.rb#24
942
942
  RuboCop::Cop::Minitest::EmptyLineBeforeAssertionMethods::MSG = T.let(T.unsafe(nil), String)
943
943
 
944
+ # Enforces tests are not focused.
945
+ #
946
+ # @example
947
+ # # bad
948
+ # focus test 'foo' do
949
+ # end
950
+ #
951
+ # # bad
952
+ # focus
953
+ # test 'foo' do
954
+ # end
955
+ #
956
+ # # good
957
+ # test 'foo' do
958
+ # end
959
+ #
960
+ # source://rubocop-minitest//lib/rubocop/cop/minitest/focus.rb#22
961
+ class RuboCop::Cop::Minitest::Focus < ::RuboCop::Cop::Base
962
+ include ::RuboCop::Cop::RangeHelp
963
+ extend ::RuboCop::Cop::AutoCorrector
964
+
965
+ # source://rubocop-minitest//lib/rubocop/cop/minitest/focus.rb#29
966
+ def focused?(param0 = T.unsafe(nil)); end
967
+
968
+ # source://rubocop-minitest//lib/rubocop/cop/minitest/focus.rb#33
969
+ def on_send(node); end
970
+ end
971
+
972
+ # source://rubocop-minitest//lib/rubocop/cop/minitest/focus.rb#26
973
+ RuboCop::Cop::Minitest::Focus::MSG = T.let(T.unsafe(nil), String)
974
+
975
+ # source://rubocop-minitest//lib/rubocop/cop/minitest/focus.rb#27
976
+ RuboCop::Cop::Minitest::Focus::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
977
+
944
978
  # Checks for deprecated global expectations
945
979
  # and autocorrects them to use expect format.
946
980
  #