pubid-core 1.2.2 → 1.4.0

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: 2a3c1e99b3327c14f2364992238d1d6a4040809dca85a6640254e2669784a449
4
- data.tar.gz: ca910a6333a2e5e9dc1c907577bee5c3e0c34bc6a891e07b310f4be39e9ecc59
3
+ metadata.gz: b1e2dbeb108d767054166d4fec9c0bb64e5c3a7ebb8811dc4f97de4c6cea4e93
4
+ data.tar.gz: 0aa8be27d6b839e6e985d8ce1a376d6fbe55ef07e87a664ac902c455e937c887
5
5
  SHA512:
6
- metadata.gz: b148eeaf72cd34a292d1da244e33a4c4f7eb1549cca374e9c7da7aadc6a09de262c992de578725ebb5ecaad4c1fa625365dbfda519119ccec82c39da224d71f7
7
- data.tar.gz: 9fb7676fbd6e7ffbf1bce920a626d70a260c24e83d59569447595c4e28157e879969b6700423d9199564e915d7929ca5c93a507e2703d79c192f0cc21d6f91cf
6
+ metadata.gz: 06b053ef1516f1fbe0524171fbc27afd6659e301cabb6692fb46be8b746807f6e21e081c48bc10f8cb1be282607154a7f084850f117c62e3748f8e2de1b25922
7
+ data.tar.gz: d3f441ccc72743f752b81eb993c7c71088442c1c53376412553a809464473048a29e80503673962d6b496dd9efc1979ed191f35dea08d9f3f19032073bba3711
@@ -42,31 +42,36 @@ module Pubid::Core::Renderer
42
42
 
43
43
  # Renders amendment and corrigendum when applied through identifier type
44
44
  def render_supplement(supplement_params, **args)
45
- if supplement_params[:base].type == :amd
46
- # render inner amendment (cor -> amd -> base)
47
- render_supplement(supplement_params[:base].get_params, **args)
45
+ base = if supplement_params[:base].type == :amd
46
+ # render inner amendment (cor -> amd -> base)
47
+ render_supplement(supplement_params[:base].get_params, **args)
48
+ else
49
+ self.class.new(supplement_params[:base].get_params).render_base_identifier(
50
+ # always render year for identifiers with supplement
51
+ **args.merge({ with_date: true }),
52
+ )
53
+ end
54
+ supplement = case supplement_params[:typed_stage].type.type
55
+ when :amd
56
+ render_amendments(
57
+ [Pubid::Iso::Amendment.new(**supplement_params.slice(:number, :year, :typed_stage, :edition, :iteration))],
58
+ args,
59
+ nil,
60
+ )
61
+ when :cor
62
+ render_corrigendums(
63
+ [Pubid::Iso::Corrigendum.new(**supplement_params.slice(:number, :year, :typed_stage, :edition, :iteration))],
64
+ args,
65
+ nil,
66
+ )
67
+ # copy parameters from Identifier only supported by Corrigendum
68
+ end
69
+
70
+ if supplement_params[:base].language
71
+ base + supplement + render_language(supplement_params[:base].language, args, nil)
48
72
  else
49
- self.class.new(supplement_params[:base].get_params).render_base_identifier(
50
- # always render year for identifiers with supplement
51
- **args.merge({ with_date: true }),
52
- )
53
- end +
54
- case supplement_params[:type].type
55
- when :amd
56
- render_amendments(
57
- [Pubid::Iso::Amendment.new(**supplement_params.slice(:number, :year, :stage, :edition, :iteration))],
58
- args,
59
- nil,
60
- )
61
- when :cor
62
- render_corrigendums(
63
- [Pubid::Iso::Corrigendum.new(**supplement_params.slice(:number, :year, :stage, :edition, :iteration))],
64
- args,
65
- nil,
66
- )
67
- # copy parameters from Identifier only supported by Corrigendum
68
- end +
69
- (supplement_params[:base].language ? render_language(supplement_params[:base].language, args, nil) : "")
73
+ base + supplement
74
+ end
70
75
  end
71
76
 
72
77
  # Render identifier
@@ -81,21 +86,23 @@ module Pubid::Core::Renderer
81
86
  end
82
87
 
83
88
  def render_base(params, prefix = "")
84
- "%{publisher}%{copublisher}#{prefix} %{number}" % params
89
+ "%{publisher}#{prefix} %{number}" % params
85
90
  end
86
91
 
87
92
  def render_identifier(params)
88
93
  render_base(params)
89
94
  end
90
95
 
91
- def render_copublisher(copublisher, _opts, _params)
92
- # (!@copublisher.is_a?(Array) && [@copublisher]) || @copublisher
93
- if copublisher.is_a?(Array)
94
- copublisher.map(&:to_s).sort.map do |copublisher|
95
- "/#{copublisher.gsub('-', '/')}"
96
- end.join
96
+ def render_publisher(publisher, _opts, params)
97
+ return publisher unless params[:copublisher]
98
+
99
+ case params[:copublisher]
100
+ when Array
101
+ ([publisher] + params[:copublisher].map(&:to_s).sort.map(&:to_s)).map do |pub|
102
+ pub.gsub('-', '/')
103
+ end.join("/")
97
104
  else
98
- "/#{copublisher}"
105
+ [publisher, params[:copublisher]].join("/")
99
106
  end
100
107
  end
101
108
 
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Core
3
- VERSION = "1.2.2".freeze
3
+ VERSION = "1.4.0".freeze
4
4
  end
5
5
  end
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: 1.2.2
4
+ version: 1.4.0
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-10-15 00:00:00.000000000 Z
11
+ date: 2022-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake