class Stepmod::Utils::Bibdata

Constants

DOCNUMBER

Public Class Methods

new(document:) click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 10
def initialize(document:)
  return nil unless document.is_a?(Nokogiri::XML::Element)

  # module, resource, application_protocol, business_object_model
  @type = document.name

  raise "UnknownFileError" unless %w(module resource
                                     application_protocol business_object_model).include?(@type)

  @doctype = document["status"]
  @part = document["part"]
  @title_en = document["title"] ||
    document["name"].gsub("_", " ").capitalize.gsub("2d", "2D").gsub("3d",
                                                                     "3D")
  @title_fr = document["name.french"]
  @version = document["version"]
  @language = document["language"]

  # Some publication.year contains month...
  @pub_year = document["publication.year"].split("-").first
  @pub_date = document["publication.date"]

  # puts to_mn_adoc

  self
  # <module
  #    name="security_classification"
  #    name.french="Classification des s&#233;curit&#233;s"
  #    part="1015"
  #    wg.number="1095"
  #    wg.number.supersedes="720"
  #    wg.number.arm.supersedes="1096"
  #    wg.number.arm="3221"
  #    wg.number.mim="1097"
  #    checklist.internal_review="2133"
  #    checklist.project_leader="2134"
  #    checklist.convener="2135"
  #    version="1"
  #    status="TS"
  #    language="E"
  #    publication.year="2004"
  #     publication.date="2004-12-01"
  #    published="y"
  #    rcs.date="$Date: 2009/11/02 10:59:35 $"
  #    rcs.revision="$Revision: 1.26 $"
  #   development.folder="dvlp"
  # >
end

Public Instance Methods

anchor() click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 107
def anchor
  docid.gsub("/", "-").gsub(" ", "_").gsub(":", "_")
end
docid() click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 59
def docid
  no_date = case doctype
            when "IS"
              "ISO #{DOCNUMBER}-#{part}"
            when "WD"
              "ISO/WD #{DOCNUMBER}-#{part}"
            when "CD"
              "ISO/CD #{DOCNUMBER}-#{part}"
            when "DIS"
              "ISO/DIS #{DOCNUMBER}-#{part}"
            when "FDIS"
              "ISO/FDIS #{DOCNUMBER}-#{part}"
            when "TS"
              "ISO/TS #{DOCNUMBER}-#{part}"
            when "CD-TS"
              "ISO/CD TS #{DOCNUMBER}-#{part}"
            else
              "UNKNOWN DOCTYPE: (#{doctype})"
            end

  if pub_year
    "#{no_date}:#{pub_year}"
  else
    no_date
  end
end
full_title() click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 103
def full_title
  "Industrial automation systems and integration -- Product data representation and exchange -- Part #{part}: #{part_title}"
end
part_title() click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 86
def part_title
  case part
  when [200..299]
    "Application protocol: #{title_en}"
  when [300..399]
    "Abstract test suite: #{title_en}"
  when [400..499]
    "Application module: #{title_en}"
  when [500..599]
    "Application interpreted construct: #{title_en}"
  when [1000..1799]
    "Application module: #{title_en}"
  else
    title_en
  end
end
to_mn_adoc() click to toggle source
# File lib/stepmod/utils/bibdata.rb, line 111
def to_mn_adoc
  if title_en
    "* [[[#{anchor},#{docid}]]], _#{full_title}_"
  else
    "* [[[#{anchor},#{docid}]]]"
  end
end