class RBI::Method
Methods and args
Attributes
is_singleton[RW]
name[RW]
params[R]
sigs[RW]
visibility[RW]
Public Class Methods
new( name, params: [], is_singleton: false, visibility: Public.new, sigs: [], loc: nil, comments: [], &block )
click to toggle source
Calls superclass method
RBI::NodeWithComments::new
# File lib/rbi/model.rb, line 492 def initialize( name, params: [], is_singleton: false, visibility: Public.new, sigs: [], loc: nil, comments: [], &block ) super(loc: loc, comments: comments) @name = name @params = params @is_singleton = is_singleton @visibility = visibility @sigs = sigs block&.call(self) end
Public Instance Methods
<<(param)
click to toggle source
# File lib/rbi/model.rb, line 512 def <<(param) @params << param end
accept_printer(v)
click to toggle source
# File lib/rbi/printer.rb, line 340 def accept_printer(v) previous_node = v.previous_node v.printn if previous_node && (!previous_node.oneline? || !oneline?) v.visit_all(comments) v.visit_all(sigs) v.printl("# #{loc}") if loc && v.print_locs v.printt unless v.in_visibility_group || visibility.public? v.print(visibility.visibility.to_s) v.print(" ") end v.print("def ") v.print("self.") if is_singleton v.print(name) unless params.empty? v.print("(") if inline_params? params.each_with_index do |param, index| v.print(", ") if index > 0 v.visit(param) end else v.printn v.indent params.each_with_index do |param, pindex| v.printt v.visit(param) v.print(",") if pindex < params.size - 1 param.comments.each_with_index do |comment, cindex| if cindex > 0 param.print_comment_leading_space(v, last: pindex == params.size - 1) else v.print(" ") end v.print("# #{comment.text.strip}") end v.printn end v.dedent end v.print(")") end v.print("; end") v.printn end
compatible_with?(other)
click to toggle source
# File lib/rbi/rewriters/merge_trees.rb, line 431 def compatible_with?(other) return false unless other.is_a?(Method) return false unless name == other.name return false unless params == other.params sigs.empty? || other.sigs.empty? || sigs == other.sigs end
fully_qualified_name()
click to toggle source
# File lib/rbi/model.rb, line 517 def fully_qualified_name if is_singleton "#{parent_scope&.fully_qualified_name}::#{name}" else "#{parent_scope&.fully_qualified_name}##{name}" end end
index_ids()
click to toggle source
# File lib/rbi/index.rb, line 112 def index_ids [fully_qualified_name] end
inline_params?()
click to toggle source
# File lib/rbi/printer.rb, line 393 def inline_params? params.all? { |p| p.comments.empty? } end
merge_with(other)
click to toggle source
Calls superclass method
RBI::NodeWithComments#merge_with
# File lib/rbi/rewriters/merge_trees.rb, line 439 def merge_with(other) return unless other.is_a?(Method) super other.sigs.each do |sig| sigs << sig unless sigs.include?(sig) end end
oneline?()
click to toggle source
# File lib/rbi/printer.rb, line 388 def oneline? comments.empty? && sigs.empty? && inline_params? end
to_s()
click to toggle source
# File lib/rbi/model.rb, line 526 def to_s "#{fully_qualified_name}(#{params.join(", ")})" end