relaton-render 0.1.0 → 3.0.0.pre.alpha.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +4 -1
  3. data/.github/workflows/release.yml +24 -0
  4. data/.gitignore +14 -0
  5. data/.rubocop.yml +2 -2
  6. data/Gemfile +17 -1
  7. data/README.adoc +61 -197
  8. data/docs/citation-style-pack.adoc +367 -0
  9. data/lib/relaton/render/general.rb +305 -0
  10. data/lib/relaton/render/iso690/element.rb +153 -0
  11. data/lib/relaton/render/iso690/elements/access.rb +44 -0
  12. data/lib/relaton/render/iso690/elements/authorizer.rb +30 -0
  13. data/lib/relaton/render/iso690/elements/citeid.rb +39 -0
  14. data/lib/relaton/render/iso690/elements/component_part.rb +99 -0
  15. data/lib/relaton/render/iso690/elements/creator.rb +258 -0
  16. data/lib/relaton/render/iso690/elements/edition.rb +92 -0
  17. data/lib/relaton/render/iso690/elements/extent.rb +71 -0
  18. data/lib/relaton/render/iso690/elements/identifier.rb +46 -0
  19. data/lib/relaton/render/iso690/elements/location.rb +73 -0
  20. data/lib/relaton/render/iso690/elements/medium.rb +32 -0
  21. data/lib/relaton/render/iso690/elements/numeration.rb +26 -0
  22. data/lib/relaton/render/iso690/elements/production.rb +92 -0
  23. data/lib/relaton/render/iso690/elements/pub_date.rb +56 -0
  24. data/lib/relaton/render/iso690/elements/series.rb +66 -0
  25. data/lib/relaton/render/iso690/elements/size.rb +41 -0
  26. data/lib/relaton/render/iso690/elements/status.rb +30 -0
  27. data/lib/relaton/render/iso690/elements/stddoc.rb +40 -0
  28. data/lib/relaton/render/iso690/elements/title.rb +56 -0
  29. data/lib/relaton/render/iso690/elements/updated.rb +38 -0
  30. data/lib/relaton/render/iso690/elements.rb +67 -0
  31. data/lib/relaton/render/iso690/fields.rb +142 -0
  32. data/lib/relaton/render/iso690/i18n/en.yml +47 -0
  33. data/lib/relaton/render/iso690/i18n/fr.yml +14 -0
  34. data/lib/relaton/render/iso690/i18n/ja.yml +38 -0
  35. data/lib/relaton/render/iso690/i18n.rb +83 -0
  36. data/lib/relaton/render/iso690/identifier_kinds.rb +29 -0
  37. data/lib/relaton/render/iso690/index_renderer.rb +57 -0
  38. data/lib/relaton/render/iso690/kinds.rb +53 -0
  39. data/lib/relaton/render/iso690/renderer.rb +148 -0
  40. data/lib/relaton/render/iso690/style/locale.rb +53 -0
  41. data/lib/relaton/render/iso690/style/name_form.rb +87 -0
  42. data/lib/relaton/render/iso690/style/scheme.rb +33 -0
  43. data/lib/relaton/render/iso690/style/sort_rule.rb +25 -0
  44. data/lib/relaton/render/iso690/style/template_map.rb +40 -0
  45. data/lib/relaton/render/iso690/style/type_template.rb +37 -0
  46. data/lib/relaton/render/iso690/style.rb +119 -0
  47. data/lib/relaton/render/iso690/styles/author-date.yml +31 -0
  48. data/lib/relaton/render/iso690/template.rb +248 -0
  49. data/lib/relaton/render/iso690.rb +26 -0
  50. data/lib/relaton/render/version.rb +5 -0
  51. data/lib/relaton-render.rb +12 -5
  52. data/relaton-render.gemspec +7 -11
  53. metadata +57 -86
  54. data/lib/isodoc/i18n.rb +0 -24
  55. data/lib/isodoc-yaml/i18n-ar.yaml +0 -2
  56. data/lib/isodoc-yaml/i18n-de.yaml +0 -2
  57. data/lib/isodoc-yaml/i18n-en.yaml +0 -22
  58. data/lib/isodoc-yaml/i18n-es.yaml +0 -2
  59. data/lib/isodoc-yaml/i18n-fr.yaml +0 -2
  60. data/lib/isodoc-yaml/i18n-ru.yaml +0 -23
  61. data/lib/isodoc-yaml/i18n-zh-Hans.yaml +0 -2
  62. data/lib/parse/parse.rb +0 -54
  63. data/lib/parse/parse_contributors.rb +0 -96
  64. data/lib/parse/parse_extract.rb +0 -155
  65. data/lib/relaton/config.yml +0 -67
  66. data/lib/relaton/render.rb +0 -123
  67. data/lib/relaton/render_classes.rb +0 -126
  68. data/lib/relaton/render_fields.rb +0 -151
  69. data/lib/relaton/version.rb +0 -5
  70. data/lib/template/template.rb +0 -152
  71. data/lib/utils/utils.rb +0 -27
@@ -0,0 +1,248 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Relaton
4
+ module Render
5
+ module Iso690
6
+ # A citation template as declared in a style instance: literal text
7
+ # interleaved with {{slot}} placeholders resolved against the ISO 690
8
+ # data element inventory. A leading literal attaches to the first
9
+ # slot, and a literal between two slots to the preceding one, so an
10
+ # absent field never orphans punctuation around it. The last rendered
11
+ # slot gives up its trailing literal in favour of the template
12
+ # terminator, appended once when any field rendered and the output
13
+ # does not already end with it.
14
+ class Template
15
+ SLOT = /\{\{\s*([\w-]+)\s*\}\}/.freeze
16
+
17
+ Field = Struct.new(:present?, :text)
18
+
19
+ def initialize(source)
20
+ @chunks = []
21
+ @terminator = ""
22
+ scan(source.to_s)
23
+ end
24
+
25
+ # The short cite renders the reference with the first-biblio
26
+ # marker appended to its first component: isodoc's styled
27
+ # references (eref2linkshort) split there (the 1.x
28
+ # fmt-first-biblio-delim)
29
+ def evaluate_short(fields, delim)
30
+ present = present_indices(fields)
31
+ return "" if present.empty?
32
+
33
+ # The split marker follows the leading run of present slots
34
+ # (the 1.x first SEGMENT: "{{creator}}{{role}}" splits after
35
+ # the role), before the first literal that follows it
36
+ lead_slots = []
37
+ @chunks.each_with_index do |(kind, _value), i|
38
+ break if kind != :slot || !present.include?(i)
39
+
40
+ lead_slots << i
41
+ end
42
+ split_at = lead_slots.last ? lead_slots.last + 1 : nil
43
+
44
+ out = +""
45
+ @chunks.each_with_index do |(kind, value), i|
46
+ text =
47
+ case kind
48
+ when :slot
49
+ field = fields[normalise(value)]
50
+ next unless field&.present?
51
+
52
+ field.text
53
+ else
54
+ next unless bridged?(i, present)
55
+
56
+ value
57
+ end
58
+ if split_at == i
59
+ out << fieldless(lead_slots, fields) if false
60
+ out << delim.to_s
61
+ split_at = nil
62
+ end
63
+ out << text unless text.nil?
64
+ end
65
+ out << delim.to_s if split_at == @chunks.length
66
+ terminate(out).rstrip
67
+ end
68
+
69
+ # 1.x segment-join semantics: present elements joined with the
70
+ # template's separators — a literal renders only when it
71
+ # separates (a run of absent elements between) two present
72
+ # elements; leading and trailing literals drop with the
73
+ # elements they would have attached to
74
+ def evaluate(fields)
75
+ present = present_indices(fields)
76
+ return "" if present.empty?
77
+
78
+ out = +"".dup
79
+ # Parenthetical groups balance on the template's literal
80
+ # parens alone: data text (a series run "(N.S.)", a host
81
+ # creator's closing paren) carries parens of its own that
82
+ # are no part of the template's group structure
83
+ paren_balance = 0
84
+ @chunks.each_with_index do |(kind, value), i|
85
+ if kind == :slot
86
+ field = fields[normalise(value)]
87
+ out << field.text if field&.present?
88
+ elsif value.to_s.match?(/\A[))]/)
89
+ # Symmetric close: with no pending open the close-paren
90
+ # drops, and any trailing punctuation bridges normally
91
+ closes = value.to_s[/\A[))]+/]
92
+ emitted = [paren_balance, closes.size].min
93
+ if emitted.positive?
94
+ out << closes[0, emitted] +
95
+ value.to_s[closes.size..].to_s
96
+ paren_balance -= emitted
97
+ else
98
+ rest = value.to_s.sub(/\A[))]+/, "")
99
+ # the trailing separator of a dropped group bridges as
100
+ # though the group were never there
101
+ if !rest.empty? && present.any? { |j| j > i } &&
102
+ group_gap?(i, present)
103
+ out << rest
104
+ end
105
+ end
106
+ elsif value.to_s.match?(/[((]\z/)
107
+ # A literal opening a parenthetical group ("({{series}})",
108
+ # "。({{series}})") attaches its paren to the slot it
109
+ # opens — the pair drops with an absent element, while
110
+ # any leading punctuation bridges normally
111
+ lead, paren = value.to_s.match(/\A(.*)([((])\z/).captures
112
+ out << lead if bridged_text?(i, lead, present)
113
+ if present.include?(i + 1)
114
+ out << paren
115
+ paren_balance += 1
116
+ end
117
+ elsif bridged?(i, present) ||
118
+ (value.include?("<") && present.any? { |j| j < i })
119
+ # markup attaches to the element it closes
120
+ out << value
121
+ elsif close_pending_paren?(out, value)
122
+ out << value
123
+ end
124
+ end
125
+ terminate(out).rstrip
126
+ end
127
+
128
+ private
129
+
130
+ def scan(source)
131
+ rest = source
132
+ while (slot = SLOT.match(rest))
133
+ @chunks << [:text, rest[0...slot.begin(0)]] if
134
+ slot.begin(0).positive?
135
+ @chunks << [:slot, slot[1]]
136
+ rest = rest[slot.end(0)..]
137
+ end
138
+ @terminator = rest
139
+ end
140
+
141
+ def present_indices(fields)
142
+ @chunks.each_index.select do |i|
143
+ kind, value = @chunks[i]
144
+ next false unless kind == :slot
145
+
146
+ field = fields[normalise(value)]
147
+ !field.nil? && field.present?
148
+ end
149
+ end
150
+
151
+ # The texts between this close and the last present slot are
152
+ # all parenthetical-group parts (each dropped or partial)
153
+ def group_gap?(index, present)
154
+ left = present.select { |i| i < index }.max
155
+ @chunks[(left + 1)...index].all? do |(_, text)|
156
+ text.to_s.match?(/\A[))]|[((]\z/)
157
+ end
158
+ end
159
+
160
+ # The leading punctuation of a paren-opening literal bridges
161
+ # per the segment-join rule (a bare paren has no lead)
162
+ def bridged_text?(index, lead, present)
163
+ return true if lead.empty?
164
+
165
+ first_slot = @chunks.index { |(kind, _)| kind == :slot }
166
+ return present.include?(first_slot) if index < first_slot
167
+
168
+ left = present.select { |i| i < index }.max
169
+ left && present.any? { |i| i > index } &&
170
+ !@chunks[(left + 1)...index].any? do |(kind, _)|
171
+ kind == :text
172
+ end
173
+ end
174
+
175
+ # A literal is the trailing separator of the element that
176
+ # precedes it: it renders when that element renders and a
177
+ # later element renders, and it is the FIRST literal of its
178
+ # gap (the 1.x segment join — absent elements between two
179
+ # present ones leave the single separator that follows the
180
+ # earlier present element; an absent slot directly before a
181
+ # present one, as "{{date}}{{disambiguator}}, {{access}}",
182
+ # does not swallow it). A leading literal (no slot precedes
183
+ # it) attaches to the first slot, emitting only when that
184
+ # slot is present.
185
+ def bridged?(index, present)
186
+ first_slot = @chunks.index { |(kind, _)| kind == :slot }
187
+ return present.include?(first_slot) if index < first_slot
188
+
189
+ left = present.select { |i| i < index }.max
190
+ left && present.any? { |i| i > index } &&
191
+ !@chunks[(left + 1)...index].any? do |(kind, _)|
192
+ kind == :text
193
+ end
194
+ end
195
+
196
+ # A template's paired literal ("({{production}})") closes even
197
+ # when nothing follows the present element it wraps. Fullwidth
198
+ # parens (CJK) pair the same way
199
+ def close_pending_paren?(out, value)
200
+ return false unless value.start_with?(")", "\uFF09")
201
+
202
+ opens = out.count("(") + out.count("\uFF08")
203
+ closes = out.count(")") + out.count("\uFF09")
204
+ opens > closes
205
+ end
206
+
207
+ def terminate(body)
208
+ # 1.x punctuation cleanup: a sentence period before a spaced
209
+ # comma yields to the comma (", 2013" over ". , 2013"; an
210
+ # initials period before a comma ("P.,") stands, being
211
+ # unspaced), and stacked separators around absent elements
212
+ # collapse into one (". : ." into ". "); an empty pair left
213
+ # by an absent element drops
214
+ body = body.gsub(/:\s*\.\s*/, ": ")
215
+ body = body.gsub(/\.\s+,/, ",")
216
+ body = body.gsub(/(?:[.,:;]\s+)+[.,:;]/, ". ")
217
+ body = body.gsub(/\.\s*\./, ". ")
218
+ body = body.gsub(/:\s*\.\s*/, ": ")
219
+ body = body.gsub(/\(\s*\)/, "")
220
+ body = body.gsub(/ +/, " ").gsub(" ,", ",")
221
+ terminator = unbalanced_close(body, @terminator)
222
+ return body if terminator.strip.empty?
223
+ if terminator !~ /[<\w]/ && body.rstrip.end_with?(terminator.strip)
224
+ return body
225
+ end
226
+
227
+ "#{body}#{terminator}"
228
+ end
229
+
230
+ # The terminator's closing parens stand only when the body
231
+ # opened them (their "(" died with an absent element)
232
+ def unbalanced_close(body, terminator)
233
+ return terminator unless terminator.start_with?(")")
234
+
235
+ open = body.count("(") - body.count(")")
236
+ return terminator.sub(/\A\)+/) { |closes| closes[0, open] } if
237
+ open.positive?
238
+
239
+ terminator.sub(/\A\)+/, "")
240
+ end
241
+
242
+ def normalise(slot)
243
+ slot.to_s.delete("_").downcase
244
+ end
245
+ end
246
+ end
247
+ end
248
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Relaton
4
+ module Render
5
+ # Citation rendering per the ISO 690 architecture: a style instance
6
+ # places the inventory's data elements (clause 7) in each resource
7
+ # kind's order (clause 8); the engine is a template evaluator over a
8
+ # field resolver and holds no styles, no vocabularies, no i18n.
9
+ # The v1 compatibility facade (relaton-render#90): isodoc's
10
+ # render-isodoc subclasses Relaton::Render::General.
11
+ autoload :General, "relaton/render/general"
12
+
13
+ module Iso690
14
+ autoload :Element, "relaton/render/iso690/element"
15
+ autoload :Elements, "relaton/render/iso690/elements"
16
+ autoload :Fields, "relaton/render/iso690/fields"
17
+ autoload :I18n, "relaton/render/iso690/i18n"
18
+ autoload :IndexRenderer, "relaton/render/iso690/index_renderer"
19
+ autoload :IdentifierKinds, "relaton/render/iso690/identifier_kinds"
20
+ autoload :Kinds, "relaton/render/iso690/kinds"
21
+ autoload :Renderer, "relaton/render/iso690/renderer"
22
+ autoload :Style, "relaton/render/iso690/style"
23
+ autoload :Template, "relaton/render/iso690/template"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ module Relaton
2
+ module Render
3
+ VERSION = "3.0.0.pre.alpha.25".freeze
4
+ end
5
+ end
@@ -1,6 +1,13 @@
1
- require "relaton/version"
2
- require "relaton/render"
3
- require "parse/parse"
4
- require "template/template"
5
- require "isodoc/i18n"
1
+ # frozen_string_literal: true
6
2
 
3
+ require "relaton/render/version"
4
+ require "relaton/render/iso690"
5
+
6
+ module Relaton
7
+ module Render
8
+ # A bibliographic item whose style template resolves to nothing: the
9
+ # single-item API raises, the batch API skips
10
+ class Unrenderable < StandardError; end
11
+
12
+ end
13
+ end
@@ -1,6 +1,6 @@
1
1
  lib = File.expand_path("lib", __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "relaton/version"
3
+ require "relaton/render/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "relaton-render"
@@ -19,17 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.bindir = "exe"
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
- spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
22
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.3.0")
23
23
 
24
- spec.add_development_dependency "bundler"
25
- spec.add_development_dependency "debug"
26
- spec.add_development_dependency "equivalent-xml", "~> 0.6"
27
- spec.add_development_dependency "rake", ">= 12.3.3"
28
- spec.add_development_dependency "rspec", "~> 3.0"
29
- spec.add_development_dependency "simplecov"
30
-
31
- spec.add_dependency "isodoc-i18n"
32
- spec.add_dependency "liquid", "~> 4"
24
+ spec.add_dependency "htmlentities"
25
+ spec.add_development_dependency "relaton-bib"
26
+ spec.add_dependency "liquid", "~> 5"
27
+ spec.add_dependency "lutaml-model"
33
28
  spec.add_dependency "nokogiri"
34
29
  spec.add_dependency "twitter_cldr"
30
+ # spec.metadata["rubygems_mfa_required"] = "true"
35
31
  end
metadata CHANGED
@@ -1,23 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-render
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 3.0.0.pre.alpha.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-01 00:00:00.000000000 Z
11
+ date: 2026-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: htmlentities
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :development
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: debug
28
+ name: relaton-bib
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,63 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: equivalent-xml
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.6'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.6'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 12.3.3
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 12.3.3
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
42
+ name: liquid
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
47
+ version: '5'
48
+ type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
54
+ version: '5'
97
55
  - !ruby/object:Gem::Dependency
98
- name: isodoc-i18n
56
+ name: lutaml-model
99
57
  requirement: !ruby/object:Gem::Requirement
100
58
  requirements:
101
59
  - - ">="
@@ -108,20 +66,6 @@ dependencies:
108
66
  - - ">="
109
67
  - !ruby/object:Gem::Version
110
68
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: liquid
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '4'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '4'
125
69
  - !ruby/object:Gem::Dependency
126
70
  name: nokogiri
127
71
  requirement: !ruby/object:Gem::Requirement
@@ -158,6 +102,8 @@ extensions: []
158
102
  extra_rdoc_files: []
159
103
  files:
160
104
  - ".github/workflows/rake.yml"
105
+ - ".github/workflows/release.yml"
106
+ - ".gitignore"
161
107
  - ".hound.yml"
162
108
  - ".rubocop.yml"
163
109
  - Gemfile
@@ -167,25 +113,50 @@ files:
167
113
  - bin/console
168
114
  - bin/rspec
169
115
  - bin/setup
170
- - lib/isodoc-yaml/i18n-ar.yaml
171
- - lib/isodoc-yaml/i18n-de.yaml
172
- - lib/isodoc-yaml/i18n-en.yaml
173
- - lib/isodoc-yaml/i18n-es.yaml
174
- - lib/isodoc-yaml/i18n-fr.yaml
175
- - lib/isodoc-yaml/i18n-ru.yaml
176
- - lib/isodoc-yaml/i18n-zh-Hans.yaml
177
- - lib/isodoc/i18n.rb
178
- - lib/parse/parse.rb
179
- - lib/parse/parse_contributors.rb
180
- - lib/parse/parse_extract.rb
116
+ - docs/citation-style-pack.adoc
181
117
  - lib/relaton-render.rb
182
- - lib/relaton/config.yml
183
- - lib/relaton/render.rb
184
- - lib/relaton/render_classes.rb
185
- - lib/relaton/render_fields.rb
186
- - lib/relaton/version.rb
187
- - lib/template/template.rb
188
- - lib/utils/utils.rb
118
+ - lib/relaton/render/general.rb
119
+ - lib/relaton/render/iso690.rb
120
+ - lib/relaton/render/iso690/element.rb
121
+ - lib/relaton/render/iso690/elements.rb
122
+ - lib/relaton/render/iso690/elements/access.rb
123
+ - lib/relaton/render/iso690/elements/authorizer.rb
124
+ - lib/relaton/render/iso690/elements/citeid.rb
125
+ - lib/relaton/render/iso690/elements/component_part.rb
126
+ - lib/relaton/render/iso690/elements/creator.rb
127
+ - lib/relaton/render/iso690/elements/edition.rb
128
+ - lib/relaton/render/iso690/elements/extent.rb
129
+ - lib/relaton/render/iso690/elements/identifier.rb
130
+ - lib/relaton/render/iso690/elements/location.rb
131
+ - lib/relaton/render/iso690/elements/medium.rb
132
+ - lib/relaton/render/iso690/elements/numeration.rb
133
+ - lib/relaton/render/iso690/elements/production.rb
134
+ - lib/relaton/render/iso690/elements/pub_date.rb
135
+ - lib/relaton/render/iso690/elements/series.rb
136
+ - lib/relaton/render/iso690/elements/size.rb
137
+ - lib/relaton/render/iso690/elements/status.rb
138
+ - lib/relaton/render/iso690/elements/stddoc.rb
139
+ - lib/relaton/render/iso690/elements/title.rb
140
+ - lib/relaton/render/iso690/elements/updated.rb
141
+ - lib/relaton/render/iso690/fields.rb
142
+ - lib/relaton/render/iso690/i18n.rb
143
+ - lib/relaton/render/iso690/i18n/en.yml
144
+ - lib/relaton/render/iso690/i18n/fr.yml
145
+ - lib/relaton/render/iso690/i18n/ja.yml
146
+ - lib/relaton/render/iso690/identifier_kinds.rb
147
+ - lib/relaton/render/iso690/index_renderer.rb
148
+ - lib/relaton/render/iso690/kinds.rb
149
+ - lib/relaton/render/iso690/renderer.rb
150
+ - lib/relaton/render/iso690/style.rb
151
+ - lib/relaton/render/iso690/style/locale.rb
152
+ - lib/relaton/render/iso690/style/name_form.rb
153
+ - lib/relaton/render/iso690/style/scheme.rb
154
+ - lib/relaton/render/iso690/style/sort_rule.rb
155
+ - lib/relaton/render/iso690/style/template_map.rb
156
+ - lib/relaton/render/iso690/style/type_template.rb
157
+ - lib/relaton/render/iso690/styles/author-date.yml
158
+ - lib/relaton/render/iso690/template.rb
159
+ - lib/relaton/render/version.rb
189
160
  - relaton-render.gemspec
190
161
  homepage: https://github.com/relaton/relaton-render
191
162
  licenses:
@@ -199,14 +170,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
170
  requirements:
200
171
  - - ">="
201
172
  - !ruby/object:Gem::Version
202
- version: 2.5.0
173
+ version: 3.3.0
203
174
  required_rubygems_version: !ruby/object:Gem::Requirement
204
175
  requirements:
205
176
  - - ">="
206
177
  - !ruby/object:Gem::Version
207
178
  version: '0'
208
179
  requirements: []
209
- rubygems_version: 3.3.9
180
+ rubygems_version: 3.5.22
210
181
  signing_key:
211
182
  specification_version: 4
212
183
  summary: Rendering of ISO 690 XML
data/lib/isodoc/i18n.rb DELETED
@@ -1,24 +0,0 @@
1
- require "yaml"
2
- require "isodoc-i18n"
3
-
4
- module IsoDoc
5
- class I18n
6
- def load_yaml1(lang, script)
7
- case lang
8
- when "en", "fr", "ru", "de", "es", "ar"
9
- load_yaml2(lang)
10
- when "zh"
11
- if script == "Hans" then load_yaml2("zh-Hans")
12
- else load_yaml2("en")
13
- end
14
- else
15
- load_yaml2("en")
16
- end
17
- end
18
-
19
- def load_yaml2(str)
20
- YAML.load_file(File.join(File.dirname(__FILE__),
21
- "../isodoc-yaml/i18n-#{str}.yaml"))
22
- end
23
- end
24
- end
@@ -1,2 +0,0 @@
1
- in: في
2
- at: في
@@ -1,2 +0,0 @@
1
- in: in
2
- at: bei
@@ -1,22 +0,0 @@
1
- in: in
2
- at: at
3
- and: and
4
- updated: updated
5
- viewed: viewed
6
- version: version
7
- date:
8
- month_year: to_long_s
9
- day_month_year: to_long_s
10
- date_time: to_long_s
11
- edition_number: ["OrdinalRules", "digits-ordinal"]
12
- edition: "% edition"
13
- editor:
14
- sg: ed.
15
- pl: eds.
16
- extent:
17
- page:
18
- sg: p.
19
- pl: pp.
20
- volume:
21
- sg: vol.
22
- pl: vols.
@@ -1,2 +0,0 @@
1
- in: en
2
- at: en
@@ -1,2 +0,0 @@
1
- in: dans
2
- at: à
@@ -1,23 +0,0 @@
1
- in: в
2
- at: в
3
- and: и
4
- updated: обновлен
5
- viewed: просмотрено
6
- version: версия
7
- date:
8
- month_year: to_long_s
9
- day_month_year: to_long_s
10
- date_time: to_long_s
11
- edition_number: ["SpelloutRules", "spellout-ordinal-neuter"]
12
- edition: "% издание"
13
- editor:
14
- sg: изд.
15
- pl: изд.
16
- extent:
17
- page:
18
- sg: стр.
19
- pl: стр.
20
- volume:
21
- sg: т.
22
- pl: тт.
23
-
@@ -1,2 +0,0 @@
1
- in: 在
2
- at: 在