lib/yard-api/verifier.rb in yard-api-0.3.0 vs lib/yard-api/verifier.rb in yard-api-0.3.1
- old
+ new
@@ -1,21 +1,22 @@
module YARD
module APIPlugin
class Verifier < ::YARD::Verifier
def initialize(verbose=false)
@verbose = verbose
+ @routes = {}
super()
end
def run(list)
relevant = list.select { |o| relevant_object?(o) }
if @verbose && relevant.any?
- log "#{relevant.length}/#{list.length} objects are relevant:"
+ logger.debug "#{relevant.length}/#{list.length} objects are relevant:"
relevant.each do |object|
- log "\t- #{object.path}"
+ logger.debug "\t- #{object.path}"
end
end
relevant
end
@@ -24,24 +25,34 @@
case object.type
when :root, :module, :constant
false
when :api
true
- when :method, :class
- return false if object.tags('internal').any?
+ when :method
+ return false if object.has_tag?(:internal) || !object.has_tag?(:API)
+ routes = @routes[object.object_id]
+ routes ||= begin
+ @routes[object.object_id] = YARD::Templates::Helpers::RouteHelper.routes_for_yard_object(object)
+ end
- object.tags('API').any?.tap do |is_api|
- if @verbose && !is_api
- log "Resource #{object} will be ignored as it contains no @API tag."
- end
+ if routes.empty?
+ logger.warn (
+ "API Endpoint #{object.path}# has no routes defined " +
+ "ib routes.rb and will be ignored."
+ )
end
+
+ routes.any?
+ when :class
+ return false if object.has_tag?(:internal) || !object.has_tag?(:API)
+ true
else
object.parent.nil? && relevant_object?(object.parent)
end
end
- def log(*args)
- ::YARD::APIPlugin.log(*args)
+ def logger
+ ::YARD::APIPlugin.logger
end
end
end
end