Class: Stepmod::Utils::Bibdata

Inherits:
Object
  • Object
show all
Defined in:
lib/stepmod/utils/bibdata.rb

Constant Summary collapse

DOCNUMBER =
10303

Instance Method Summary collapse

Constructor Details

#initialize(document:) ⇒ Bibdata

Returns a new instance of Bibdata.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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

Instance Method Details

#anchorObject



107
108
109
# File 'lib/stepmod/utils/bibdata.rb', line 107

def anchor
  docid.gsub("/", "-").gsub(" ", "_").gsub(":", "_")
end

#docidObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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_titleObject



103
104
105
# 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_titleObject



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# 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_adocObject



111
112
113
114
115
116
117
# File 'lib/stepmod/utils/bibdata.rb', line 111

def to_mn_adoc
  if title_en
    "* [[[#{anchor},#{docid}]]], _#{full_title}_"
  else
    "* [[[#{anchor},#{docid}]]]"
  end
end