Class: Pubid::Nist::Renderer::Base

Inherits:
Core::Renderer::Base
  • Object
show all
Defined in:
lib/pubid/nist/renderer/base.rb

Direct Known Subclasses

Addendum

Instance Method Summary collapse

Instance Method Details

#render_appendix(appendix, opts, _params) ⇒ Object



135
136
137
138
139
140
141
142
143
144
# File 'lib/pubid/nist/renderer/base.rb', line 135

def render_appendix(appendix, opts, _params)
  case opts[:format]
  when :long
    " Appendix "
  when :abbrev
    " App. "
  when :short, :mr
    "app"
  end
end

#render_base_identifier(**opts) ⇒ Object



4
5
6
7
8
# File 'lib/pubid/nist/renderer/base.rb', line 4

def render_base_identifier(**opts)
  prerender(**opts)

  render_identifier(@prerendered_params, opts)
end

#render_code(code, opts, _params) ⇒ Object



33
34
35
# File 'lib/pubid/nist/renderer/base.rb', line 33

def render_code(code, opts, _params)
  (opts[:format] == :mr ? "." : " ") + code.to_s
end

#render_edition(edition, opts, _params) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/pubid/nist/renderer/base.rb', line 37

def render_edition(edition, opts, _params)
  return if opts[:without_edition]

  case opts[:format]
  when :long
    " #{edition.to_s(format: :long)}"
  when :abbrev
    " Ed. " + edition.to_s
  when :short, :mr
    "e" + edition.to_s
  end
end

#render_errata(errata, opts, _params) ⇒ Object



157
158
159
160
161
162
163
164
165
166
# File 'lib/pubid/nist/renderer/base.rb', line 157

def render_errata(errata, opts, _params)
  case opts[:format]
  when :long
    " Errata "
  when :abbrev
    " Err. "
  when :short, :mr
    "err"
  end
end

#render_identifier(params, opts) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/pubid/nist/renderer/base.rb', line 10

def render_identifier(params, opts)
  case opts[:format]
  when :short, :mr
    "%{series}%{code}%{volume}%{part}%{edition}%{revision}%{version}"\
    "%{supplement}%{section}%{appendix}%{errata}%{index}%{insert}%{update}"\
    "%{stage}%{translation}" % params
  else
    "%{series}%{code}%{stage}%{volume}%{part}%{edition}%{revision}%{version}"\
    "%{supplement}%{section}%{appendix}%{errata}%{index}%{insert}%{update}"\
    "%{translation}" % params
  end
end

#render_index(index, opts, _params) ⇒ Object



168
169
170
171
172
173
174
175
176
177
# File 'lib/pubid/nist/renderer/base.rb', line 168

def render_index(index, opts, _params)
  case opts[:format]
  when :long
    " Index "
  when :abbrev
    " Index. "
  when :short, :mr
    "indx"
  end
end

#render_insert(insert, opts, _params) ⇒ Object



179
180
181
182
183
184
185
186
187
188
# File 'lib/pubid/nist/renderer/base.rb', line 179

def render_insert(insert, opts, _params)
  case opts[:format]
  when :long
    " Insert "
  when :abbrev
    " Ins. "
  when :short, :mr
    "ins"
  end
end

#render_part(part, opts, _params) ⇒ Object



113
114
115
116
117
118
119
120
121
122
# File 'lib/pubid/nist/renderer/base.rb', line 113

def render_part(part, opts, _params)
  case opts[:format]
  when :long
    " Part "
  when :abbrev
    " Pt. "
  when :short, :mr
    "pt"
  end + part
end

#render_revision(revision, opts, _params) ⇒ Object



50
51
52
53
54
55
56
57
58
59
# File 'lib/pubid/nist/renderer/base.rb', line 50

def render_revision(revision, opts, _params)
  case opts[:format]
  when :long
    ", Revision "
  when :abbrev
    ", Rev. "
  when :short, :mr
    "r"
  end + (revision == '' ? '1' : revision).to_s
end

#render_section(section, opts, _params) ⇒ Object



146
147
148
149
150
151
152
153
154
155
# File 'lib/pubid/nist/renderer/base.rb', line 146

def render_section(section, opts, _params)
  case opts[:format]
  when :long
    " Section "
  when :abbrev
    " Sec. "
  when :short, :mr
    "sec"
  end + section
end

#render_series(series, opts, params) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/pubid/nist/renderer/base.rb', line 23

def render_series(series, opts, params)
  if series.to_s(opts[:format]).include?(params[:publisher].to_s(opts[:format]))
    return series.to_s(opts[:format])
  end

  "#{params[:publisher].to_s(opts[:format])}" +
    (opts[:format] == :mr ? "." : " ") +
    "#{series.to_s(opts[:format])}"
end

#render_stage(stage, opts, _params) ⇒ Object



190
191
192
193
194
195
196
197
198
199
# File 'lib/pubid/nist/renderer/base.rb', line 190

def render_stage(stage, opts, _params)
  case opts[:format]
  when :mr
    "."
  when :short
    " "
  else
    " "
  end + stage.to_s(opts[:format])
end

#render_supplement(supplement, opts, _params) ⇒ Object



124
125
126
127
128
129
130
131
132
133
# File 'lib/pubid/nist/renderer/base.rb', line 124

def render_supplement(supplement, opts, _params)
  case opts[:format]
  when :long
    " Supplement "
  when :abbrev
    " Suppl. "
  when :short, :mr
    "sup"
  end + supplement
end

#render_translation(translation, opts, _params) ⇒ Object



102
103
104
105
106
107
108
109
110
111
# File 'lib/pubid/nist/renderer/base.rb', line 102

def render_translation(translation, opts, _params)
  case opts[:format]
  when :long, :abbrev
    " (#{translation.upcase})"
  when :mr
    ".#{translation}"
  when :short
    " #{translation}"
  end
end

#render_update(update, opts, _params) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/pubid/nist/renderer/base.rb', line 85

def render_update(update, opts, _params)
  update_text = update.number.to_s
  update_text += "-#{update.year}" if update.year
  update_text += sprintf("%02d", update.month) if update.month

  case opts[:format]
  when :long
    " Update #{update_text}"
  when :abbrev
    " Upd. #{update_text}"
  when :short
    "/Upd#{update_text}"
  when :mr
    ".u#{update_text}"
  end
end

#render_version(version, opts, _params) ⇒ Object



61
62
63
64
65
66
67
68
69
70
# File 'lib/pubid/nist/renderer/base.rb', line 61

def render_version(version, opts, _params)
  case opts[:format]
  when :long
    ", Version "
  when :abbrev
    ", Ver. "
  when :short, :mr
    "ver"
  end + version
end

#render_volume(volume, opts, params) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/pubid/nist/renderer/base.rb', line 72

def render_volume(volume, opts, params)
  case opts[:format]
  when :long
    ", Volume "
  when :abbrev
    ", Vol. "
  when :short
    params[:code] ? "v" : " v"
  when :mr
    params[:code] ? "v" : ".v"
  end + volume
end