pubid-core 1.11.0 → 1.12.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 +4 -4
- data/lib/pubid/core/identifier/base.rb +5 -11
- data/lib/pubid/core/stage.rb +2 -3
- data/lib/pubid/core/typed_stage.rb +15 -3
- 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: 8752ce15b475a7cf21261ea7d1cac28e181052b6a888487a93f89c679bc3a317
|
4
|
+
data.tar.gz: 85f903a2d68b26497c832a41255a571ba76b55f56c754f277ca1b6a27ccde9ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87c242c84385cbdceb1e711ea16ebf96b844d591e900e75923fe1812ffff1a7ab5383ca8442e22a562a2d89b0cd910364a145c0044ce71ab8380c956dab7eba2
|
7
|
+
data.tar.gz: aa97a199ccaec9ddda10615c339308d64240d28f2bebf32075f50b17d34776b1f0d25d87f278498d6f4d79cb07291a5a1250c11d81446184c163d5a7637998b7
|
@@ -102,8 +102,8 @@ module Pubid::Core
|
|
102
102
|
|
103
103
|
# Return typed stage name, eg. "Final Draft Technical Report" for "FDTR"
|
104
104
|
def typed_stage_name
|
105
|
-
if self.class::TYPED_STAGES.key?(stage
|
106
|
-
return self.class::TYPED_STAGES[stage.
|
105
|
+
if stage.is_a?(TypedStage) && self.class::TYPED_STAGES.key?(stage.abbr)
|
106
|
+
return self.class::TYPED_STAGES[stage.abbr][:name]
|
107
107
|
end
|
108
108
|
|
109
109
|
stage ? "#{stage.name} #{self.class.type[:title]}" : self.class.type[:title]
|
@@ -113,15 +113,9 @@ module Pubid::Core
|
|
113
113
|
# @return [[nil, Stage], [Symbol, Stage]] typed stage and stage values
|
114
114
|
def resolve_stage(stage)
|
115
115
|
if stage.is_a?(Stage)
|
116
|
-
|
117
|
-
# return stage if stage.abbr
|
116
|
+
return self.class.resolve_typed_stage(stage.harmonized_code) || stage unless stage.abbr
|
118
117
|
|
119
|
-
# return [self.class.resolve_typed_stage(stage.harmonized_code), stage]
|
120
|
-
unless stage.abbr
|
121
|
-
stage.typed_stage = self.class.resolve_typed_stage(stage.harmonized_code)
|
122
|
-
end
|
123
118
|
return stage
|
124
|
-
# @typed_stage = resolve_typed_stage(@stage.harmonized_code) unless @stage.abbr
|
125
119
|
end
|
126
120
|
|
127
121
|
if self.class.has_typed_stage?(stage)
|
@@ -132,7 +126,7 @@ module Pubid::Core
|
|
132
126
|
# resolve typed stage when harmonized code provided as stage
|
133
127
|
# or stage abbreviation was not resolved
|
134
128
|
if /\A[\d.]+\z/.match?(stage) || parsed_stage.empty_abbr?(with_prf: true)
|
135
|
-
|
129
|
+
return self.class.resolve_typed_stage(parsed_stage.harmonized_code) || parsed_stage
|
136
130
|
end
|
137
131
|
|
138
132
|
parsed_stage
|
@@ -280,7 +274,7 @@ module Pubid::Core
|
|
280
274
|
def resolve_typed_stage(harmonized_code)
|
281
275
|
self::TYPED_STAGES.each do |k, v|
|
282
276
|
if (v[:harmonized_stages] & harmonized_code.stages) == harmonized_code.stages
|
283
|
-
return k
|
277
|
+
return get_identifier.build_typed_stage(abbr: k, harmonized_code: harmonized_code)
|
284
278
|
end
|
285
279
|
end
|
286
280
|
nil
|
data/lib/pubid/core/stage.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
module Pubid::Core
|
2
2
|
class Stage
|
3
|
-
attr_accessor :config, :abbr, :harmonized_code
|
3
|
+
attr_accessor :config, :abbr, :harmonized_code
|
4
4
|
|
5
5
|
# @param abbr [String, Symbol] abbreviation eg. :PWI, :WD
|
6
6
|
# @param harmonized_code [String, Float, HarmonizedStageCode]
|
7
7
|
# @param config [Configuration]
|
8
|
-
def initialize(config:, abbr: nil, harmonized_code: nil
|
8
|
+
def initialize(config:, abbr: nil, harmonized_code: nil)
|
9
9
|
@config = config
|
10
10
|
@abbr = abbr&.to_s
|
11
|
-
@typed_stage = typed_stage
|
12
11
|
|
13
12
|
if harmonized_code
|
14
13
|
@harmonized_code = if harmonized_code.is_a?(HarmonizedStageCode)
|
@@ -5,7 +5,7 @@ module Pubid::Core
|
|
5
5
|
# @param config [Configuration]
|
6
6
|
# @param abbr [Symbol] typed stage symbol, e.g. :dtr
|
7
7
|
# @param harmonized_code [String, Float, HarmonizedStageCode]
|
8
|
-
def initialize(config:, abbr
|
8
|
+
def initialize(config:, abbr: nil, harmonized_code: nil)
|
9
9
|
@config = config
|
10
10
|
@abbr = abbr
|
11
11
|
|
@@ -15,14 +15,26 @@ module Pubid::Core
|
|
15
15
|
else
|
16
16
|
HarmonizedStageCode.new(harmonized_code, config: config)
|
17
17
|
end
|
18
|
-
|
18
|
+
@abbr ||= lookup_abbr(@harmonized_code.stages)
|
19
19
|
end
|
20
20
|
|
21
|
-
|
21
|
+
if abbr && !config.typed_stages.key?(abbr)
|
22
|
+
raise Errors::TypedStageInvalidError, "#{abbr} is not valid typed stage"
|
23
|
+
end
|
22
24
|
|
23
25
|
@harmonized_code ||= HarmonizedStageCode.new(abbr, config: config)
|
24
26
|
end
|
25
27
|
|
28
|
+
def lookup_abbr(lookup_code)
|
29
|
+
lookup_code = lookup_code.first if lookup_code.is_a?(Array) && lookup_code.count == 1
|
30
|
+
|
31
|
+
config.typed_stages.each do |abbr, stage|
|
32
|
+
return abbr if stage[:harmonized_stages].include?(lookup_code)
|
33
|
+
end
|
34
|
+
|
35
|
+
nil
|
36
|
+
end
|
37
|
+
|
26
38
|
# Compares one stage with another
|
27
39
|
# should return false if
|
28
40
|
def ==(other)
|
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: 1.
|
4
|
+
version: 1.12.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: 2023-
|
11
|
+
date: 2023-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|