pubid-core 0.1.5 → 0.1.6
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 +4 -4
- data/lib/pubid/core/renderer.rb +89 -4
- data/lib/pubid/core/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c46f13465619dbdc86817f58116f5e1777435535681a2960f54bda577337f196
|
4
|
+
data.tar.gz: 11abb71f44d211f354c12d214606b0783f2bcf8d7a3036f114e08746b955a792
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 298cff787725f61393f2dffa20289c6d773b18bef9bf674fe84dd21158dc641c646375d1de8beea5ea622dd50d1802fa636b2933dd4c29384dd79932791f476c
|
7
|
+
data.tar.gz: be51cdf5eea98cf3161b0957890cae3b0cf6698af1dd5e8dc2046bfc591466df17a81a8a0ddb69f741f57356d9b9fbdc89faa349a86f08f1f6899a3d65aa1c1f
|
data/lib/pubid/core/renderer.rb
CHANGED
@@ -2,14 +2,99 @@ module Pubid::Core
|
|
2
2
|
class Renderer
|
3
3
|
attr_accessor :params
|
4
4
|
|
5
|
+
LANGUAGES = {
|
6
|
+
"ru" => "R",
|
7
|
+
"fr" => "F",
|
8
|
+
"en" => "E",
|
9
|
+
"ar" => "A",
|
10
|
+
}.freeze
|
11
|
+
|
5
12
|
def initialize(params)
|
6
13
|
@params = params
|
7
|
-
@params.default = ""
|
8
14
|
end
|
15
|
+
|
16
|
+
def prerender_params(params, opts)
|
17
|
+
params.map do |key, value|
|
18
|
+
if respond_to?("render_#{key}")
|
19
|
+
[key, send("render_#{key}", value, opts, params)]
|
20
|
+
else
|
21
|
+
[key, value]
|
22
|
+
end
|
23
|
+
end.to_h
|
24
|
+
end
|
25
|
+
|
9
26
|
# render from hash keys
|
10
|
-
def render
|
11
|
-
|
12
|
-
|
27
|
+
def render(with_date: true, with_language_code: :iso)
|
28
|
+
params = prerender_params(@params,
|
29
|
+
{ with_date: with_date, with_language_code: with_language_code })
|
30
|
+
# render empty string when the key is not exist
|
31
|
+
params.default = ""
|
32
|
+
|
33
|
+
render_identifier(params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def render_identifier(params)
|
37
|
+
"%{publisher}%{copublisher}%{type}%{stage} %{number}%{part}%{iteration}"\
|
38
|
+
"%{year}%{edition}%{amendments}%{corrigendums}%{language}" % params
|
39
|
+
end
|
40
|
+
|
41
|
+
def render_copublisher(copublisher, _opts, _params)
|
42
|
+
# (!@copublisher.is_a?(Array) && [@copublisher]) || @copublisher
|
43
|
+
if copublisher.is_a?(Array)
|
44
|
+
copublisher.map(&:to_s).sort.map do |copublisher|
|
45
|
+
"/#{copublisher.gsub('-', '/')}"
|
46
|
+
end.join
|
47
|
+
else
|
48
|
+
"/#{copublisher}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def render_amendments(amendments, _opts, _params)
|
53
|
+
amendments.map(&:render_pubid).join("+")
|
54
|
+
end
|
55
|
+
|
56
|
+
def render_corrigendums(corrigendums, _opts, _params)
|
57
|
+
corrigendums.map(&:render_pubid).join("+")
|
58
|
+
end
|
59
|
+
|
60
|
+
def render_type(type, opts, params)
|
61
|
+
if params[:copublisher]
|
62
|
+
" #{type}"
|
63
|
+
else
|
64
|
+
"/#{type}"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def render_stage(stage, opts, params)
|
69
|
+
if params[:copublisher]
|
70
|
+
" #{stage}"
|
71
|
+
else
|
72
|
+
"/#{stage}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def render_part(part, opts, _params)
|
77
|
+
"-#{part}"
|
78
|
+
end
|
79
|
+
|
80
|
+
def render_year(year, opts, _params)
|
81
|
+
opts[:with_date] && ":#{year}" || ""
|
82
|
+
end
|
83
|
+
|
84
|
+
def render_language(language, opts, _params)
|
85
|
+
if opts[:with_language_code] == :single
|
86
|
+
"(#{LANGUAGES[language]})"
|
87
|
+
else
|
88
|
+
"(#{language})"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def render_edition(edition, _opts, _params)
|
93
|
+
" ED#{edition}"
|
94
|
+
end
|
95
|
+
|
96
|
+
def render_iteration(iteration, _opts, _params)
|
97
|
+
".#{iteration}"
|
13
98
|
end
|
14
99
|
end
|
15
100
|
end
|
data/lib/pubid/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
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-06-
|
11
|
+
date: 2022-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|