one_of

in lib/yard/docs_helper.rb [7:32]


    def one_of(enumerable, lower: false, sort: true)
      
      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