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

Constructor Details

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

Instance Method Details

#generateObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/pubid/ashrae/urn_generator.rb', line 41

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



36
37
38
39
# File 'lib/pubid/ashrae/urn_generator.rb', line 36

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

#urn_amendmentObject



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

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

#urn_copublisherObject



32
33
34
# File 'lib/pubid/ashrae/urn_generator.rb', line 32

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



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

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

#urn_suffixObject



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

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

#urn_yearObject



12
13
14
15
16
17
18
# File 'lib/pubid/ashrae/urn_generator.rb', line 12

def urn_year
  if identifier.year
    return identifier.year.to_s
  end

  nil
end