synvert-core 0.42.1 → 0.43.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.
Potentially problematic release.
This version of synvert-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -1
- data/lib/synvert/core/node_ext.rb +9 -1
- data/lib/synvert/core/rewriter/instance.rb +1 -1
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/node_ext_spec.rb +24 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7a78fc903b7e0a34ec7a8226a2ce3d1108a86d832f307d40f9b0e5a1c9fda8fd
         | 
| 4 | 
            +
              data.tar.gz: d4577da2ba4a6ef01cd7caf2bd122757bed29c2669fd8ee3df6881170335ccf8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e23329aff2a0719c600d866304a7a423fe76c9be84748bdf90dbfd88aefe521294c8543d8bf5cbaff0ea75dc224e0f2d79bd4c5adf29b2d04182421f92b9a672
         | 
| 7 | 
            +
              data.tar.gz: 7ba47c6feeddd305c610285a47cc6a144ee734a4fdf2ba05f103eeea2a06b3386eb861971a9ac79c503303c8417336da3b190524fa6a32c4362ee641f48fcefb
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,8 +1,11 @@ | |
| 1 1 | 
             
            # CHANGELOG
         | 
| 2 2 |  | 
| 3 | 
            -
            # 0. | 
| 3 | 
            +
            # 0.43.0 (2021-07-18)
         | 
| 4 4 |  | 
| 5 5 | 
             
            * Return rewrtier after executing snippet
         | 
| 6 | 
            +
            * `left_value` and `right_value` support `or_asgn` node
         | 
| 7 | 
            +
            * `child_node_range` supports send `parentheses`
         | 
| 8 | 
            +
            * Fix conflict actions
         | 
| 6 9 |  | 
| 7 10 | 
             
            # 0.42.0 (2021-07-11)
         | 
| 8 11 |  | 
| @@ -217,6 +217,8 @@ module Parser::AST | |
| 217 217 | 
             
                def left_value
         | 
| 218 218 | 
             
                  if %i[masgn lvasgn ivasgn].include? type
         | 
| 219 219 | 
             
                    children[0]
         | 
| 220 | 
            +
                  elsif :or_asgn == type
         | 
| 221 | 
            +
                    children[0].children[0]
         | 
| 220 222 | 
             
                  else
         | 
| 221 223 | 
             
                    raise Synvert::Core::MethodNotSupported, "left_value is not handled for #{debug_info}"
         | 
| 222 224 | 
             
                  end
         | 
| @@ -227,7 +229,7 @@ module Parser::AST | |
| 227 229 | 
             
                # @return [Array<Parser::AST::Node>] variable nodes.
         | 
| 228 230 | 
             
                # @raise [Synvert::Core::MethodNotSupported] if calls on other node.
         | 
| 229 231 | 
             
                def right_value
         | 
| 230 | 
            -
                  if %i[masgn lvasgn ivasgn].include? type
         | 
| 232 | 
            +
                  if %i[masgn lvasgn ivasgn or_asgn].include? type
         | 
| 231 233 | 
             
                    children[1]
         | 
| 232 234 | 
             
                  else
         | 
| 233 235 | 
             
                    raise Synvert::Core::MethodNotSupported, "right_value is not handled for #{debug_info}"
         | 
| @@ -360,6 +362,12 @@ module Parser::AST | |
| 360 362 | 
             
                    else
         | 
| 361 363 | 
             
                      loc.selector
         | 
| 362 364 | 
             
                    end
         | 
| 365 | 
            +
                  when %i[send parentheses]
         | 
| 366 | 
            +
                    if loc.begin && loc.end
         | 
| 367 | 
            +
                      Parser::Source::Range.new('(string)', loc.begin.begin_pos, loc.end.end_pos)
         | 
| 368 | 
            +
                    else
         | 
| 369 | 
            +
                      nil
         | 
| 370 | 
            +
                    end
         | 
| 363 371 | 
             
                  else
         | 
| 364 372 | 
             
                    if respond_to?(child_name)
         | 
| 365 373 | 
             
                      child_node = send(child_name)
         | 
| @@ -113,7 +113,7 @@ module Synvert::Core | |
| 113 113 | 
             
                          source[action.begin_pos...action.end_pos] = action.rewritten_code
         | 
| 114 114 | 
             
                          source = remove_code_or_whole_line(source, action.line)
         | 
| 115 115 | 
             
                        end
         | 
| 116 | 
            -
                        @actions =  | 
| 116 | 
            +
                        @actions = conflict_actions
         | 
| 117 117 |  | 
| 118 118 | 
             
                        update_file(file_path, source)
         | 
| 119 119 | 
             
                      end
         | 
    
        data/lib/synvert/core/version.rb
    CHANGED
    
    
| @@ -261,6 +261,11 @@ describe Parser::AST::Node do | |
| 261 261 | 
             
                  node = parse('@a = 1')
         | 
| 262 262 | 
             
                  expect(node.left_value).to eq :@a
         | 
| 263 263 | 
             
                end
         | 
| 264 | 
            +
             | 
| 265 | 
            +
                it 'gets for or_asgn' do
         | 
| 266 | 
            +
                  node = parse('a ||= 1')
         | 
| 267 | 
            +
                  expect(node.left_value).to eq :a
         | 
| 268 | 
            +
                end
         | 
| 264 269 | 
             
              end
         | 
| 265 270 |  | 
| 266 271 | 
             
              describe '#right_value' do
         | 
| @@ -283,6 +288,11 @@ describe Parser::AST::Node do | |
| 283 288 | 
             
                  node = parse('@a = 1')
         | 
| 284 289 | 
             
                  expect(node.right_value).to eq parse('1')
         | 
| 285 290 | 
             
                end
         | 
| 291 | 
            +
             | 
| 292 | 
            +
                it 'gets for or_asgn' do
         | 
| 293 | 
            +
                  node = parse('a ||= 1')
         | 
| 294 | 
            +
                  expect(node.right_value).to eq parse('1')
         | 
| 295 | 
            +
                end
         | 
| 286 296 | 
             
              end
         | 
| 287 297 |  | 
| 288 298 | 
             
              describe '#to_value' do
         | 
| @@ -614,6 +624,20 @@ describe Parser::AST::Node do | |
| 614 624 | 
             
                    range = node.child_node_range(:arguments)
         | 
| 615 625 | 
             
                    expect(range).to be_nil
         | 
| 616 626 | 
             
                  end
         | 
| 627 | 
            +
             | 
| 628 | 
            +
                  it 'checks parentheses' do
         | 
| 629 | 
            +
                    node = parse('foo.bar(test)')
         | 
| 630 | 
            +
                    range = node.child_node_range(:parentheses)
         | 
| 631 | 
            +
                    expect(range.to_range).to eq(7...13)
         | 
| 632 | 
            +
             | 
| 633 | 
            +
                    node = parse('foobar(test)')
         | 
| 634 | 
            +
                    range = node.child_node_range(:parentheses)
         | 
| 635 | 
            +
                    expect(range.to_range).to eq(6...12)
         | 
| 636 | 
            +
             | 
| 637 | 
            +
                    node = parse('foo.bar')
         | 
| 638 | 
            +
                    range = node.child_node_range(:parentheses)
         | 
| 639 | 
            +
                    expect(range).to be_nil
         | 
| 640 | 
            +
                  end
         | 
| 617 641 | 
             
                end
         | 
| 618 642 | 
             
              end
         | 
| 619 643 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: synvert-core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.43.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Richard Huang
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-07- | 
| 11 | 
            +
            date: 2021-07-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         |