debride 1.10.1 → 1.11.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
 - checksums.yaml.gz.sig +0 -0
 - data/History.rdoc +11 -0
 - data/lib/debride.rb +40 -5
 - data/test/test_debride.rb +94 -4
 - data.tar.gz.sig +0 -0
 - metadata +13 -13
 - metadata.gz.sig +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a3d7a09de612d4aa5772fbc3db3e26f51a06331c360c62d359acb8465f3f242a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 95ce5aff93c1900456ad929a959d60f275feb036ecbb890edd590246d284c5eb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: b8c4f5575198e3d8de1c7486cf5b2a6e43e2f2d8ec61af07b3e6d8f5e101cd5343acb108a55468b1e19e8605c3c27acad32918084c4165a666f58e6d367fb72b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 17dbd73820e02cea048e1cdc61d4811e3d00702f0d2fcc58098e56982205b80e1932cf6358d3692a7647da0de67251c2cab22e274598b420eae48cedeff94726
         
     | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/History.rdoc
    CHANGED
    
    | 
         @@ -1,3 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            === 1.11.0 / 2023-03-24
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * 6 minor enhancements:
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              * Added X.const_get(:Y) support. (TSMMark)
         
     | 
| 
      
 6 
     | 
    
         
            +
              * Added f(&block_pass) support. (TSMMark)
         
     | 
| 
      
 7 
     | 
    
         
            +
              * Added obj&.safe_call support. (TSMMark)
         
     | 
| 
      
 8 
     | 
    
         
            +
              * Added obj.method(:msg) support. (TSMMark)
         
     | 
| 
      
 9 
     | 
    
         
            +
              * Added op_asgn2 (eg x &&= y) support. (TSMMark)
         
     | 
| 
      
 10 
     | 
    
         
            +
              * Added try(:msg) support. (TSMMark)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       1 
12 
     | 
    
         
             
            === 1.10.1 / 2022-12-03
         
     | 
| 
       2 
13 
     | 
    
         | 
| 
       3 
14 
     | 
    
         
             
            * 4 minor enhancements:
         
     | 
    
        data/lib/debride.rb
    CHANGED
    
    | 
         @@ -12,7 +12,7 @@ require "path_expander" 
     | 
|
| 
       12 
12 
     | 
    
         
             
            # A static code analyzer that points out possible dead methods.
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            class Debride < MethodBasedSexpProcessor
         
     | 
| 
       15 
     | 
    
         
            -
              VERSION = "1. 
     | 
| 
      
 15 
     | 
    
         
            +
              VERSION = "1.11.0" # :nodoc:
         
     | 
| 
       16 
16 
     | 
    
         
             
              PROJECT = "debride"
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              def self.load_plugins proj = PROJECT
         
     | 
| 
         @@ -220,6 +220,14 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       220 
220 
     | 
    
         
             
                sexp
         
     | 
| 
       221 
221 
     | 
    
         
             
              end
         
     | 
| 
       222 
222 
     | 
    
         | 
| 
      
 223 
     | 
    
         
            +
              # handle &&=, ||=, etc
         
     | 
| 
      
 224 
     | 
    
         
            +
              def process_op_asgn2(sexp)
         
     | 
| 
      
 225 
     | 
    
         
            +
                _, _, method_name, * = sexp
         
     | 
| 
      
 226 
     | 
    
         
            +
                called << method_name
         
     | 
| 
      
 227 
     | 
    
         
            +
                process_until_empty sexp
         
     | 
| 
      
 228 
     | 
    
         
            +
                sexp
         
     | 
| 
      
 229 
     | 
    
         
            +
              end
         
     | 
| 
      
 230 
     | 
    
         
            +
             
     | 
| 
       223 
231 
     | 
    
         
             
              def record_method name, file, line
         
     | 
| 
       224 
232 
     | 
    
         
             
                signature = "#{klass_name}##{name}"
         
     | 
| 
       225 
233 
     | 
    
         
             
                method_locations[signature] = "#{file}:#{line}"
         
     | 
| 
         @@ -273,7 +281,7 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       273 
281 
     | 
    
         
             
                    end
         
     | 
| 
       274 
282 
     | 
    
         
             
                    record_method name, file, line
         
     | 
| 
       275 
283 
     | 
    
         
             
                  end
         
     | 
| 
       276 
     | 
    
         
            -
                when :send, :public_send, :__send__ then
         
     | 
| 
      
 284 
     | 
    
         
            +
                when :send, :public_send, :__send__, :try, :const_get then
         
     | 
| 
       277 
285 
     | 
    
         
             
                  # s(:call, s(:const, :Seattle), :send, s(:lit, :raining?))
         
     | 
| 
       278 
286 
     | 
    
         
             
                  _, _, _, msg_arg, * = sexp
         
     | 
| 
       279 
287 
     | 
    
         
             
                  if Sexp === msg_arg && [:lit, :str].include?(msg_arg.sexp_type) then
         
     | 
| 
         @@ -291,6 +299,12 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       291 
299 
     | 
    
         
             
                      called << val.last.to_sym if val.sexp_type == :str
         
     | 
| 
       292 
300 
     | 
    
         
             
                    end
         
     | 
| 
       293 
301 
     | 
    
         
             
                  end
         
     | 
| 
      
 302 
     | 
    
         
            +
                when :method then
         
     | 
| 
      
 303 
     | 
    
         
            +
                  # s(:call, nil, :method, s(:lit, :foo))
         
     | 
| 
      
 304 
     | 
    
         
            +
                  _, _, _, msg_arg, * = sexp
         
     | 
| 
      
 305 
     | 
    
         
            +
                  if Sexp === msg_arg && [:lit, :str].include?(msg_arg.sexp_type) then
         
     | 
| 
      
 306 
     | 
    
         
            +
                    called << msg_arg.last.to_sym
         
     | 
| 
      
 307 
     | 
    
         
            +
                  end
         
     | 
| 
       294 
308 
     | 
    
         
             
                when *RAILS_DSL_METHODS, *RAILS_VALIDATION_METHODS then
         
     | 
| 
       295 
309 
     | 
    
         
             
                  if option[:rails]
         
     | 
| 
       296 
310 
     | 
    
         
             
                    # s(:call, nil, :before_save, s(:lit, :save_callback), s(:hash, ...))
         
     | 
| 
         @@ -329,6 +343,21 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       329 
343 
     | 
    
         
             
                sexp
         
     | 
| 
       330 
344 
     | 
    
         
             
              end
         
     | 
| 
       331 
345 
     | 
    
         | 
| 
      
 346 
     | 
    
         
            +
              def process_block_pass exp # :nodoc:
         
     | 
| 
      
 347 
     | 
    
         
            +
                _, name = exp
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
                case name.sexp_type
         
     | 
| 
      
 350 
     | 
    
         
            +
                when :lit then              # eg &:to_sym
         
     | 
| 
      
 351 
     | 
    
         
            +
                  called << name.last
         
     | 
| 
      
 352 
     | 
    
         
            +
                else                        # eg &lvar or &method(:x)
         
     | 
| 
      
 353 
     | 
    
         
            +
                  # do nothing, body will get processed below
         
     | 
| 
      
 354 
     | 
    
         
            +
                end
         
     | 
| 
      
 355 
     | 
    
         
            +
             
     | 
| 
      
 356 
     | 
    
         
            +
                process_until_empty exp
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
      
 358 
     | 
    
         
            +
                exp
         
     | 
| 
      
 359 
     | 
    
         
            +
              end
         
     | 
| 
      
 360 
     | 
    
         
            +
             
     | 
| 
       332 
361 
     | 
    
         
             
              def process_cdecl exp # :nodoc:
         
     | 
| 
       333 
362 
     | 
    
         
             
                _, name, val = exp
         
     | 
| 
       334 
363 
     | 
    
         | 
| 
         @@ -348,7 +377,7 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       348 
377 
     | 
    
         | 
| 
       349 
378 
     | 
    
         
             
              def name_to_string exp
         
     | 
| 
       350 
379 
     | 
    
         
             
                case exp.sexp_type
         
     | 
| 
       351 
     | 
    
         
            -
                when :const then
         
     | 
| 
      
 380 
     | 
    
         
            +
                when :const, :lit, :str then
         
     | 
| 
       352 
381 
     | 
    
         
             
                  exp.last.to_s
         
     | 
| 
       353 
382 
     | 
    
         
             
                when :colon2 then
         
     | 
| 
       354 
383 
     | 
    
         
             
                  _, lhs, rhs = exp
         
     | 
| 
         @@ -402,6 +431,8 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       402 
431 
     | 
    
         
             
                end
         
     | 
| 
       403 
432 
     | 
    
         
             
              end
         
     | 
| 
       404 
433 
     | 
    
         | 
| 
      
 434 
     | 
    
         
            +
              alias process_safe_call process_call
         
     | 
| 
      
 435 
     | 
    
         
            +
             
     | 
| 
       405 
436 
     | 
    
         
             
              ##
         
     | 
| 
       406 
437 
     | 
    
         
             
              # Calculate the difference between known methods and called methods.
         
     | 
| 
       407 
438 
     | 
    
         | 
| 
         @@ -532,6 +563,10 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       532 
563 
     | 
    
         
             
                YAML.dump data, io
         
     | 
| 
       533 
564 
     | 
    
         
             
              end
         
     | 
| 
       534 
565 
     | 
    
         | 
| 
      
 566 
     | 
    
         
            +
              def inspect
         
     | 
| 
      
 567 
     | 
    
         
            +
                "Debride[current=%s]" % [signature]
         
     | 
| 
      
 568 
     | 
    
         
            +
              end
         
     | 
| 
      
 569 
     | 
    
         
            +
             
     | 
| 
       535 
570 
     | 
    
         
             
              ##
         
     | 
| 
       536 
571 
     | 
    
         
             
              # Rails' macro-style methods that setup method calls to happen during a rails
         
     | 
| 
       537 
572 
     | 
    
         
             
              # app's execution.
         
     | 
| 
         @@ -541,7 +576,7 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       541 
576 
     | 
    
         
             
                :around_action,
         
     | 
| 
       542 
577 
     | 
    
         
             
                :before_action,
         
     | 
| 
       543 
578 
     | 
    
         | 
| 
       544 
     | 
    
         
            -
                #  
     | 
| 
      
 579 
     | 
    
         
            +
                # https://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
         
     | 
| 
       545 
580 
     | 
    
         
             
                :after_commit,
         
     | 
| 
       546 
581 
     | 
    
         
             
                :after_create,
         
     | 
| 
       547 
582 
     | 
    
         
             
                :after_destroy,
         
     | 
| 
         @@ -562,7 +597,7 @@ class Debride < MethodBasedSexpProcessor 
     | 
|
| 
       562 
597 
     | 
    
         
             
                :before_update,
         
     | 
| 
       563 
598 
     | 
    
         
             
                :before_validation,
         
     | 
| 
       564 
599 
     | 
    
         | 
| 
       565 
     | 
    
         
            -
                #  
     | 
| 
      
 600 
     | 
    
         
            +
                # https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validate
         
     | 
| 
       566 
601 
     | 
    
         
             
                :validate,
         
     | 
| 
       567 
602 
     | 
    
         
             
              ]
         
     | 
| 
       568 
603 
     | 
    
         | 
    
        data/test/test_debride.rb
    CHANGED
    
    | 
         @@ -10,6 +10,7 @@ end 
     | 
|
| 
       10 
10 
     | 
    
         
             
            class TestDebride < Minitest::Test
         
     | 
| 
       11 
11 
     | 
    
         
             
              EXP_LIST = [["Debride",
         
     | 
| 
       12 
12 
     | 
    
         
             
                           [:process_attrasgn,
         
     | 
| 
      
 13 
     | 
    
         
            +
                            :process_block_pass,
         
     | 
| 
       13 
14 
     | 
    
         
             
                            :process_call,
         
     | 
| 
       14 
15 
     | 
    
         
             
                            :process_cdecl,
         
     | 
| 
       15 
16 
     | 
    
         
             
                            :process_colon2,
         
     | 
| 
         @@ -17,6 +18,7 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       17 
18 
     | 
    
         
             
                            :process_const,
         
     | 
| 
       18 
19 
     | 
    
         
             
                            :process_defn,
         
     | 
| 
       19 
20 
     | 
    
         
             
                            :process_defs,
         
     | 
| 
      
 21 
     | 
    
         
            +
                            :process_op_asgn2,
         
     | 
| 
       20 
22 
     | 
    
         
             
                            :process_rb,
         
     | 
| 
       21 
23 
     | 
    
         
             
                            :report,
         
     | 
| 
       22 
24 
     | 
    
         
             
                            :report_json,
         
     | 
| 
         @@ -287,6 +289,83 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       287 
289 
     | 
    
         
             
                assert_process [], ruby
         
     | 
| 
       288 
290 
     | 
    
         
             
              end
         
     | 
| 
       289 
291 
     | 
    
         | 
| 
      
 292 
     | 
    
         
            +
              def test_method_try
         
     | 
| 
      
 293 
     | 
    
         
            +
                ruby = <<-RUBY.strip
         
     | 
| 
      
 294 
     | 
    
         
            +
                  class Seattle
         
     | 
| 
      
 295 
     | 
    
         
            +
                    def self.raining?
         
     | 
| 
      
 296 
     | 
    
         
            +
                      true
         
     | 
| 
      
 297 
     | 
    
         
            +
                    end
         
     | 
| 
      
 298 
     | 
    
         
            +
                  end
         
     | 
| 
      
 299 
     | 
    
         
            +
             
     | 
| 
      
 300 
     | 
    
         
            +
                  Seattle.try :raining?
         
     | 
| 
      
 301 
     | 
    
         
            +
                RUBY
         
     | 
| 
      
 302 
     | 
    
         
            +
             
     | 
| 
      
 303 
     | 
    
         
            +
                assert_process [], ruby
         
     | 
| 
      
 304 
     | 
    
         
            +
              end
         
     | 
| 
      
 305 
     | 
    
         
            +
             
     | 
| 
      
 306 
     | 
    
         
            +
              def test_block_pass
         
     | 
| 
      
 307 
     | 
    
         
            +
                ruby = <<-RUBY.strip
         
     | 
| 
      
 308 
     | 
    
         
            +
                  class Seattle
         
     | 
| 
      
 309 
     | 
    
         
            +
                    def self.raining?
         
     | 
| 
      
 310 
     | 
    
         
            +
                      true
         
     | 
| 
      
 311 
     | 
    
         
            +
                    end
         
     | 
| 
      
 312 
     | 
    
         
            +
                  end
         
     | 
| 
      
 313 
     | 
    
         
            +
             
     | 
| 
      
 314 
     | 
    
         
            +
                  [Seattle].each(&:raining?)
         
     | 
| 
      
 315 
     | 
    
         
            +
                RUBY
         
     | 
| 
      
 316 
     | 
    
         
            +
             
     | 
| 
      
 317 
     | 
    
         
            +
                assert_process [], ruby
         
     | 
| 
      
 318 
     | 
    
         
            +
              end
         
     | 
| 
      
 319 
     | 
    
         
            +
             
     | 
| 
      
 320 
     | 
    
         
            +
              def test_block_pass_other
         
     | 
| 
      
 321 
     | 
    
         
            +
                ruby = <<-RUBY.strip
         
     | 
| 
      
 322 
     | 
    
         
            +
                  class Seattle
         
     | 
| 
      
 323 
     | 
    
         
            +
                    def self.raining?
         
     | 
| 
      
 324 
     | 
    
         
            +
                      -> { called }
         
     | 
| 
      
 325 
     | 
    
         
            +
                    end
         
     | 
| 
      
 326 
     | 
    
         
            +
             
     | 
| 
      
 327 
     | 
    
         
            +
                    def self.uncalled; end
         
     | 
| 
      
 328 
     | 
    
         
            +
                    def self.called; end
         
     | 
| 
      
 329 
     | 
    
         
            +
                  end
         
     | 
| 
      
 330 
     | 
    
         
            +
             
     | 
| 
      
 331 
     | 
    
         
            +
                  f(&Seattle.raining?)
         
     | 
| 
      
 332 
     | 
    
         
            +
                RUBY
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
                assert_process [["Seattle", [:uncalled]]], ruby
         
     | 
| 
      
 335 
     | 
    
         
            +
              end
         
     | 
| 
      
 336 
     | 
    
         
            +
             
     | 
| 
      
 337 
     | 
    
         
            +
              def test_safe_navigation_operator
         
     | 
| 
      
 338 
     | 
    
         
            +
                ruby = <<-RUBY.strip
         
     | 
| 
      
 339 
     | 
    
         
            +
                  class Seattle
         
     | 
| 
      
 340 
     | 
    
         
            +
                    def self.raining?
         
     | 
| 
      
 341 
     | 
    
         
            +
                      true
         
     | 
| 
      
 342 
     | 
    
         
            +
                    end
         
     | 
| 
      
 343 
     | 
    
         
            +
                  end
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                  Seattle&.raining?
         
     | 
| 
      
 346 
     | 
    
         
            +
                RUBY
         
     | 
| 
      
 347 
     | 
    
         
            +
             
     | 
| 
      
 348 
     | 
    
         
            +
                assert_process [], ruby
         
     | 
| 
      
 349 
     | 
    
         
            +
              end
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
              def test_call_method
         
     | 
| 
      
 352 
     | 
    
         
            +
                ruby = <<-RUBY.strip
         
     | 
| 
      
 353 
     | 
    
         
            +
                  class Seattle
         
     | 
| 
      
 354 
     | 
    
         
            +
                    def self.raining?
         
     | 
| 
      
 355 
     | 
    
         
            +
                      true
         
     | 
| 
      
 356 
     | 
    
         
            +
                    end
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
      
 358 
     | 
    
         
            +
                    def self.raining_still?
         
     | 
| 
      
 359 
     | 
    
         
            +
                      method(:raining?)
         
     | 
| 
      
 360 
     | 
    
         
            +
                    end
         
     | 
| 
      
 361 
     | 
    
         
            +
                  end
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
      
 363 
     | 
    
         
            +
                  Seattle.raining_still?
         
     | 
| 
      
 364 
     | 
    
         
            +
                RUBY
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
                assert_process [], ruby
         
     | 
| 
      
 367 
     | 
    
         
            +
              end
         
     | 
| 
      
 368 
     | 
    
         
            +
             
     | 
| 
       290 
369 
     | 
    
         
             
              def test_rails_dsl_methods
         
     | 
| 
       291 
370 
     | 
    
         
             
                ruby = <<-RUBY.strip
         
     | 
| 
       292 
371 
     | 
    
         
             
                  class RailsThing
         
     | 
| 
         @@ -360,6 +439,8 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       360 
439 
     | 
    
         
             
                  class Constants
         
     | 
| 
       361 
440 
     | 
    
         
             
                    USED = 42
         
     | 
| 
       362 
441 
     | 
    
         
             
                    ALSO = 314
         
     | 
| 
      
 442 
     | 
    
         
            +
                    AGAIN = 27
         
     | 
| 
      
 443 
     | 
    
         
            +
                    MORE = 72
         
     | 
| 
       363 
444 
     | 
    
         
             
                    UNUSED = 24
         
     | 
| 
       364 
445 
     | 
    
         | 
| 
       365 
446 
     | 
    
         
             
                    def something
         
     | 
| 
         @@ -370,6 +451,8 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       370 
451 
     | 
    
         
             
                  something
         
     | 
| 
       371 
452 
     | 
    
         
             
                  Constants::ALSO
         
     | 
| 
       372 
453 
     | 
    
         
             
                  ::Constants::ALSO
         
     | 
| 
      
 454 
     | 
    
         
            +
                  Constants.const_get(:AGAIN)
         
     | 
| 
      
 455 
     | 
    
         
            +
                  ::Constants.const_get("MORE")
         
     | 
| 
       373 
456 
     | 
    
         
             
                RUBY
         
     | 
| 
       374 
457 
     | 
    
         | 
| 
       375 
458 
     | 
    
         
             
                assert_process [["Constants", [:UNUSED]]], ruby
         
     | 
| 
         @@ -379,11 +462,13 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       379 
462 
     | 
    
         
             
                ruby = <<-RUBY.strip
         
     | 
| 
       380 
463 
     | 
    
         
             
                  class AttributeAccessor
         
     | 
| 
       381 
464 
     | 
    
         
             
                    attr_accessor :a1, :a2, :a3
         
     | 
| 
       382 
     | 
    
         
            -
                    attr_writer :w1, :w2
         
     | 
| 
      
 465 
     | 
    
         
            +
                    attr_writer :w1, :w2, :w3, :w4
         
     | 
| 
       383 
466 
     | 
    
         
             
                    attr_reader :r1, :r2
         
     | 
| 
       384 
467 
     | 
    
         
             
                    def initialize
         
     | 
| 
       385 
468 
     | 
    
         
             
                      self.a2 = 'Bar'
         
     | 
| 
       386 
469 
     | 
    
         
             
                      self.w1 = 'W'
         
     | 
| 
      
 470 
     | 
    
         
            +
                      self.w3 ||= 'W3'
         
     | 
| 
      
 471 
     | 
    
         
            +
                      self.w4 &&= 'W4'
         
     | 
| 
       387 
472 
     | 
    
         
             
                    end
         
     | 
| 
       388 
473 
     | 
    
         | 
| 
       389 
474 
     | 
    
         
             
                    def self.class_method
         
     | 
| 
         @@ -397,7 +482,10 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       397 
482 
     | 
    
         
             
                  object.a3 = 'Baz'
         
     | 
| 
       398 
483 
     | 
    
         
             
                RUBY
         
     | 
| 
       399 
484 
     | 
    
         | 
| 
       400 
     | 
    
         
            -
                 
     | 
| 
      
 485 
     | 
    
         
            +
                exp = [["AttributeAccessor",
         
     | 
| 
      
 486 
     | 
    
         
            +
                        [:a1=, :a2, :a3, :class_method, :r2, :w2=]]]
         
     | 
| 
      
 487 
     | 
    
         
            +
             
     | 
| 
      
 488 
     | 
    
         
            +
                d = assert_process exp, ruby
         
     | 
| 
       401 
489 
     | 
    
         | 
| 
       402 
490 
     | 
    
         
             
                exp = {
         
     | 
| 
       403 
491 
     | 
    
         
             
                       "AttributeAccessor#a1"         => "(io):2",
         
     | 
| 
         @@ -408,10 +496,12 @@ class TestDebride < Minitest::Test 
     | 
|
| 
       408 
496 
     | 
    
         
             
                       "AttributeAccessor#a3="        => "(io):2",
         
     | 
| 
       409 
497 
     | 
    
         
             
                       "AttributeAccessor#w1="        => "(io):3",
         
     | 
| 
       410 
498 
     | 
    
         
             
                       "AttributeAccessor#w2="        => "(io):3",
         
     | 
| 
      
 499 
     | 
    
         
            +
                       "AttributeAccessor#w3="        => "(io):3",
         
     | 
| 
      
 500 
     | 
    
         
            +
                       "AttributeAccessor#w4="        => "(io):3",
         
     | 
| 
       411 
501 
     | 
    
         
             
                       "AttributeAccessor#r1"         => "(io):4",
         
     | 
| 
       412 
502 
     | 
    
         
             
                       "AttributeAccessor#r2"         => "(io):4",
         
     | 
| 
       413 
     | 
    
         
            -
                       "AttributeAccessor#initialize" => "(io):5- 
     | 
| 
       414 
     | 
    
         
            -
                       "AttributeAccessor::class_method" => "(io): 
     | 
| 
      
 503 
     | 
    
         
            +
                       "AttributeAccessor#initialize" => "(io):5-9",
         
     | 
| 
      
 504 
     | 
    
         
            +
                       "AttributeAccessor::class_method" => "(io):12-13"
         
     | 
| 
       415 
505 
     | 
    
         
             
                      }
         
     | 
| 
       416 
506 
     | 
    
         | 
| 
       417 
507 
     | 
    
         
             
                assert_equal exp, d.method_locations
         
     | 
    
        data.tar.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: debride
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.11.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ryan Davis
         
     | 
| 
         @@ -10,9 +10,9 @@ bindir: bin 
     | 
|
| 
       10 
10 
     | 
    
         
             
            cert_chain:
         
     | 
| 
       11 
11 
     | 
    
         
             
            - |
         
     | 
| 
       12 
12 
     | 
    
         
             
              -----BEGIN CERTIFICATE-----
         
     | 
| 
       13 
     | 
    
         
            -
               
     | 
| 
      
 13 
     | 
    
         
            +
              MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
         
     | 
| 
       14 
14 
     | 
    
         
             
              ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
         
     | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
      
 15 
     | 
    
         
            +
              GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
         
     | 
| 
       16 
16 
     | 
    
         
             
              AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
         
     | 
| 
       17 
17 
     | 
    
         
             
              JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
         
     | 
| 
       18 
18 
     | 
    
         
             
              b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
         
     | 
| 
         @@ -22,14 +22,14 @@ cert_chain: 
     | 
|
| 
       22 
22 
     | 
    
         
             
              qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
         
     | 
| 
       23 
23 
     | 
    
         
             
              gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
         
     | 
| 
       24 
24 
     | 
    
         
             
              HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
         
     | 
| 
       25 
     | 
    
         
            -
               
     | 
| 
       26 
     | 
    
         
            -
               
     | 
| 
       27 
     | 
    
         
            -
               
     | 
| 
       28 
     | 
    
         
            -
               
     | 
| 
       29 
     | 
    
         
            -
               
     | 
| 
       30 
     | 
    
         
            -
               
     | 
| 
      
 25 
     | 
    
         
            +
              AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
         
     | 
| 
      
 26 
     | 
    
         
            +
              xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
         
     | 
| 
      
 27 
     | 
    
         
            +
              sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
         
     | 
| 
      
 28 
     | 
    
         
            +
              WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
         
     | 
| 
      
 29 
     | 
    
         
            +
              ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
         
     | 
| 
      
 30 
     | 
    
         
            +
              nsNBRuQJ1UfiCG97a6DNm+Fr
         
     | 
| 
       31 
31 
     | 
    
         
             
              -----END CERTIFICATE-----
         
     | 
| 
       32 
     | 
    
         
            -
            date:  
     | 
| 
      
 32 
     | 
    
         
            +
            date: 2023-03-24 00:00:00.000000000 Z
         
     | 
| 
       33 
33 
     | 
    
         
             
            dependencies:
         
     | 
| 
       34 
34 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       35 
35 
     | 
    
         
             
              name: sexp_processor
         
     | 
| 
         @@ -113,14 +113,14 @@ dependencies: 
     | 
|
| 
       113 
113 
     | 
    
         
             
                requirements:
         
     | 
| 
       114 
114 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       115 
115 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       116 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 116 
     | 
    
         
            +
                    version: '4.0'
         
     | 
| 
       117 
117 
     | 
    
         
             
              type: :development
         
     | 
| 
       118 
118 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       119 
119 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       120 
120 
     | 
    
         
             
                requirements:
         
     | 
| 
       121 
121 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       122 
122 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       123 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 123 
     | 
    
         
            +
                    version: '4.0'
         
     | 
| 
       124 
124 
     | 
    
         
             
            description: Analyze code for potentially uncalled / dead methods, now with auto-removal.
         
     | 
| 
       125 
125 
     | 
    
         
             
            email:
         
     | 
| 
       126 
126 
     | 
    
         
             
            - ryand-ruby@zenspider.com
         
     | 
| 
         @@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       166 
166 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       167 
167 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       168 
168 
     | 
    
         
             
            requirements: []
         
     | 
| 
       169 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 169 
     | 
    
         
            +
            rubygems_version: 3.4.6
         
     | 
| 
       170 
170 
     | 
    
         
             
            signing_key:
         
     | 
| 
       171 
171 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       172 
172 
     | 
    
         
             
            summary: Analyze code for potentially uncalled / dead methods, now with auto-removal.
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     |