class Docks::Tags::Signature

Constants

SYMBOL_TYPES_WITH_SIGNATURES

Public Class Methods

new() click to toggle source
# File lib/docks/tags/signature_tag.rb, line 4
def initialize
  @name = :signature
end

Public Instance Methods

process(symbol) click to toggle source
# File lib/docks/tags/signature_tag.rb, line 8
def process(symbol)
  symbol.update(@name) { |signature| signature.join("\n") }
end
setup_post_processors() click to toggle source
# File lib/docks/tags/signature_tag.rb, line 12
def setup_post_processors
  after_each_pattern(:late) do |pattern|
    pattern.symbols.each { |symbol| add_signature(symbol) }
  end
end

Private Instance Methods

add_signature(symbol) click to toggle source
# File lib/docks/tags/signature_tag.rb, line 22
def add_signature(symbol)
  return unless source = symbol.source
  language = Languages.language_for(source.file)
  return unless language

  if !symbol.signature && SYMBOL_TYPES_WITH_SIGNATURES.include?(symbol.symbol_type)
    symbol.signature = language.signature_for(symbol)
  end

  symbol.methods.each { |method| add_signature(method) }
end