Parent

Class/Module Index [+]

Quicksearch

YARD::Verifier

Similar to a Proc, but runs a set of Ruby expressions using a small DSL to make tag lookups easier.

The syntax is as follows:

@example Create a verifier to check for objects that don't have @private tags

verifier = Verifier.new('!@private')
verifier.call(object) # => true (no @private tag)

@example Create a verifier to find any return tag with an empty description

Verifier.new('@return.text.empty?')
# Equivalent to:
Verifier.new('object.tag(:return).text.empty?')

@example Check if there are any @param tags

Verifier.new('@@param.empty?')
# Equivalent to:
Verifier.new('object.tags(:param).empty?')

@example Using object or o to look up object attributes directly

Verifier.new('object.docstring == "hello world"')
# Equivalent to:
Verifier.new('o.docstring == "hello world"')

@example Without using object or o

Verifier.new('tag(:return).size == 1 || has_tag?(:author)')

@example Specifying multiple expressions

Verifier.new('@return', '@param', '@yield')
# Equivalent to:
Verifier.new('@return && @param && @yield')

Constants

NILCLASS_METHODS

@private

Attributes

expressions[R]

@return [Array<String>] a list of all expressions the verifier checks for @since 0.5.6

o[R]

@return [CodeObjects::Base] the current object being tested

object[R]

@return [CodeObjects::Base] the current object being tested

Public Class Methods

new(*expressions) click to toggle source

Creates a verifier from a set of expressions

@param [Array<String>] expressions a list of Ruby expressions to

parse.
# File lib/yard/verifier.rb, line 47
def initialize(*expressions)
  @expressions = []
  add_expressions(*expressions)
end

Public Instance Methods

add_expressions(*expressions) click to toggle source

Adds a set of expressions and recompiles the verifier

@param [Array<String>] expressions a list of expressions @return [void] @since 0.5.6

# File lib/yard/verifier.rb, line 57
def add_expressions(*expressions)
  self.expressions += expressions.flatten
end
call(object) click to toggle source

Tests the expressions on the object.

@note If the object is a {CodeObjects::Proxy} the result will always be true. @param [CodeObjects::Base] object the object to verify @return [Boolean] the result of the expressions

# File lib/yard/verifier.rb, line 75
def call(object)
  return true if object.is_a?(CodeObjects::Proxy)
  modify_nilclass
  @object = object
  retval = __execute ? true : false
  unmodify_nilclass
  retval
end
expressions=(value) click to toggle source
# File lib/yard/verifier.rb, line 38
def expressions=(value)
  @expressions = value
  create_method_from_expressions
end
method_missing(sym, *args, &block) click to toggle source

Passes any method calls to the object from the {call}

# File lib/yard/verifier.rb, line 62
def method_missing(sym, *args, &block)
  if object.respond_to?(sym)
    object.send(sym, *args, &block)
  else
    super
  end
end
run(list) click to toggle source

Runs a list of objects against the verifier and returns the subset of verified objects.

@param [Array<CodeObjects::Base>] list a list of code objects @return [Array<CodeObjects::Base>] a list of code objects that match

the verifier.
# File lib/yard/verifier.rb, line 90
def run(list)
  list.reject {|item| call(item).is_a?(FalseClass) }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.