Sha256: f4976bfe4dfdf1eea44f2a181f8621449012282ecd83da5cb367a3bb086d9c5c
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
module CukeModeler # @api private # # A mix-in module containing methods used by models that represent an element that has a # description. Internal helper class. module Described # @api # # The description of the element attr_accessor :description private def description_output_string text = '' unless description.empty? description_lines = description.split("\n") text << "\n" if description_lines.first =~ /\S/ text << description_lines.join("\n") end text end def no_description_to_output? description.nil? || description.empty? end def populate_description(parsed_model_data) @description = trimmed_description(parsed_model_data['description']) end def trimmed_description(description) description = description.split("\n") trim_leading_blank_lines(description) trim_trailing_blank_lines(description) trim_leading_spaces(description) trim_trailing_spaces(description) description.join("\n") end def trim_leading_blank_lines(description) description.replace(description.drop_while { |line| line !~ /\S/ }) end def trim_trailing_blank_lines(_description) # Nothing to do. Already done by the parser but leaving this here in case that changes in future versions. end def trim_leading_spaces(description) non_blank_lines = description.grep(/\S/) fewest_spaces = non_blank_lines.collect { |line| line[/^\s*/].length }.min || 0 description.each { |line| line.slice!(0..(fewest_spaces - 1)) } if fewest_spaces.positive? end def trim_trailing_spaces(description) description.map!(&:rstrip) end end end
Version data entries
4 entries across 4 versions & 1 rubygems