Sha256: facd9971976e95af3da3c3fdd0cfc35c175acd763dd1ae4258d0598cdefc7e76

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

module Stepmod
  module Utils
    module Converters
      class StepmodExtDescription < ReverseAdoc::Converters::Base
        def convert(node, state = {})
          state = state.merge(schema_name: node["linkend"])
          linkend = node["linkend"].split(".")

          # We only want ENTITY entries, not their attributes
          # https://github.com/metanorma/iso-10303-2/issues/36#issuecomment-841300092
          return nil if linkend.length != 2

          child_text = treat_children(node, state).strip
          return nil if child_text.empty?

          # Only taking the first paragraph of the definition
          child_text = child_text.split("\n").first

          # # Only taking the first sentence
          # if child_text.contains?(".")
          #   child_text = child_text.split(".").first
          # end

          domain =  case linkend.first
                    when /_mim$/, /_arm$/
                      "STEP module"
                    # when /_schema$/
                    else
                      "STEP resource"
                    end

          <<~TEMPLATE
            === #{linkend.last}

            #{domain ? "domain:[#{domain}]" : ''}

            #{child_text}
          TEMPLATE
        end
      end
      ReverseAdoc::Converters.register :ext_description,
                                       StepmodExtDescription.new
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stepmod-utils-0.3.8 lib/stepmod/utils/converters/stepmod_ext_description.rb
stepmod-utils-0.3.7 lib/stepmod/utils/converters/stepmod_ext_description.rb