Module: Metanorma::Release::SlugStrategy

Included in:
DraftSuffixSlug, EditionSlug, InternetDraftSlug, RfcSlug, VersionSlug
Defined in:
lib/metanorma/release/slug_strategy.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.publisher_from_identifier(identifier) ⇒ Object



24
25
26
27
28
# File 'lib/metanorma/release/slug_strategy.rb', line 24

def self.publisher_from_identifier(identifier)
  return nil if identifier.nil? || identifier.strip.empty?

  identifier.strip.split(/[\s-]/).first&.downcase
end

.slug_from_identifier(identifier) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/metanorma/release/slug_strategy.rb', line 15

def self.slug_from_identifier(identifier)
  identifier.to_s.strip
    .gsub(/\s+/, "-")
    .gsub(/:+/, "-")
    .downcase
    .gsub(/--+/, "-")
    .gsub(/[-.]+$/, "")
end

Instance Method Details

#compute_asset_name(publication) ⇒ Object

Raises:

  • (NotImplementedError)


10
11
12
13
# File 'lib/metanorma/release/slug_strategy.rb', line 10

def compute_asset_name(publication)
  raise NotImplementedError,
        "#{self.class} must implement #compute_asset_name"
end

#compute_tag(publication) ⇒ Object

Raises:

  • (NotImplementedError)


6
7
8
# File 'lib/metanorma/release/slug_strategy.rb', line 6

def compute_tag(publication)
  raise NotImplementedError, "#{self.class} must implement #compute_tag"
end