relaton-render 1.0.2 → 1.0.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: c5881b8b6067c4c4b679d7d7037ea9b3bb4537ad29c8b4d18f786e7f2a369cb7
4
- data.tar.gz: 8f206ce02d52cd4a5781b8ddae109d540e18dcfe460264d5695c68a42a0fc642
3
+ metadata.gz: 59b793b2241dd48d9b20f015798de7b1a8ec90fbfb5ec9c72b62668c0031f25e
4
+ data.tar.gz: f7dbd1c10347b24a9384cd5fb3d93fd4b8369d3880b4babd6aa765b0d12480a9
5
5
  SHA512:
6
- metadata.gz: c2e5f22923975ff914f60dbb8f885bb71d23249f844f0e82e5bae0635a1792ac2f254ec5cedfae59feac9823bf837c65aedc80947bda0dbfce74f81815353c21
7
- data.tar.gz: c38f524ec2a3fc25f39a8837dcdc4f56f2061f3e1d9457605cdfb18eb0017405de69bd9ca7ff4788a002a324e639b271f8dd4b4876c7e6b65f188ce3ec9c3719
6
+ metadata.gz: f8121638021e74fe1d63ab87921d56b807c89d7f3d00ba4d11fc2b70d5442078f524cfae724b5b8669f48d5036eef50891c60a20cd3a842c132e0c301a9b249c
7
+ data.tar.gz: 0ee0d7ed68bfed31bff88f79001e615f51d2459b32940c8b33b9fa7d91114955b75b7282fbd58e9cddbb7c8d2983f831c582f600753140019100b12e5bc48f4e
@@ -5,20 +5,23 @@ require "yaml"
5
5
  require "liquid"
6
6
  require "date"
7
7
  require "relaton_bib"
8
+ require "metanorma-utils"
8
9
  require_relative "../template/template"
9
10
  require_relative "../../../isodoc/i18n"
10
11
 
11
12
  module Relaton
12
13
  module Render
13
14
  class General
15
+ Hash.include ::Metanorma::Utils::Hash
16
+ Array.include ::Metanorma::Utils::Array
17
+
14
18
  attr_reader :template, :journaltemplate, :seriestemplate, :nametemplate,
15
19
  :authorcitetemplate, :extenttemplate, :sizetemplate,
16
20
  :citetemplate, :citeshorttemplate, :lang, :script, :i18n,
17
21
  :edition, :date, :fieldsklass, :dateklass, :config
18
22
 
19
23
  def initialize(opt = {})
20
- @config = read_config
21
- options = @config.merge(Utils::string_keys(opt))
24
+ options = init_options(opt)
22
25
  @type = self.class.name.downcase.split("::").last
23
26
  klass_initialize(options)
24
27
  root_initalize(options)
@@ -27,6 +30,13 @@ module Relaton
27
30
  init_misc
28
31
  end
29
32
 
33
+ def init_options(opt)
34
+ opt = opt.stringify_all_keys
35
+ @override_file ||= opt["config"]
36
+ @config = config_override(read_config)
37
+ @config.merge(opt)
38
+ end
39
+
30
40
  def init_misc
31
41
  @semaphore = Mutex.new
32
42
  @urlcache = {}
@@ -37,6 +47,12 @@ module Relaton
37
47
  YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
38
48
  end
39
49
 
50
+ def config_override(ret)
51
+ new = {}
52
+ @override_file and new = YAML.load_file(@override_file)
53
+ ret.deep_merge(new)
54
+ end
55
+
40
56
  def klass_initialize(options)
41
57
  @nametemplateklass = Relaton::Render::Template::Name
42
58
  @authorcitetemplateklass = Relaton::Render::Template::AuthorCite
@@ -65,7 +65,8 @@ module Relaton
65
65
  end
66
66
 
67
67
  def authoritative_identifier_exclude
68
- %w(METANORMA METANORMA-ORDINAL TITLE URN ISO-REFERENCE) + other_identifier_include
68
+ %w(METANORMA METANORMA-ORDINAL AUTHOR-DATE TITLE URN ISO-REFERENCE) +
69
+ other_identifier_include
69
70
  end
70
71
 
71
72
  def other_identifier(doc)
@@ -1,6 +1,7 @@
1
- require_relative "../utils/utils"
1
+ # require_relative "../utils/utils"
2
2
  require_relative "liquid"
3
3
  require "singleton"
4
+ require "metanorma-utils"
4
5
 
5
6
  module Relaton
6
7
  module Render
@@ -10,6 +11,9 @@ module Relaton
10
11
 
11
12
  attr_accessor :mutex
12
13
 
14
+ Hash.include ::Metanorma::Utils::Hash
15
+ Array.include ::Metanorma::Utils::Array
16
+
13
17
  def initialize
14
18
  @cache = {}
15
19
  @mutex = Mutex.new
@@ -39,7 +43,8 @@ module Relaton
39
43
  end
40
44
 
41
45
  def parse_options(opt)
42
- opt = Utils::sym_keys(opt)
46
+ # opt = Utils::sym_keys(opt)
47
+ opt = opt.symbolize_all_keys
43
48
  @i18n = opt[:i18n]
44
49
  @template_raw = opt[:template].dup
45
50
  @template =
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Render
3
- VERSION = "1.0.2".freeze
3
+ VERSION = "1.0.3".freeze
4
4
  end
5
5
  end
@@ -2,7 +2,6 @@ require "relaton/render/version"
2
2
  require "relaton/render/general/render"
3
3
  require "relaton/render/fields/fields"
4
4
  require "relaton/render/parse/parse"
5
- require "relaton/render/utils/utils"
6
5
  require "relaton/render/i18n/i18n"
7
6
  require "isodoc/i18n"
8
7
  require "base64" # Liquid
@@ -25,18 +25,19 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "debug"
26
26
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
27
27
  spec.add_development_dependency "isodoc"
28
+ spec.add_development_dependency "openssl"
28
29
  spec.add_development_dependency "rake", ">= 12.3.3"
29
30
  spec.add_development_dependency "rspec", "~> 3.0"
30
31
  spec.add_development_dependency "simplecov"
31
- spec.add_development_dependency "openssl"
32
32
 
33
+ spec.add_dependency "base64" # Liquid
34
+ spec.add_dependency "bigdecimal" # Liquid
33
35
  spec.add_dependency "isodoc-i18n", "~> 1.4.0"
34
36
  spec.add_dependency "liquid", "~> 5"
37
+ spec.add_dependency "metanorma-utils", "~> 2"
35
38
  spec.add_dependency "nokogiri"
36
39
  spec.add_dependency "relaton-bib", ">= 1.20.0"
37
40
  spec.add_dependency "twitter_cldr"
38
41
  spec.add_dependency "tzinfo-data" # we need this for windows only
39
- spec.add_dependency "base64" # Liquid
40
- spec.add_dependency "bigdecimal" # Liquid
41
- #spec.metadata["rubygems_mfa_required"] = "true"
42
+ # spec.metadata["rubygems_mfa_required"] = "true"
42
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-render
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-11-17 00:00:00.000000000 Z
11
+ date: 2025-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: openssl
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,13 +123,13 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: openssl
126
+ name: base64
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - ">="
116
130
  - !ruby/object:Gem::Version
117
131
  version: '0'
118
- type: :development
132
+ type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
@@ -123,63 +137,63 @@ dependencies:
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: isodoc-i18n
140
+ name: bigdecimal
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - "~>"
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
- version: 1.4.0
145
+ version: '0'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - "~>"
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
- version: 1.4.0
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
- name: liquid
154
+ name: isodoc-i18n
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '5'
159
+ version: 1.4.0
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '5'
166
+ version: 1.4.0
153
167
  - !ruby/object:Gem::Dependency
154
- name: nokogiri
168
+ name: liquid
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - ">="
171
+ - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: '0'
173
+ version: '5'
160
174
  type: :runtime
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - ">="
178
+ - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '0'
180
+ version: '5'
167
181
  - !ruby/object:Gem::Dependency
168
- name: relaton-bib
182
+ name: metanorma-utils
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - ">="
185
+ - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: 1.20.0
187
+ version: '2'
174
188
  type: :runtime
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - ">="
192
+ - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: 1.20.0
194
+ version: '2'
181
195
  - !ruby/object:Gem::Dependency
182
- name: twitter_cldr
196
+ name: nokogiri
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - ">="
@@ -193,21 +207,21 @@ dependencies:
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
195
209
  - !ruby/object:Gem::Dependency
196
- name: tzinfo-data
210
+ name: relaton-bib
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
200
214
  - !ruby/object:Gem::Version
201
- version: '0'
215
+ version: 1.20.0
202
216
  type: :runtime
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - ">="
207
221
  - !ruby/object:Gem::Version
208
- version: '0'
222
+ version: 1.20.0
209
223
  - !ruby/object:Gem::Dependency
210
- name: base64
224
+ name: twitter_cldr
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - ">="
@@ -221,7 +235,7 @@ dependencies:
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
- name: bigdecimal
238
+ name: tzinfo-data
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - ">="
@@ -279,7 +293,6 @@ files:
279
293
  - lib/relaton/render/template/liquid.rb
280
294
  - lib/relaton/render/template/subclasses.rb
281
295
  - lib/relaton/render/template/template.rb
282
- - lib/relaton/render/utils/utils.rb
283
296
  - lib/relaton/render/version.rb
284
297
  - relaton-render.gemspec
285
298
  homepage: https://github.com/relaton/relaton-render
@@ -1,27 +0,0 @@
1
- module Relaton
2
- module Render
3
- module Utils
4
- def self.string_keys(hash)
5
- case hash
6
- when Hash
7
- hash.each_with_object({}) do |(k, v), ret|
8
- ret[k.to_s] = string_keys(v)
9
- end
10
- when Array then hash.map { |n| string_keys(n) }
11
- else hash
12
- end
13
- end
14
-
15
- def self.sym_keys(hash)
16
- case hash
17
- when Hash
18
- hash.each_with_object({}) do |(k, v), ret|
19
- ret[k.to_sym] = sym_keys(v)
20
- end
21
- when Array then hash.map { |n| sym_keys(n) }
22
- else hash
23
- end
24
- end
25
- end
26
- end
27
- end