rbs-inline 0.9.0 → 0.10.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.
- checksums.yaml +4 -4
 - data/README.md +0 -3
 - data/lib/rbs/inline/ast/members.rb +7 -1
 - data/lib/rbs/inline/parser.rb +29 -3
 - data/lib/rbs/inline/version.rb +1 -1
 - data/lib/rbs/inline/writer.rb +3 -0
 - data/rbs_collection.lock.yaml +3 -3
 - data/sig/generated/rbs/inline/ast/members.rbs +5 -1
 - data/sig/generated/rbs/inline/parser.rbs +3 -0
 - metadata +4 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 3e5b1f22a68a9b238d2e620d2694a3296b58ced7435e8e8035f000beb1ce40f6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c81ba9017a9a54e2d8d4401d1ad8d6640fcfac87dd99ab060daad38df8fb3977
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0f54053824e26053cb0c229c06c1cb8987af68fae1e5340747cc4424f1b549ead53c6ec10cfc4287aaa0aea350848bbccd8c8baa70311c791d5b7300ae9b431b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 52e6463d2240a0cc1373a15a326f18c1fd2c50ff22df210ed90e3dfd5cd635b43190e11321f8f903593b406b4ee7d3842f9ef3d3cc49a5a8735710b8e5f06901
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -2,9 +2,6 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            RBS::Inline allows embedding RBS type declarations into Ruby code as comments. You can declare types, write the implementation, and verifies they are consistent without leaving the editor opening the Ruby code.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            > [!IMPORTANT]
         
     | 
| 
       6 
     | 
    
         
            -
            > The syntax is experimental. We are still seeking the best syntax with your feedbacks.
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
5 
     | 
    
         
             
            > [!IMPORTANT]
         
     | 
| 
       9 
6 
     | 
    
         
             
            > This gem is a prototype for testing. We plan to merge this feature to rbs-gem and deprecate rbs-inline gem after that.
         
     | 
| 
       10 
7 
     | 
    
         | 
| 
         @@ -41,6 +41,10 @@ module RBS 
     | 
|
| 
       41 
41 
     | 
    
         
             
                      # ```
         
     | 
| 
       42 
42 
     | 
    
         
             
                      attr_reader :visibility #: RBS::AST::Members::visibility?
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
      
 44 
     | 
    
         
            +
                      # The function is defined as singleton and instance method (as known as module_function)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      #
         
     | 
| 
      
 46 
     | 
    
         
            +
                      attr_accessor :singleton_instance #: bool
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
       44 
48 
     | 
    
         
             
                      # Assertion given at the end of the method name
         
     | 
| 
       45 
49 
     | 
    
         
             
                      #
         
     | 
| 
       46 
50 
     | 
    
         
             
                      attr_reader :assertion #: Annotations::TypeAssertion?
         
     | 
| 
         @@ -48,11 +52,13 @@ module RBS 
     | 
|
| 
       48 
52 
     | 
    
         
             
                      # @rbs node: Prism::DefNode
         
     | 
| 
       49 
53 
     | 
    
         
             
                      # @rbs comments: AnnotationParser::ParsingResult?
         
     | 
| 
       50 
54 
     | 
    
         
             
                      # @rbs visibility: RBS::AST::Members::visibility?
         
     | 
| 
      
 55 
     | 
    
         
            +
                      # @rbs singleton_instance: bool
         
     | 
| 
       51 
56 
     | 
    
         
             
                      # @rbs assertion: Annotations::TypeAssertion?
         
     | 
| 
       52 
     | 
    
         
            -
                      def initialize(node, comments, visibility, assertion) #: void
         
     | 
| 
      
 57 
     | 
    
         
            +
                      def initialize(node, comments, visibility, singleton_instance, assertion) #: void
         
     | 
| 
       53 
58 
     | 
    
         
             
                        @node = node
         
     | 
| 
       54 
59 
     | 
    
         
             
                        @comments = comments
         
     | 
| 
       55 
60 
     | 
    
         
             
                        @visibility = visibility
         
     | 
| 
      
 61 
     | 
    
         
            +
                        @singleton_instance = singleton_instance
         
     | 
| 
       56 
62 
     | 
    
         
             
                        @assertion = assertion
         
     | 
| 
       57 
63 
     | 
    
         | 
| 
       58 
64 
     | 
    
         
             
                        super(node.location)
         
     | 
    
        data/lib/rbs/inline/parser.rb
    CHANGED
    
    | 
         @@ -37,10 +37,14 @@ module RBS 
     | 
|
| 
       37 
37 
     | 
    
         
             
                  #
         
     | 
| 
       38 
38 
     | 
    
         
             
                  attr_reader :current_visibility #: RBS::AST::Members::visibility?
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
                  # The current module_function applied to single `def` node
         
     | 
| 
      
 41 
     | 
    
         
            +
                  attr_reader :current_module_function #: bool
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       40 
43 
     | 
    
         
             
                  def initialize() #: void
         
     | 
| 
       41 
44 
     | 
    
         
             
                    @decls = []
         
     | 
| 
       42 
45 
     | 
    
         
             
                    @surrounding_decls = []
         
     | 
| 
       43 
46 
     | 
    
         
             
                    @comments = {}
         
     | 
| 
      
 47 
     | 
    
         
            +
                    @current_module_function = false
         
     | 
| 
       44 
48 
     | 
    
         
             
                  end
         
     | 
| 
       45 
49 
     | 
    
         | 
| 
       46 
50 
     | 
    
         
             
                  # Parses the given Prism result to a three tuple
         
     | 
| 
         @@ -253,9 +257,7 @@ module RBS 
     | 
|
| 
       253 
257 
     | 
    
         | 
| 
       254 
258 
     | 
    
         
             
                      assertion = assertion_annotation(node.rparen_loc || node&.parameters&.location || node.name_loc)
         
     | 
| 
       255 
259 
     | 
    
         | 
| 
       256 
     | 
    
         
            -
                      current_decl.members << AST::Members::RubyDef.new(node, associated_comment, current_visibility, assertion)
         
     | 
| 
       257 
     | 
    
         
            -
             
     | 
| 
       258 
     | 
    
         
            -
                      super
         
     | 
| 
      
 260 
     | 
    
         
            +
                      current_decl.members << AST::Members::RubyDef.new(node, associated_comment, current_visibility, current_module_function, assertion)
         
     | 
| 
       259 
261 
     | 
    
         
             
                    end
         
     | 
| 
       260 
262 
     | 
    
         
             
                  end
         
     | 
| 
       261 
263 
     | 
    
         | 
| 
         @@ -331,6 +333,30 @@ module RBS 
     | 
|
| 
       331 
333 
     | 
    
         
             
                          end
         
     | 
| 
       332 
334 
     | 
    
         
             
                        end
         
     | 
| 
       333 
335 
     | 
    
         
             
                      end
         
     | 
| 
      
 336 
     | 
    
         
            +
                    when :module_function
         
     | 
| 
      
 337 
     | 
    
         
            +
                      if node.arguments && node.arguments.arguments.size > 0
         
     | 
| 
      
 338 
     | 
    
         
            +
                        args = node.arguments.arguments.filter_map do |arg|
         
     | 
| 
      
 339 
     | 
    
         
            +
                          case arg
         
     | 
| 
      
 340 
     | 
    
         
            +
                          when Prism::SymbolNode
         
     | 
| 
      
 341 
     | 
    
         
            +
                            arg.unescaped.to_sym
         
     | 
| 
      
 342 
     | 
    
         
            +
                          end
         
     | 
| 
      
 343 
     | 
    
         
            +
                        end
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                        current_decl = current_class_module_decl
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
                        if current_decl
         
     | 
| 
      
 348 
     | 
    
         
            +
                          node.arguments.arguments.each do |arg|
         
     | 
| 
      
 349 
     | 
    
         
            +
                            current_decl.members.each do |member|
         
     | 
| 
      
 350 
     | 
    
         
            +
                              if member.is_a?(AST::Members::RubyDef) && args.include?(member.node.name)
         
     | 
| 
      
 351 
     | 
    
         
            +
                                member.singleton_instance = true
         
     | 
| 
      
 352 
     | 
    
         
            +
                                break
         
     | 
| 
      
 353 
     | 
    
         
            +
                              end
         
     | 
| 
      
 354 
     | 
    
         
            +
                            end
         
     | 
| 
      
 355 
     | 
    
         
            +
                          end
         
     | 
| 
      
 356 
     | 
    
         
            +
                        end
         
     | 
| 
      
 357 
     | 
    
         
            +
                      else
         
     | 
| 
      
 358 
     | 
    
         
            +
                        @current_module_function = true
         
     | 
| 
      
 359 
     | 
    
         
            +
                      end
         
     | 
| 
       334 
360 
     | 
    
         
             
                    end
         
     | 
| 
       335 
361 
     | 
    
         | 
| 
       336 
362 
     | 
    
         
             
                    super
         
     | 
    
        data/lib/rbs/inline/version.rb
    CHANGED
    
    
    
        data/lib/rbs/inline/writer.rb
    CHANGED
    
    | 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # rbs_inline: enabled
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require 'stringio'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            module RBS
         
     | 
| 
       4 
6 
     | 
    
         
             
              module Inline
         
     | 
| 
       5 
7 
     | 
    
         
             
                class Writer
         
     | 
| 
         @@ -542,6 +544,7 @@ module RBS 
     | 
|
| 
       542 
544 
     | 
    
         
             
                  # @rbs return: RBS::AST::Members::MethodDefinition::kind
         
     | 
| 
       543 
545 
     | 
    
         
             
                  def method_kind(member, decl)
         
     | 
| 
       544 
546 
     | 
    
         
             
                    return :singleton if decl
         
     | 
| 
      
 547 
     | 
    
         
            +
                    return :singleton_instance if member.singleton_instance
         
     | 
| 
       545 
548 
     | 
    
         | 
| 
       546 
549 
     | 
    
         
             
                    case member.node.receiver
         
     | 
| 
       547 
550 
     | 
    
         
             
                    when Prism::SelfNode
         
     | 
    
        data/rbs_collection.lock.yaml
    CHANGED
    
    | 
         @@ -34,7 +34,7 @@ gems: 
     | 
|
| 
       34 
34 
     | 
    
         
             
              source:
         
     | 
| 
       35 
35 
     | 
    
         
             
                type: stdlib
         
     | 
| 
       36 
36 
     | 
    
         
             
            - name: prism
         
     | 
| 
       37 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 37 
     | 
    
         
            +
              version: 1.2.0
         
     | 
| 
       38 
38 
     | 
    
         
             
              source:
         
     | 
| 
       39 
39 
     | 
    
         
             
                type: rubygems
         
     | 
| 
       40 
40 
     | 
    
         
             
            - name: rake
         
     | 
| 
         @@ -42,11 +42,11 @@ gems: 
     | 
|
| 
       42 
42 
     | 
    
         
             
              source:
         
     | 
| 
       43 
43 
     | 
    
         
             
                type: git
         
     | 
| 
       44 
44 
     | 
    
         
             
                name: ruby/gem_rbs_collection
         
     | 
| 
       45 
     | 
    
         
            -
                revision:  
     | 
| 
      
 45 
     | 
    
         
            +
                revision: 218cf130d31f63e110e350efc3fa265311b0f238
         
     | 
| 
       46 
46 
     | 
    
         
             
                remote: https://github.com/ruby/gem_rbs_collection.git
         
     | 
| 
       47 
47 
     | 
    
         
             
                repo_dir: gems
         
     | 
| 
       48 
48 
     | 
    
         
             
            - name: rbs
         
     | 
| 
       49 
     | 
    
         
            -
              version: 3.6. 
     | 
| 
      
 49 
     | 
    
         
            +
              version: 3.6.1
         
     | 
| 
       50 
50 
     | 
    
         
             
              source:
         
     | 
| 
       51 
51 
     | 
    
         
             
                type: rubygems
         
     | 
| 
       52 
52 
     | 
    
         
             
            - name: rdoc
         
     | 
| 
         @@ -37,14 +37,18 @@ module RBS 
     | 
|
| 
       37 
37 
     | 
    
         
             
                      # ```
         
     | 
| 
       38 
38 
     | 
    
         
             
                      attr_reader visibility: RBS::AST::Members::visibility?
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
                      # The function is defined as singleton and instance method (as known as module_function)
         
     | 
| 
      
 41 
     | 
    
         
            +
                      attr_accessor singleton_instance: bool
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       40 
43 
     | 
    
         
             
                      # Assertion given at the end of the method name
         
     | 
| 
       41 
44 
     | 
    
         
             
                      attr_reader assertion: Annotations::TypeAssertion?
         
     | 
| 
       42 
45 
     | 
    
         | 
| 
       43 
46 
     | 
    
         
             
                      # @rbs node: Prism::DefNode
         
     | 
| 
       44 
47 
     | 
    
         
             
                      # @rbs comments: AnnotationParser::ParsingResult?
         
     | 
| 
       45 
48 
     | 
    
         
             
                      # @rbs visibility: RBS::AST::Members::visibility?
         
     | 
| 
      
 49 
     | 
    
         
            +
                      # @rbs singleton_instance: bool
         
     | 
| 
       46 
50 
     | 
    
         
             
                      # @rbs assertion: Annotations::TypeAssertion?
         
     | 
| 
       47 
     | 
    
         
            -
                      def initialize: (Prism::DefNode node, AnnotationParser::ParsingResult? comments, RBS::AST::Members::visibility? visibility, Annotations::TypeAssertion? assertion) -> void
         
     | 
| 
      
 51 
     | 
    
         
            +
                      def initialize: (Prism::DefNode node, AnnotationParser::ParsingResult? comments, RBS::AST::Members::visibility? visibility, bool singleton_instance, Annotations::TypeAssertion? assertion) -> void
         
     | 
| 
       48 
52 
     | 
    
         | 
| 
       49 
53 
     | 
    
         
             
                      # Returns the name of the method
         
     | 
| 
       50 
54 
     | 
    
         
             
                      def method_name: () -> Symbol
         
     | 
| 
         @@ -30,6 +30,9 @@ module RBS 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  # `nil` when the `def` node is not inside `private` or `public` calls.
         
     | 
| 
       31 
31 
     | 
    
         
             
                  attr_reader current_visibility: RBS::AST::Members::visibility?
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
                  # The current module_function applied to single `def` node
         
     | 
| 
      
 34 
     | 
    
         
            +
                  attr_reader current_module_function: bool
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
       33 
36 
     | 
    
         
             
                  def initialize: () -> void
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
38 
     | 
    
         
             
                  # Parses the given Prism result to a three tuple
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rbs-inline
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.10.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Soutaro Matsumoto
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2024- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-11-18 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: prism
         
     | 
| 
         @@ -19,7 +19,7 @@ dependencies: 
     | 
|
| 
       19 
19 
     | 
    
         
             
                    version: '0.29'
         
     | 
| 
       20 
20 
     | 
    
         
             
                - - "<"
         
     | 
| 
       21 
21 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
     | 
    
         
            -
                    version: '1. 
     | 
| 
      
 22 
     | 
    
         
            +
                    version: '1.3'
         
     | 
| 
       23 
23 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       24 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       25 
25 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -29,7 +29,7 @@ dependencies: 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    version: '0.29'
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - "<"
         
     | 
| 
       31 
31 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       32 
     | 
    
         
            -
                    version: '1. 
     | 
| 
      
 32 
     | 
    
         
            +
                    version: '1.3'
         
     | 
| 
       33 
33 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       34 
34 
     | 
    
         
             
              name: rbs
         
     | 
| 
       35 
35 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |