module YARD::DocsHelper

Helper methods to use for yard documentation

Public Instance Methods

one_of(enumerable, lower: false, sort: true) click to toggle source
# File lib/yard/docs_helper.rb, line 8
def one_of(enumerable, lower: false, sort: true)
  # Sort the array if requested
  if sort
    enumerable = enumerable.sort do |a, b|
      a.instance_of?(b.class) ? a <=> b : a.class.to_s <=> b.class.to_s
    end
  end

  values =
    case enumerable
    when Hash
      enumerable.map do |key, value|
        "#{pretty_value(key)} (#{pretty_value(value)})"
      end
    else
      enumerable.map do |key|
        pretty_value(key)
      end
    end

  prefix = "One of"
  prefix = prefix.downcase if lower

  "#{prefix} #{values.to_sentence(last_word_connector: ', or ')}."
end
pretty_value(val) click to toggle source
# File lib/yard/docs_helper.rb, line 68
def pretty_value(val)
  case val
  when nil
    "`nil`"
  when Symbol
    "`:#{val}`"
  else
    "`#{val}`"
  end
end
status_module_and_short_name(component) click to toggle source
# File lib/yard/docs_helper.rb, line 61
def status_module_and_short_name(component)
  name_with_status = component.name.gsub(/Primer::|Component/, "")

  m = name_with_status.match(/(?<status>Beta|Alpha|Deprecated)?(?<_colons>::)?(?<name>.*)/)
  [m[:status]&.downcase, m[:name].gsub("::", "")]
end