Sha256: 85e6e31d172fd8d6fba4db6b3153c3eadbbf0055910661bce056550b4fe8b746
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
module YARD module Generators class TagsGenerator < Base before_section :header, :has_tags? before_section :option, :has_options? before_section :param, :has_params? def sections_for(object) [:header, [:example, :param, :yield, :yieldparam, :yieldreturn, :return, :raise, :todo, :author, :version, :since, :see]] end def yield(object) render_tags :yield end def yieldparam(object) render_tags :yieldparam end def yieldreturn(object) render_tags :yieldreturn end def return(object) render_tags :return end def raise(object) render_tags :raise, :no_names => true end def author(object) render_tags :author, :no_types => true, :no_names => true end def version(object) render_tags :version, :no_types => true, :no_names => true end def since(object) render_tags :since, :no_types => true, :no_names => true end protected def has_params?(object) object.is_a?(CodeObjects::MethodObject) && tags_by_param(object).size > 0 end def has_tags?(object) object.tags.size > 0 end def has_options?(object) object.has_tag?(:option) end def render_tags(name, opts = {}) opts = { :name => name }.update(opts) render(current_object, 'tags', opts) end def tags_by_param(object) cache = {} [:param, :option].each do |sym| object.tags(sym).each do |t| cache[t.name.to_s] = t end end object.parameters.map do |p| name = p.first.to_s cache[name] || cache[name[/^[*&](\w+)$/, 1]] end.compact end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yard-0.2.3 | lib/yard/generators/tags_generator.rb |