Class: Pubid::Nist::Identifiers::Monograph

Inherits:
Base
  • Object
show all
Defined in:
lib/pubid/nist/identifiers/monograph.rb

Overview

NBS/NIST MONO (Monograph) Identifier Examples:

  • "NBS MONO 158" - Basic monograph
  • "NIST MONO 178" - NIST monograph
  • "NBS MONO 128pt1" - Monograph with part
  • "NIST MONO 1-1F" - Monograph with letter suffix
  • "NIST MONO 1-2Bv1" - Monograph with letter suffix and volume

Constant Summary collapse

TYPED_STAGES =
[
  Pubid::Components::TypedStage.new(
    abbr: ["MONO", "NBS MONO", "NIST MONO"],
    stage_code: "published",
    type_code: "mono",
  ),
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.typeObject



27
28
29
30
# File 'lib/pubid/nist/identifiers/monograph.rb', line 27

def type
  { key: :mono,
  web: :monograph, title: "Monograph", short: "MONO" }
end

.typed_stagesObject



23
24
25
# File 'lib/pubid/nist/identifiers/monograph.rb', line 23

def typed_stages
  TYPED_STAGES
end

Instance Method Details

#series_codeObject



33
34
35
# File 'lib/pubid/nist/identifiers/monograph.rb', line 33

def series_code
  "MONO"
end

#to_s(format = nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/pubid/nist/identifiers/monograph.rb', line 37

def to_s(format = nil)
  # Handle both keyword argument (hash) and positional argument (symbol/string)
  effective_format = if format.is_a?(Hash)
                       format[:format]
                     else
                       format
                     end

  # If explicit format is specified, use it. Otherwise, default to short.
  if effective_format.nil?
    super(:short)
  elsif effective_format == :mr
    to_mr_style
  else
    super(effective_format)
  end
end