Sha256: c11ce67c58a69a091272e9ddaa9a2e990ebd1ec104512917c9e87c8433d2d34c

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

module Stepmod
  module Utils

    class Concept
      attr_accessor *%w(
        designation
        definition
        reference_anchor
        reference_clause
        examples
        notes
        synonym
        converted_definition
        file_path
      )

      def initialize(options)
        options.each_pair do |k, v|
          send("#{k}=", v)
        end
      end

      def self.parse(definition_xml, reference_anchor:, reference_clause:, file_path:)
        converted_definition = Stepmod::Utils::StepmodDefinitionConverter.convert(
          definition_xml,
          {
            # We don't want examples and notes
            no_notes_examples: true,
            reference_anchor: reference_anchor
          }
        )

        return nil if converted_definition.nil? || converted_definition.strip.empty?

        if definition_xml.name == 'ext_description'
          converted_definition = <<~TEXT
            #{converted_definition}

            NOTE: This term is incompletely defined in this document.
            Reference <<#{reference_anchor}>> for the complete definition.
          TEXT
        end
        new(
          converted_definition: converted_definition,
          reference_anchor: reference_anchor,
          reference_clause: reference_clause,
          file_path: file_path
        )
      end

      def to_mn_adoc
        <<~TEXT
          // STEPmod path:#{!file_path.empty? ? " #{file_path}" : ""}
          #{converted_definition}

          [.source]
          <<#{reference_anchor}#{reference_clause ? ",clause=" + reference_clause : ""}>>

        TEXT
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stepmod-utils-0.3.4 lib/stepmod/utils/concept.rb