File tree Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Original file line number Diff line number Diff line change @@ -331,6 +331,11 @@ def initialize(parent:, name:)
331
331
@name = name
332
332
end
333
333
334
+ def call_method? ( method_name )
335
+ local_calls . include? ( method_name ) ||
336
+ local_calls . any? { |local_call_method_name | parent . find_method_by_name ( local_call_method_name ) &.call_method? ( method_name ) }
337
+ end
338
+
334
339
def to_h
335
340
{ name : @name }
336
341
end
Original file line number Diff line number Diff line change @@ -172,4 +172,37 @@ def deactivate
172
172
class_definition = definitions . find_class_by_full_name ( 'User' )
173
173
expect ( class_definition . find_method_by_name ( 'deactivate' ) . name ) . to eq ( 'deactivate' )
174
174
end
175
+
176
+ it 'check if call method' do
177
+ rewriter =
178
+ Synvert ::Rewriter . new 'test' , 'ruby_parse_helper' do
179
+ call_helper 'ruby/parse'
180
+ end
181
+
182
+ FileUtils . mkdir_p ( 'app/models' )
183
+ File . write ( 'app/models/user.rb' , <<~EOF )
184
+ class User < ApplicationRecord
185
+ def activate
186
+ update(:active: true)
187
+ send_notification
188
+ end
189
+
190
+ def deactivate
191
+ update(:active: false)
192
+ send_notification
193
+ end
194
+
195
+ def send_notificaiton
196
+ end
197
+ end
198
+ EOF
199
+
200
+ rewriter . process
201
+
202
+ definitions = rewriter . load_data ( :ruby_definitions )
203
+ class_definition = definitions . find_class_by_full_name ( 'User' )
204
+ method_definition = class_definition . find_method_by_name ( 'deactivate' )
205
+ expect ( method_definition . call_method? ( 'send_notification' ) ) . to be_truthy
206
+ expect ( method_definition . call_method? ( 'activate' ) ) . to be_falsey
207
+ end
175
208
end
You can’t perform that action at this time.
0 commit comments