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.



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
58
# File 'lib/stepmod/utils/bibdata.rb', line 12

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

  return 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



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

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

#docidObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/stepmod/utils/bibdata.rb', line 60

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 "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



102
103
104
# File 'lib/stepmod/utils/bibdata.rb', line 102

def full_title
  "Industrial automation systems and integration -- Product data representation and exchange -- Part #{part}: #{part_title}"
end

#part_titleObject



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/stepmod/utils/bibdata.rb', line 85

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



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

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