File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -110,9 +110,12 @@ def build_delegation(node, receiver)
110
110
end
111
111
112
112
def full_const_name ( node )
113
- return node . source unless node . namespace
113
+ return unless node . const_type?
114
+ unless node . namespace
115
+ return node . absolute? ? "::#{ node . source } " : node . source
116
+ end
114
117
115
- "#{ full_const_name ( node . namespace ) } ::#{ node . children . last } "
118
+ "#{ full_const_name ( node . namespace ) } ::#{ node . short_name } "
116
119
end
117
120
118
121
def trivial_delegate? ( def_node )
Original file line number Diff line number Diff line change @@ -280,6 +280,19 @@ def foo
280
280
RUBY
281
281
end
282
282
283
+ it 'detects delegation to a cbase namespaced constant' do
284
+ expect_offense ( <<~RUBY )
285
+ def foo
286
+ ^^^ Use `delegate` to define delegations.
287
+ ::SomeModule::CONST.foo
288
+ end
289
+ RUBY
290
+
291
+ expect_correction ( <<~RUBY )
292
+ delegate :foo, to: :'::SomeModule::CONST'
293
+ RUBY
294
+ end
295
+
283
296
it 'detects delegation to an instance variable' do
284
297
expect_offense ( <<~RUBY )
285
298
def foo
You can’t perform that action at this time.
0 commit comments