relaton-render 3.0.0.pre.alpha.2 → 3.0.0.pre.alpha.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f7785209c01d3c056fa9d516f1cafe5ba50325f28ac5514cc823fba010eb385
4
- data.tar.gz: 76b64df9733dd15acb659ca35ca7cdafdd1aaac8246c2881ab544e9949f77221
3
+ metadata.gz: b1d41488064d32008b3f44f81635f4bf8e096341adb5434eb270b440b9f7bfbe
4
+ data.tar.gz: 7b3b00fdadc97f66749d98f028684016a7d917977a3900c2d852a6127e4126f2
5
5
  SHA512:
6
- metadata.gz: b2fa95a3486e245bfcafca4ce8b0b14295a5a7eb2220ce6720b958a8e7b73c3ec585f3761e2f749309938f64b102561562b81e999a24f8d45153abf4faedf95e
7
- data.tar.gz: 1152dfa988e10a2b1f1772c7e2c82a707d01ffa52c61f4b97ed69e128eb2de700a93dd12e16e5351e124c4e717ed2976bafc148cdd245e243c6a7c962da1b57d
6
+ metadata.gz: 1c73e86c124a5cb571305da9b9dc8ac0a35eeabadc89f2d9fa819ca95edd3bbe097356c4e5e4f2199542c94a0939338bfd3b04d6f1f3933708b266751b5b75c9
7
+ data.tar.gz: 539376d05813f377ca9d8fa36dff0c023e477daf4c7fb435b487a4e2da22bb98e185f65a1ff3a2e17b838e881028a8f7a3c7de1a27f7c5d7f5f616274f71c349
@@ -27,20 +27,27 @@ module Relaton
27
27
  def initialize(options = {})
28
28
  options = deep_symbolize(options)
29
29
  @lang = options[:language] || options[:lang] || "en"
30
- @renderer = Iso690::Renderer.new(
31
- lang: @lang,
32
- script: options[:script] || "Latn",
33
- labels: options[:i18nhash] || {},
34
- )
30
+ renderer_opts = { lang: @lang, script: options[:script] || "Latn",
31
+ labels: options[:i18nhash] || {} }
32
+ # A flavor names its own CitationStyle instance (name or YAML path)
33
+ options[:style] and renderer_opts[:style] = options[:style]
34
+ @renderer = Iso690::Renderer.new(**renderer_opts)
35
35
  warn_general_config if options[:config]
36
36
  end
37
37
 
38
- def render(model, **opts)
39
- @renderer.render(model, **opts)
38
+ def render(model, embedded: false, **opts)
39
+ model = to_model(model)
40
+ text =
41
+ if model.respond_to?(:formattedref) && model.formattedref
42
+ model.formattedref.content
43
+ else
44
+ @renderer.render(model, **opts)
45
+ end
46
+ embedded ? text : "<formattedref>#{text}</formattedref>"
40
47
  end
41
48
 
42
49
  def citation(model, **opts)
43
- @renderer.citation(model, **opts)
50
+ @renderer.citation(to_model(model), **opts)
44
51
  end
45
52
 
46
53
  # isodoc's references rendering: renderings[id][:formattedref]
@@ -157,6 +164,15 @@ module Relaton
157
164
  end
158
165
  end
159
166
 
167
+ # 1.x render/citation accepted a bibitem XML string; the Iso690
168
+ # engine consumes model instances.
169
+ def to_model(model)
170
+ return model unless model.is_a?(String)
171
+
172
+ klass = facade_bibitem_class
173
+ klass.from_xml(model)
174
+ end
175
+
160
176
  def warn_general_config
161
177
  return if General.config_warned
162
178
 
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Render
3
- VERSION = "3.0.0.pre.alpha.2".freeze
3
+ VERSION = "3.0.0.pre.alpha.3".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-render
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.pre.alpha.2
4
+ version: 3.0.0.pre.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.