123456789_123456789_123456789_123456789_123456789_

Module: YARD::Templates::Helpers::BaseHelper

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/yard/templates/helpers/base_helper.rb

Overview

The base helper module included in all templates.

Managing Global Template State

  • #globals ⇒ OpenStruct

    An object that keeps track of global state throughout the entire template rendering process (including any sub-templates).

Running the Verifier

Escaping Text

Linking Objects and URLs

Formatting Object Attributes

Instance Attribute Summary

Instance Attribute Details

#object (rw)

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 5

attr_accessor :object, :serializer

#ownerCodeObjects::Base (readonly)

Returns:

  • (CodeObjects::Base)

    the object representing the current generated page. Might not be the current #object when inside sub-templates.

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 11

attr_reader :owner

#serializer (rw)

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 5

attr_accessor :object, :serializer

Instance Method Details

#format_object_title(object) ⇒ String

Examples:

s = format_object_title ModuleObject.new(:root, :MyModuleName)
s # => "Module: MyModuleName"

Parameters:

Returns:

  • (String)

    the page title name for a given object

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 196

def format_object_title(object)
  case object
  when YARD::CodeObjects::RootObject
    "Top Level Namespace"
  else
    format_object_type(object) + ": " + object.title
  end
end

#format_object_type(object) ⇒ String

Examples:

Formatted type of an exception class

o = ClassObject.new(:root, :MyError)
o.superclass = P('RuntimeError')
format_object_type(o) # => "Exception"

Formatted type of a method

o = MethodObject.new(:root, :to_s)
format_object_type(o) # => "Method"

Parameters:

Returns:

  • (String)

    the human-readable formatted #type for the object

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 182

def format_object_type(object)
  case object
  when YARD::CodeObjects::ClassObject
    object.is_exception? ? "Exception" : "Class"
  else
    object.type.to_s.capitalize
  end
end

#format_source(value) ⇒ String

Indents and formats source code

Parameters:

  • value (String)

    the input source code

Returns:

  • (String)

    formatted source code

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 209

def format_source(value)
  sp = value.split("\n").last[/^(\s+)/, 1]
  num = sp ? sp.size : 0
  value.gsub(/^\s{#{num}}/, '')
end

#format_types(list, brackets = true) ⇒ String

Formats a list of return types for output and links each type.

Examples:

Formatting types

format_types(['String', 'Array']) #=> "(String, Array)"

Formatting types without surrounding brackets

format_types(['String', 'Array'], false) #=> "String, Array"

Parameters:

  • list (Array<String>)

    a list of types

  • brackets (Boolean) (defaults to: true)

    whether to surround the types in brackets

Returns:

  • (String)

    the formatted list of Ruby types

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 168

def format_types(list, brackets = true)
  list.nil? || list.empty? ? "" : (brackets ? "(#{list.join(", ")})" : list.join(", "))
end

#globalsOpenStruct

An object that keeps track of global state throughout the entire template rendering process (including any sub-templates).

Returns:

  • (OpenStruct)

    a struct object that stores state

Since:

  • 0.6.0

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 20

def globals; options.globals end

#h(text)

Escapes text. This is used a lot by the HtmlHelper and there should be some helper to "clean up" text for whatever, this is it.

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 38

def h(text)
  text
end

#linkify(*args)

Links objects or URLs. This method will delegate to the correct link_ method depending on the arguments passed in.

Examples:

Linking a URL

linkify('http://example.com')

Including docstring contents of an object

linkify('include:YARD::Docstring')

Linking to an extra file

linkify('file:README')

Linking an object by path

linkify('YARD::Docstring')
[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 55

def linkify(*args)
  if args.first.is_a?(String)
    case args.first
    when %r{://}, /^mailto:/
      link_url(args[0], args[1], {:target => '_parent'}.merge(args[2] || {}))
    when /^include:file:(\S+)/
      file = $1
      relpath = File.relative_path(Dir.pwd, File.expand_path(file))
      if relpath =~ /^\.\./
        log.warn "Cannot include file from path `#{file}'"
        ""
      elsif File.file?(file)
        link_include_file(file)
      else
        log.warn "Cannot find file at `#{file}' for inclusion"
        ""
      end
    when /^include:(\S+)/
      path = $1
      obj = YARD::Registry.resolve(object.namespace, path)
      if obj
        link_include_object(obj)
      else
        log.warn "Cannot find object at `#{path}' for inclusion"
        ""
      end
    when /^render:(\S+)/
      path = $1
      obj = YARD::Registry.resolve(object, path)
      if obj
        opts = options.dup
        opts.delete(:serializer)
        obj.format(opts)
      else
        ''
      end
    when /^file:(\S+?)(?:#(\S+))?$/
      link_file($1, args[1] ? args[1] : nil, $2)
    else
      link_object(*args)
    end
  else
    link_object(*args)
  end
end

#run_verifier(list) ⇒ Array<CodeObjects::Base>

Runs a list of objects against the ::YARD::Verifier object passed into the template and returns the subset of verified objects.

Parameters:

Returns:

  • (Array<CodeObjects::Base>)

    a list of code objects that match the verifier. If no verifier is supplied, all objects are returned.

[ GitHub ]

  
# File 'lib/yard/templates/helpers/base_helper.rb', line 30

def run_verifier(list)
  options.verifier ? options.verifier.run(list) : list
end