module GraphQL::Language::Comments

Public Instance Methods

commentize(description, indent: '') click to toggle source
# File lib/graphql/language/comments.rb, line 6
def commentize(description, indent: '')
  lines = description.split("\n")

  comment = ''.dup

  lines.each do |line|
    if line == ''
      comment << "#{indent}#\n"
    else
      sublines = break_line(line, 120 - indent.length)
      sublines.each do |subline|
        comment << "#{indent}# #{subline}\n"
      end
    end
  end

  comment
end

Private Instance Methods

break_line(line, length) click to toggle source
# File lib/graphql/language/comments.rb, line 27
def break_line(line, length)
  return [line] if line.length < length + 5

  parts = line.split(Regexp.new("((?: |^).{15,#{length - 40}}(?= |$))"))
  return [line] if parts.length < 4

  sublines = [parts.slice!(0, 3).join]

  parts.each_with_index do |part, i|
    next if i % 2 == 1
    sublines << "#{part[1..-1]}#{parts[i + 1]}"
  end

  sublines
end