Class: Pubid::Csa::UrnGenerator
Instance Attribute Summary
#identifier
Instance Method Summary
collapse
#initialize, #maybe, #urn_edition, #urn_language, #urn_namespace, #urn_part, #urn_publisher, #urn_subpart, #urn_type, #urn_year
Instance Method Details
#generate ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/pubid/csa/urn_generator.rb', line 54
def generate
parts = ["urn", "csa"]
prefix = urn_publisher_prefix || "csa"
parts << prefix
parts << urn_number if urn_number
parts << urn_no_number if urn_no_number
parts << urn_series if urn_series
parts << urn_series_prefix if urn_series_prefix
year = urn_year_csa
if year
year = "#{identifier.year_prefix}#{year}" if identifier.year_prefix
parts << year
end
parts << urn_reaffirmation if urn_reaffirmation
parts << urn_package if urn_package
parts << urn_year_format if urn_year_format
parts << urn_french if urn_french
parts.join(":")
end
|
#urn_french ⇒ Object
50
51
52
|
# File 'lib/pubid/csa/urn_generator.rb', line 50
def urn_french
"french" if identifier.french
end
|
#urn_no_number ⇒ Object
18
19
20
|
# File 'lib/pubid/csa/urn_generator.rb', line 18
def urn_no_number
"no.#{identifier.no_number}" if identifier.no_number
end
|
#urn_number ⇒ Object
12
13
14
15
16
|
# File 'lib/pubid/csa/urn_generator.rb', line 12
def urn_number
return nil unless identifier.code
identifier.code.value.to_s
end
|
#urn_package ⇒ Object
42
43
44
|
# File 'lib/pubid/csa/urn_generator.rb', line 42
def urn_package
"pkg.#{identifier.package}" if identifier.package
end
|
#urn_publisher_prefix ⇒ Object
6
7
8
9
10
|
# File 'lib/pubid/csa/urn_generator.rb', line 6
def urn_publisher_prefix
return nil unless identifier.publisher_prefix
identifier.publisher_prefix.to_s.downcase
end
|
#urn_reaffirmation ⇒ Object
38
39
40
|
# File 'lib/pubid/csa/urn_generator.rb', line 38
def urn_reaffirmation
"reaff.#{identifier.reaffirmation}" if identifier.reaffirmation
end
|
#urn_series ⇒ Object
22
23
24
|
# File 'lib/pubid/csa/urn_generator.rb', line 22
def urn_series
"series.#{identifier.series}" if identifier.series
end
|
#urn_series_prefix ⇒ Object
26
27
28
|
# File 'lib/pubid/csa/urn_generator.rb', line 26
def urn_series_prefix
"series.#{identifier.series_prefix}" if identifier.series_prefix
end
|
#urn_year_csa ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/pubid/csa/urn_generator.rb', line 30
def urn_year_csa
return nil unless identifier.year
year = identifier.year.to_s
year = year[-2..] if year.length == 4 && year.start_with?("20")
year
end
|
46
47
48
|
# File 'lib/pubid/csa/urn_generator.rb', line 46
def urn_year_format
"format.dash" if identifier.year_format == "dash"
end
|