Class: Pubid::Ashrae::UrnGenerator

Inherits:
UrnGenerator::Base show all
Defined in:
lib/pubid/ashrae/urn_generator.rb

Instance Attribute Summary

Attributes inherited from UrnGenerator::Base

#identifier

Instance Method Summary collapse

Methods inherited from UrnGenerator::Base

#initialize, #maybe, #urn_edition, #urn_language, #urn_namespace, #urn_part, #urn_publisher, #urn_subpart, #urn_type, #urn_year

Constructor Details

This class inherits a constructor from Pubid::UrnGenerator::Base

Instance Method Details

#generateObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/pubid/ashrae/urn_generator.rb', line 33

def generate
  parts = ["urn", "ashrae"]
  parts << urn_number if urn_number
  parts << urn_year if urn_year
  parts << identifier.type.to_s.downcase if identifier.type
  parts << urn_suffix if urn_suffix
  parts << urn_amendment if urn_amendment
  parts << urn_reaffirmed if urn_reaffirmed
  parts << urn_copublisher if urn_copublisher

  parts[1] = identifier.publisher.to_s.downcase if identifier.publisher

  parts << urn_addendum if urn_addendum

  parts.join(":")
end

#urn_addendumObject



28
29
30
31
# File 'lib/pubid/ashrae/urn_generator.rb', line 28

def urn_addendum
  val = maybe(:addendum)
  "add.#{val}" if val
end

#urn_amendmentObject



16
17
18
# File 'lib/pubid/ashrae/urn_generator.rb', line 16

def urn_amendment
  "amd.#{identifier.amendment}" if identifier.amendment
end

#urn_copublisherObject



24
25
26
# File 'lib/pubid/ashrae/urn_generator.rb', line 24

def urn_copublisher
  "copub.#{identifier.copublisher.to_s.downcase}" if identifier.copublisher
end

#urn_numberObject



6
7
8
9
10
# File 'lib/pubid/ashrae/urn_generator.rb', line 6

def urn_number
  return nil unless identifier.code

  identifier.code.to_s
end

#urn_reaffirmedObject



20
21
22
# File 'lib/pubid/ashrae/urn_generator.rb', line 20

def urn_reaffirmed
  "reaff.#{identifier.reaffirmed}" if identifier.reaffirmed
end

#urn_suffixObject



12
13
14
# File 'lib/pubid/ashrae/urn_generator.rb', line 12

def urn_suffix
  identifier.suffix&.to_s&.downcase
end