Sha256: e950e02091f8f85cbf8a097327eb773b5488bb656a48706f50db4cf6621b149b

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module YARD
  module APIPlugin
    class Verifier < ::YARD::Verifier
      def initialize(verbose=false)
        @verbose = verbose
        super()
      end

      def run(list)
        relevant = list.select { |o| relevant_object?(o) }

        if @verbose && relevant.any?
          log "#{relevant.length}/#{list.length} objects are relevant:"

          relevant.each do |object|
            log "\t- #{object.path}"
          end
        end

        relevant
      end

      def relevant_object?(object)
        case object.type
        when :root, :module, :constant
          false
        when :method, :class
          is_api = !object.tags('API').empty?
          is_internal = !object.tags('internal').empty?

          if @verbose && !is_api && !is_internal
            log "Resource #{object} will be ignored as it contains no @API tag."
          end

          is_api && !is_internal
        else
          object.parent.nil? && relevant_object?(object.parent)
        end
      end

      def log(*args)
        ::YARD::APIPlugin.log(*args)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yard-api-0.2.2 lib/yard-api/verifier.rb
yard-api-0.2.1 lib/yard-api/verifier.rb