Tôi có một phương pháp mà nên tận 1+ thông số của bất kỳ lớp, tương tự như Array#push:Cách tốt nhất để ghi lại thông số "splatted" với YARD?
def my_push(*objects)
raise ArgumentError, 'Needs 1+ arguments' if objects.empty?
objects.each do |obj|
puts "An object was pushed: #{obj.inspect}"
@my_array.push obj
end
end
cách tốt nhất để ghi lại các thông số phương pháp sử dụng cú pháp YARD là gì?
Edit:
Tôi nhận ra rằng câu hỏi ban đầu của tôi là một chút quá mơ hồ và không khá rõ những gì tôi đang tìm kiếm.
Câu hỏi hay hơn là, cách tốt nhất để xác định tính chất của phương pháp (1-∞ trong trường hợp này) trong YARD khi sử dụng thông số được chia nhỏ là gì? Tôi biết tôi chỉ có thể chỉ định nó trong văn bản, nhưng nó có vẻ như có nên là một thẻ hoặc một cái gì đó tương tự như xác định sự tinh thần.
tôi cập nhật câu hỏi của tôi là cụ thể hơn một chút. Vấn đề duy nhất với 'Array
Tôi vẫn nghĩ rằng 'overload' sẽ là thẻ thích hợp nhất (và có sẵn), đặc biệt vì không có lý do _technical_ mà phương thức không thể chấp nhận một danh sách trống (từ một phối cảnh định nghĩa phương thức) - tài liệu cho nó trông rất phù hợp : http://www.rubydoc.info/gems/yard/file/docs/Tags.md#overload. Điều gì sẽ xảy ra nếu bạn thay đổi định nghĩa phương thức thành 'my_push (first_object, * more_objects)' và sau đó kết hợp và làm phẳng chúng. Không đẹp lắm, tôi thừa nhận, nhưng có được tinh thần thi hành ... – davemyron
Vấn đề tôi thấy với '@param [Array]' là splat kết thúc một đối số Array không được chia nhỏ thành một Array: 'def push3 (* args) ; args.inspect kết thúc; push3 ([]) # => [[]] ' *** Chỉnh sửa **: Tôi hoàn toàn không thuyết phục SO định dạng khối nhận xét nhiều dòng * – carp