pubid-jis 0.2.0 → 0.3.1

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: 9c0c791095c83e4b8722ee5231a32aaa67ef83bc79c7819010bc7b3b39896b86
4
- data.tar.gz: 73e325a24c1e57418037c4d14b793029c6203122325a0af3baf9de358e59d86c
3
+ metadata.gz: 88ee1a41ec35829f8cc0a39617282a85572a7f875f13c308d61be3e2092f7db8
4
+ data.tar.gz: 52d5385816c7d15755dd2d62374dfc907d29a6dcaf2d9458dd579a7dce6a2bd4
5
5
  SHA512:
6
- metadata.gz: 072776bc60700e55cf0ba6c34f8be8aabb368d93f388e78ca676a7483cc093c051178336370eb301a26797a8d74d9f8f2f026e3c92bc543abf34e2cd9b175b80
7
- data.tar.gz: bbcf78001e99c6043dbcf41efc7c0df69612c6f449e75864a2da9de1d7fd7d1d459717c1b79c4917cd9812bfd6e68496f5fbb5bed54f13fb52b3a925b75e1a6c
6
+ metadata.gz: 132e289c49e53c6bc1395023974381a5999b6e0472b0953d2867cd27ac71d02b8ffb2b920d4119ef4f71f4dd54f9a8c7ac8a11e14c33bd7f77f50e07b4d8e363
7
+ data.tar.gz: 0fa47f3d6ab10728e320182db42dcadcee9b6eb61902f5994721e9fc7180913dddfe0a9f3e82d9f80f2b0fa30fea2bf4564cdfffb4cd0bd2ac4ed322f9df7463
@@ -44,7 +44,7 @@ module Pubid::Jis
44
44
  def transform_supplements(supplements_params, base_params)
45
45
  supplements = supplements_params.map do |supplement|
46
46
  Identifier.create(number: supplement[:number], year: supplement[:year],
47
- type: supplement[:type], base: Identifier.create(**base_params))
47
+ type: :amd, base: Identifier.create(**base_params))
48
48
  end
49
49
 
50
50
  return supplements.first if supplements.count == 1
@@ -52,6 +52,10 @@ module Pubid::Jis
52
52
  raise Errors::SupplementParsingError, "more than one or none supplements provided"
53
53
  end
54
54
 
55
+ def transform_explanation(params, base_params)
56
+ Identifier.create(type: :explanation, base: Identifier.create(**base_params), **params)
57
+ end
58
+
55
59
  # Use Identifier#create to resolve identifier's type class
56
60
  def transform(params)
57
61
  identifier_params = params.map do |k, v|
@@ -65,6 +69,13 @@ module Pubid::Jis
65
69
  )
66
70
  end
67
71
 
72
+ if identifier_params[:explanation]
73
+ return transform_explanation(
74
+ identifier_params[:explanation].is_a?(Hash) ? identifier_params[:explanation] : {},
75
+ identifier_params.dup.tap { |h| h.delete(:explanation) }
76
+ )
77
+ end
78
+
68
79
  Identifier.create(**identifier_params)
69
80
  end
70
81
 
@@ -0,0 +1,24 @@
1
+ require_relative "../renderer/amendment"
2
+
3
+ module Pubid::Jis
4
+ module Identifier
5
+ class Explanation < Base
6
+ attr_accessor :base
7
+
8
+ def_delegators 'Pubid::Jis::Identifier::Explanation', :type
9
+
10
+ def initialize(base: nil, number: nil, **opts)
11
+ super(**opts.merge(number: number))
12
+ @base = base
13
+ end
14
+
15
+ def self.type
16
+ { key: :explanation, title: "Explanation", short: "EXPL" }
17
+ end
18
+
19
+ def self.get_renderer_class
20
+ Renderer::Explanation
21
+ end
22
+ end
23
+ end
24
+ end
@@ -35,12 +35,16 @@ module Pubid::Jis
35
35
  end
36
36
 
37
37
  rule(:amendment) do
38
- (str("/") >> str("AMD").as(:type) >> space >> digits.as(:number) >> colon >> year).repeat(1).as(:supplements)
38
+ (str("/") >> (str("AMD") | str("AMENDMENT")).as(:type) >> space >> digits.as(:number) >> colon >> year).repeat(1).as(:supplements)
39
+ end
40
+
41
+ rule(:explanation) do
42
+ (str("/") >> (str("EXPLANATION") | str("EXPL")) >> (space >> digits.as(:number)).maybe).as(:explanation)
39
43
  end
40
44
 
41
45
  rule(:identifier) do
42
46
  str("JIS").maybe >> space? >> type.maybe >> space? >> series >> space? >> digits.as(:number) >> part >>
43
- (colon >> year).maybe >> language.maybe >> all_parts.maybe >> amendment.maybe
47
+ (colon >> year).maybe >> language.maybe >> all_parts.maybe >> amendment.maybe >> explanation.maybe
44
48
  end
45
49
 
46
50
  rule(:root) { identifier }
@@ -5,5 +5,9 @@ module Pubid::Jis::Renderer
5
5
  def render_identifier(params)
6
6
  "%{base}/AMD %{number}%{year}" % params
7
7
  end
8
+
9
+ def render_base(base, opts, _params)
10
+ base.to_s(**opts)
11
+ end
8
12
  end
9
13
  end
@@ -2,6 +2,10 @@ module Pubid::Jis::Renderer
2
2
  class Base < Pubid::Core::Renderer::Base
3
3
  TYPE = "".freeze
4
4
 
5
+ def render(**args)
6
+ render_base_identifier(**args) + @prerendered_params[:language].to_s
7
+ end
8
+
5
9
  def render_identifier(params)
6
10
  "%{publisher}%{series} %{number}%{part}%{year}%{all_parts}" % params
7
11
  end
@@ -15,7 +19,7 @@ module Pubid::Jis::Renderer
15
19
  end
16
20
 
17
21
  def render_part(part, opts, _params)
18
- return "-#{part.reverse.join('-')}" if part.is_a?(Array)
22
+ return "-#{part.join('-')}" if part.is_a?(Array)
19
23
 
20
24
  "-#{part}"
21
25
  end
@@ -23,5 +27,9 @@ module Pubid::Jis::Renderer
23
27
  def render_all_parts(all_parts, _opts, _params)
24
28
  "(規格群)" if all_parts
25
29
  end
30
+
31
+ def render_year(year, _opts, _params)
32
+ ":#{year}"
33
+ end
26
34
  end
27
35
  end
@@ -0,0 +1,13 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Jis::Renderer
4
+ class Explanation < Base
5
+ def render_identifier(params)
6
+ if params[:number].to_s.empty?
7
+ "%{base}/EXPL" % params
8
+ else
9
+ "%{base}/EXPL %{number}" % params
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Jis
3
- VERSION = "0.2.0".freeze
3
+ VERSION = "0.3.1".freeze
4
4
  end
5
5
  end
data/lib/pubid/jis.rb CHANGED
@@ -12,16 +12,21 @@ require_relative "jis/identifier/base"
12
12
  require_relative "jis/identifier/technical_report"
13
13
  require_relative "jis/identifier/technical_specification"
14
14
  require_relative "jis/identifier/amendment"
15
+ require_relative "jis/identifier/explanation"
15
16
  require_relative "jis/renderer/base"
16
17
  require_relative "jis/renderer/technical_report"
17
18
  require_relative "jis/renderer/technical_specification"
18
19
  require_relative "jis/renderer/amendment"
20
+ require_relative "jis/renderer/explanation"
19
21
  require_relative "jis/parser"
20
22
  require_relative "jis/identifier"
21
23
 
22
24
  config = Pubid::Core::Configuration.new
23
25
  config.default_type = Pubid::Jis::Identifier::Base
24
- config.types = [Pubid::Jis::Identifier::Base, Pubid::Jis::Identifier::TechnicalReport,
25
- Pubid::Jis::Identifier::TechnicalSpecification, Pubid::Jis::Identifier::Amendment]
26
+ config.types = [Pubid::Jis::Identifier::Base,
27
+ Pubid::Jis::Identifier::TechnicalReport,
28
+ Pubid::Jis::Identifier::TechnicalSpecification,
29
+ Pubid::Jis::Identifier::Amendment,
30
+ Pubid::Jis::Identifier::Explanation]
26
31
  config.type_names = {}.freeze
27
32
  Pubid::Jis::Identifier.set_config(config)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pubid-jis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
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-04-06 00:00:00.000000000 Z
11
+ date: 2023-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,48 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
- - !ruby/object:Gem::Dependency
42
- name: nokogiri
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: thor
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: lightly
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
41
  - !ruby/object:Gem::Dependency
84
42
  name: parslet
85
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +58,14 @@ dependencies:
100
58
  requirements:
101
59
  - - "~>"
102
60
  - !ruby/object:Gem::Version
103
- version: 1.8.0
61
+ version: 1.8.6
104
62
  type: :runtime
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
66
  - - "~>"
109
67
  - !ruby/object:Gem::Version
110
- version: 1.8.0
68
+ version: 1.8.6
111
69
  description: Library to generate, parse and manipulate JIS PubID.
112
70
  email:
113
71
  - open.source@ribose.com
@@ -125,11 +83,13 @@ files:
125
83
  - lib/pubid/jis/identifier.rb
126
84
  - lib/pubid/jis/identifier/amendment.rb
127
85
  - lib/pubid/jis/identifier/base.rb
86
+ - lib/pubid/jis/identifier/explanation.rb
128
87
  - lib/pubid/jis/identifier/technical_report.rb
129
88
  - lib/pubid/jis/identifier/technical_specification.rb
130
89
  - lib/pubid/jis/parser.rb
131
90
  - lib/pubid/jis/renderer/amendment.rb
132
91
  - lib/pubid/jis/renderer/base.rb
92
+ - lib/pubid/jis/renderer/explanation.rb
133
93
  - lib/pubid/jis/renderer/technical_report.rb
134
94
  - lib/pubid/jis/renderer/technical_specification.rb
135
95
  - lib/pubid/jis/version.rb
@@ -152,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
112
  - !ruby/object:Gem::Version
153
113
  version: '0'
154
114
  requirements: []
155
- rubygems_version: 3.0.3.1
115
+ rubygems_version: 3.3.26
156
116
  signing_key:
157
117
  specification_version: 4
158
118
  summary: Library to generate, parse and manipulate JIS PubID.