File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -161,6 +161,10 @@ def find_classes_by_ancestor(superclass)
161
161
@modules . flat_map { |mod | mod . find_classes_by_ancestor ( superclass ) }
162
162
end
163
163
164
+ def find_method_by_name ( name )
165
+ methods . find { |method_definition | method_definition . name == name }
166
+ end
167
+
164
168
def full_name
165
169
names = [ name ]
166
170
this = self
Original file line number Diff line number Diff line change @@ -99,7 +99,7 @@ def user_type
99
99
} )
100
100
end
101
101
102
- it 'finds classes by full_name' do
102
+ it 'finds class by full_name' do
103
103
rewriter =
104
104
Synvert ::Rewriter . new 'test' , 'ruby_parse_helper' do
105
105
call_helper 'ruby/parse'
@@ -148,4 +148,28 @@ class UserJob < SynvertJob
148
148
classes = definitions . find_classes_by_ancestor ( 'ApplicationJob' )
149
149
expect ( classes . map ( &:full_name ) ) . to eq ( [ 'SynvertJob' , 'Synvert::UserJob' ] )
150
150
end
151
+
152
+ it 'finds method by name' do
153
+ rewriter =
154
+ Synvert ::Rewriter . new 'test' , 'ruby_parse_helper' do
155
+ call_helper 'ruby/parse'
156
+ end
157
+
158
+ FileUtils . mkdir_p ( 'app/models' )
159
+ File . write ( 'app/models/user.rb' , <<~EOF )
160
+ class User < ApplicationRecord
161
+ def activate
162
+ end
163
+
164
+ def deactivate
165
+ end
166
+ end
167
+ EOF
168
+
169
+ rewriter . process
170
+
171
+ definitions = rewriter . load_data ( :ruby_definitions )
172
+ class_definition = definitions . find_class_by_full_name ( 'User' )
173
+ expect ( class_definition . find_method_by_name ( 'deactivate' ) . name ) . to eq ( 'deactivate' )
174
+ end
151
175
end
You can’t perform that action at this time.
0 commit comments