module Mod
class A
# Some fn
# @param arg [Object]
def fn(arg)
case arg
in SomeClass['array', v]
'42'
else
super
end
end
# A nice little const.
CONST = %i[a b c]
end
end
Actual Output
Expected Output
And that was something I can achieve by:
Putting the const before the fn
module Mod
class A
# A nice little const.
CONST = %i[a b c]
# Some fn
# @param arg [Object]
def fn(arg)
case arg
in SomeClass['array', v]
'42'
else
super
end
end
end
end
Avoiding %i notation:
module Mod
class A
# Some fn
# @param arg [Object]
def fn(arg)
case arg
in SomeClass['array', v]
'42'
else
super
end
end
# A nice little const.
CONST = [:a, :b, :c]
end
end
None of those solutions are actually acceptable in my case:
I cannot change the order of these particular things, because the deconstruction happens in a class different than that of the const, and I cannot extract the class to a separate file (I can —physically— of course, it's just that it doesn't make sense in my project).
I cannot avoid %i notation because the actual const is humongous (again, I physically can, but I would be violating the codebase coding style to please YARD).
Environment details:
OS: mac (M1) or Linux (ubuntu) … I don't think it matters
Description
YARD is losing control with deconstruction and array of symbols.
Steps to reproduce
This is the minimal reproduction for the issue.
Gemfile
:.yardopts
:src/main.rb
:Actual Output
Expected Output
And that was something I can achieve by:
Putting the const before the fn
Avoiding
%i
notation:None of those solutions are actually acceptable in my case:
%i
notation because the actual const is humongous (again, I physically can, but I would be violating the codebase coding style to please YARD).Environment details:
ruby -v
): 3.3.1yard -v
): 0.9.36