relaton-plateau 1.19.3 → 1.19.4
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/README.adoc +41 -18
- data/lib/relaton/plateau/bibitem.rb +15 -1
- data/lib/relaton/plateau/bibliography.rb +7 -12
- data/lib/relaton/plateau/docidentifier.rb +9 -0
- data/lib/relaton/plateau/handbook_parser.rb +3 -3
- data/lib/relaton/plateau/hash_converter.rb +4 -0
- data/lib/relaton/plateau/hit.rb +27 -0
- data/lib/relaton/plateau/parser.rb +8 -3
- data/lib/relaton/plateau/technical_report_parser.rb +2 -2
- data/lib/relaton/plateau/version.rb +1 -1
- data/lib/relaton/plateau/xml_parser.rb +4 -0
- data/lib/relaton/plateau.rb +2 -0
- data/relaton_plateau.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9440584ea13e611d6139c74cd9ba79bbde532c76e2ba43d2fbc47c4fbe00388c
|
|
4
|
+
data.tar.gz: cdb45b8fbb9a1d27d7c3580788056a3f9fa38b727d69444b1789ada6bd203e8b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ea8f22a10154239a499e018756b3cfb8d84a7647860881f3b81c7ba4732d374d6a6db5f464d916fd6ceda68aaed023e7b5914399cbdbc8c07d3992906ce9914
|
|
7
|
+
data.tar.gz: b380d9c2cdd1e311fd5e66948aedcf95e1645aa8c14abdb3d4140289cf48b3523325aa401fc34a85d8a22b1d41670f78e1b0a9083af91d1415ec43d67c9695a7
|
data/README.adoc
CHANGED
|
@@ -33,13 +33,36 @@ Or install it yourself as:
|
|
|
33
33
|
|
|
34
34
|
=== Fetching
|
|
35
35
|
|
|
36
|
+
==== Fetching Technical Reports
|
|
37
|
+
|
|
36
38
|
[source,ruby]
|
|
37
39
|
----
|
|
38
40
|
require "relaton/plateau"
|
|
41
|
+
Relaton::Plateau::Bibliography.get("PLATEAU Technical Report #00")
|
|
42
|
+
[relaton-plateau] INFO: (PLATEAU Technical Report #00) Fetching ...
|
|
43
|
+
[relaton-plateau] INFO: (PLATEAU Technical Report #00) Found `PLATEAU Technical Report #00`
|
|
44
|
+
=> #<Relaton::Plateau::BibItem:0x00000001238cfc98
|
|
45
|
+
...
|
|
46
|
+
----
|
|
47
|
+
|
|
48
|
+
==== Fetching Handbooks unversioned
|
|
49
|
+
|
|
50
|
+
[source,ruby]
|
|
51
|
+
----
|
|
52
|
+
Relaton::Plateau::Bibliography.get("PLATEAU Handbook #00")
|
|
53
|
+
[relaton-plateau] INFO: (PLATEAU Handbook #00) Fetching ...
|
|
54
|
+
[relaton-plateau] INFO: (PLATEAU Handbook #00) Found `PLATEAU Handbook #00`
|
|
55
|
+
=> #<Relaton::Plateau::BibItem:0x00000001238c7598
|
|
56
|
+
...
|
|
57
|
+
----
|
|
39
58
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
[
|
|
59
|
+
==== Fetching Handbooks versioned
|
|
60
|
+
|
|
61
|
+
[source,ruby]
|
|
62
|
+
----
|
|
63
|
+
bib = Relaton::Plateau::Bibliography.get("PLATEAU Handbook #00 1.0")
|
|
64
|
+
[relaton-plateau] INFO: (PLATEAU Handbook #00 1.0) Fetching ...
|
|
65
|
+
[relaton-plateau] INFO: (PLATEAU Handbook #00 1.0) Found `PLATEAU Handbook #00 1.0`
|
|
43
66
|
=> #<Relaton::Plateau::BibItem:0x0000000104afbcc0
|
|
44
67
|
...
|
|
45
68
|
----
|
|
@@ -52,15 +75,15 @@ bib = Relaton::Plateau::Bibliography.get("PLATEAU Handbook #00 第1.0版")
|
|
|
52
75
|
----
|
|
53
76
|
# Render bibitem
|
|
54
77
|
puts bib.to_xml
|
|
55
|
-
<bibitem id="PLATEAUHandbook#
|
|
78
|
+
<bibitem id="PLATEAUHandbook#001.0" type="standard" schema-version="v1.2.9">
|
|
56
79
|
<title type="main" format="text/plain" language="ja" script="Jpan">3D都市モデルの導入ガイダンス</title>
|
|
57
80
|
<title type="main" format="text/plain" language="en" script="Latn">Guidance on the Installation for 3D City Model</title>
|
|
58
81
|
<uri type="pdf">https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0000_ver01.pdf</uri>
|
|
59
|
-
<docidentifier type="PLATEAU" primary="true">PLATEAU Handbook #00
|
|
82
|
+
<docidentifier type="PLATEAU" primary="true">PLATEAU Handbook #00 1.0</docidentifier>
|
|
60
83
|
<date type="published">
|
|
61
84
|
<on>2021-03-26</on>
|
|
62
85
|
</date>
|
|
63
|
-
<edition number="1.0"
|
|
86
|
+
<edition number="1.0">1.0</edition>
|
|
64
87
|
<abstract format="text/plain" language="ja" script="Jpan">地方自治体担当者や民間事業者等に向けた 3D都市モデル導入のためのガイダンス</abstract>
|
|
65
88
|
</bibitem>
|
|
66
89
|
|
|
@@ -70,18 +93,18 @@ puts bib.to_xml(bibdata: true)
|
|
|
70
93
|
<title type="main" format="text/plain" language="ja" script="Jpan">3D都市モデルの導入ガイダンス</title>
|
|
71
94
|
<title type="main" format="text/plain" language="en" script="Latn">Guidance on the Installation for 3D City Model</title>
|
|
72
95
|
<uri type="pdf">https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_doc_0000_ver01.pdf</uri>
|
|
73
|
-
<docidentifier type="PLATEAU" primary="true">PLATEAU Handbook #00
|
|
96
|
+
<docidentifier type="PLATEAU" primary="true">PLATEAU Handbook #00 1.</docidentifier>
|
|
74
97
|
<date type="published">
|
|
75
98
|
<on>2021-03-26</on>
|
|
76
99
|
</date>
|
|
77
|
-
<edition number="1.0"
|
|
100
|
+
<edition number="1.0">1.0</edition>
|
|
78
101
|
<abstract format="text/plain" language="ja" script="Jpan">地方自治体担当者や民間事業者等に向けた 3D都市モデル導入のためのガイダンス</abstract>
|
|
79
102
|
<ext>
|
|
80
103
|
<doctype>handbook</doctype>
|
|
81
104
|
<structuredidentifier type="Handbook">
|
|
82
105
|
<agency>PLATEAU</agency>
|
|
83
106
|
<docnumber>00</docnumber>
|
|
84
|
-
<edition
|
|
107
|
+
<edition>1.0</edition>
|
|
85
108
|
</structuredidentifier>
|
|
86
109
|
<cover>
|
|
87
110
|
<image src="https://www.mlit.go.jp//plateau/uploads/2022/06/1@2x.jpg" mimetype="image/jpeg"/>
|
|
@@ -97,7 +120,7 @@ puts bib.to_xml(bibdata: true)
|
|
|
97
120
|
puts bib.to_hash.to_yaml
|
|
98
121
|
---
|
|
99
122
|
schema-version: v1.2.9
|
|
100
|
-
id: PLATEAUHandbook#
|
|
123
|
+
id: PLATEAUHandbook#001.0
|
|
101
124
|
title:
|
|
102
125
|
- content: 3D都市モデルの導入ガイダンス
|
|
103
126
|
language:
|
|
@@ -118,14 +141,14 @@ link:
|
|
|
118
141
|
type: pdf
|
|
119
142
|
type: standard
|
|
120
143
|
docid:
|
|
121
|
-
- id: 'PLATEAU Handbook #00
|
|
144
|
+
- id: 'PLATEAU Handbook #00 1.0'
|
|
122
145
|
type: PLATEAU
|
|
123
146
|
primary: true
|
|
124
147
|
date:
|
|
125
148
|
- type: published
|
|
126
149
|
value: '2021-03-26'
|
|
127
150
|
edition:
|
|
128
|
-
content:
|
|
151
|
+
content: 1.0
|
|
129
152
|
number: '1.0'
|
|
130
153
|
revdate: '2021-03-26'
|
|
131
154
|
abstract:
|
|
@@ -142,7 +165,7 @@ structuredidentifier:
|
|
|
142
165
|
type: Handbook
|
|
143
166
|
agency:
|
|
144
167
|
- PLATEAU
|
|
145
|
-
edition:
|
|
168
|
+
edition: 1.0
|
|
146
169
|
ext:
|
|
147
170
|
cover:
|
|
148
171
|
image:
|
|
@@ -156,7 +179,7 @@ ext:
|
|
|
156
179
|
[source,ruby]
|
|
157
180
|
----
|
|
158
181
|
puts bib.to_bibxml
|
|
159
|
-
<reference anchor="PLATEAU.Handbook.#00
|
|
182
|
+
<reference anchor="PLATEAU.Handbook.#00.1.0">
|
|
160
183
|
<front>
|
|
161
184
|
<title>3D都市モデルの導入ガイダンス</title>
|
|
162
185
|
<date year="2021" month="March" day="26"/>
|
|
@@ -172,7 +195,7 @@ puts bib.to_bibxml
|
|
|
172
195
|
puts bib.to_asciibib
|
|
173
196
|
[%bibitem]
|
|
174
197
|
== {blank}
|
|
175
|
-
id:: PLATEAUHandbook#
|
|
198
|
+
id:: PLATEAUHandbook#001.0
|
|
176
199
|
title::
|
|
177
200
|
title.type:: main
|
|
178
201
|
title.content:: 3D都市モデルの導入ガイダンス
|
|
@@ -188,8 +211,8 @@ title.format:: text/plain
|
|
|
188
211
|
type:: standard
|
|
189
212
|
docid.type:: PLATEAU
|
|
190
213
|
docid.primary:: true
|
|
191
|
-
docid.id:: PLATEAU Handbook #00
|
|
192
|
-
edition.content::
|
|
214
|
+
docid.id:: PLATEAU Handbook #00 1.0
|
|
215
|
+
edition.content:: 1.0
|
|
193
216
|
edition.number:: 1.0
|
|
194
217
|
date.type:: published
|
|
195
218
|
date.on:: 2021-03-26
|
|
@@ -203,7 +226,7 @@ doctype.type:: handbook
|
|
|
203
226
|
structured_identifier.docnumber:: 00
|
|
204
227
|
structured_identifier.agency:: PLATEAU
|
|
205
228
|
structured_identifier.type:: Handbook
|
|
206
|
-
structured_identifier.edition::
|
|
229
|
+
structured_identifier.edition:: 1.0
|
|
207
230
|
cover.image.src:: https://www.mlit.go.jp//plateau/uploads/2022/06/1@2x.jpg
|
|
208
231
|
cover.image.mimetype:: image/jpeg
|
|
209
232
|
filesize:: 18381880
|
|
@@ -11,7 +11,7 @@ module Relaton
|
|
|
11
11
|
attr_reader :stagename
|
|
12
12
|
|
|
13
13
|
# @return [Integer, nil]
|
|
14
|
-
|
|
14
|
+
attr_accessor :filesize
|
|
15
15
|
|
|
16
16
|
def initialize(**args)
|
|
17
17
|
@cover = args.delete(:cover)
|
|
@@ -72,6 +72,20 @@ module Relaton
|
|
|
72
72
|
output
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
+
def to_all_editions(hits)
|
|
76
|
+
me = deep_clone
|
|
77
|
+
me.docidentifier.each(&:remove_edition)
|
|
78
|
+
me.id.sub!(/#{Regexp.escape(me.edition.content)}$/, "")
|
|
79
|
+
me.instance_variable_set :@edition, nil
|
|
80
|
+
me.date = []
|
|
81
|
+
me.instance_variable_set :@link, []
|
|
82
|
+
me.filesize = nil
|
|
83
|
+
hits.each do |h|
|
|
84
|
+
me.relation << RelatonBib::DocumentRelation.new(type: "hasEdition", bibitem: h.bibitem)
|
|
85
|
+
end
|
|
86
|
+
me
|
|
87
|
+
end
|
|
88
|
+
|
|
75
89
|
private
|
|
76
90
|
|
|
77
91
|
def has_ext_data?
|
|
@@ -24,20 +24,15 @@ module Relaton
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def search(code)
|
|
27
|
-
|
|
27
|
+
all_editions = code.match?(/Handbook #\d+$/)
|
|
28
|
+
rows = index.search do |r|
|
|
29
|
+
id = all_editions ? r[:id].sub(/ \d+\.\d+$/, "") : r[:id]
|
|
30
|
+
id == code
|
|
31
|
+
end
|
|
28
32
|
return unless rows.any?
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def fetch_doc(code, id:, file:)
|
|
35
|
-
resp = Net::HTTP.get_response URI("#{GHURL}#{file}")
|
|
36
|
-
return unless resp.is_a? Net::HTTPSuccess
|
|
37
|
-
|
|
38
|
-
hash = YAML.load(resp.body)
|
|
39
|
-
args = HashConverter.hash_to_bib hash
|
|
40
|
-
BibItem.new(**args)
|
|
34
|
+
hits = rows.map { |r| Hit.new(**r) }
|
|
35
|
+
all_editions ? hits[0].bibitem.to_all_editions(hits) : hits[0].bibitem
|
|
41
36
|
end
|
|
42
37
|
end
|
|
43
38
|
end
|
|
@@ -15,11 +15,11 @@ module Relaton
|
|
|
15
15
|
private
|
|
16
16
|
|
|
17
17
|
def edition
|
|
18
|
-
@edition ||= @version["title"].split.first
|
|
18
|
+
@edition ||= @version["title"].split.first.match(/[\d.]+/).to_s
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def
|
|
22
|
-
|
|
21
|
+
def parse_docnumber
|
|
22
|
+
"Handbook ##{@entry["slug"]} #{edition}"
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def parse_title
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Relaton
|
|
2
|
+
module Plateau
|
|
3
|
+
class Hit
|
|
4
|
+
def initialize(**args)
|
|
5
|
+
@id = args[:id]
|
|
6
|
+
@file = args[:file]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def bibitem
|
|
10
|
+
return @bibitem if defined? @bibitem
|
|
11
|
+
@bibitem = fetch_doc
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def fetch_doc
|
|
17
|
+
resp = Net::HTTP.get_response URI("#{Bibliography::GHURL}#{@file}")
|
|
18
|
+
return unless resp.is_a? Net::HTTPSuccess
|
|
19
|
+
|
|
20
|
+
hash = YAML.load(resp.body)
|
|
21
|
+
args = HashConverter.hash_to_bib hash
|
|
22
|
+
args[:fetched] = Date.today.to_s
|
|
23
|
+
BibItem.new(**args)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
module Relaton
|
|
2
2
|
module Plateau
|
|
3
|
+
# Base class for Plateau parsers
|
|
3
4
|
class Parser
|
|
4
|
-
ATTRIS = %i[docid title abstract cover edition type doctype subdoctype
|
|
5
|
+
ATTRIS = %i[docid docnumber title abstract cover edition type doctype subdoctype
|
|
5
6
|
date link contributor filesize keyword structuredidentifier].freeze
|
|
6
7
|
|
|
7
8
|
def initialize(item)
|
|
@@ -17,10 +18,14 @@ module Relaton
|
|
|
17
18
|
|
|
18
19
|
private
|
|
19
20
|
|
|
20
|
-
def parse_docid
|
|
21
|
+
def parse_docid
|
|
22
|
+
[create_docid("PLATEAU #{parse_docnumber}")]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def parse_docnumber; end
|
|
21
26
|
|
|
22
27
|
def create_docid(id)
|
|
23
|
-
|
|
28
|
+
Docidentifier.new(type: "PLATEAU", id: id, primary: true)
|
|
24
29
|
end
|
|
25
30
|
|
|
26
31
|
def create_formatted_string(content, lang = "ja", script = "Jpan")
|
data/lib/relaton/plateau.rb
CHANGED
|
@@ -4,8 +4,10 @@ require "relaton/index"
|
|
|
4
4
|
require "relaton_bib"
|
|
5
5
|
require_relative "plateau/version"
|
|
6
6
|
require_relative "plateau/util"
|
|
7
|
+
require_relative "plateau/docidentifier"
|
|
7
8
|
require_relative "plateau/document_type"
|
|
8
9
|
require_relative "plateau/bibitem"
|
|
10
|
+
require_relative "plateau/hit"
|
|
9
11
|
require_relative "plateau/bibliography"
|
|
10
12
|
require_relative "plateau/xml_parser"
|
|
11
13
|
require_relative "plateau/hash_converter"
|
data/relaton_plateau.gemspec
CHANGED
|
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.add_dependency "base64"
|
|
28
28
|
spec.add_dependency "relaton-index", "~> 0.2.12"
|
|
29
29
|
spec.add_dependency "relaton-logger", "~> 0.2.0"
|
|
30
|
-
spec.add_dependency "relaton-bib", "~> 1.19.
|
|
30
|
+
spec.add_dependency "relaton-bib", "~> 1.19.4"
|
|
31
31
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: relaton-plateau
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.19.
|
|
4
|
+
version: 1.19.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-08-
|
|
11
|
+
date: 2024-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.19.
|
|
61
|
+
version: 1.19.4
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.19.
|
|
68
|
+
version: 1.19.4
|
|
69
69
|
description: Retrieve Project PLATEAU bibliographic items.
|
|
70
70
|
email:
|
|
71
71
|
- open.source@ribose.com
|
|
@@ -93,10 +93,12 @@ files:
|
|
|
93
93
|
- lib/relaton/plateau/bibitem.rb
|
|
94
94
|
- lib/relaton/plateau/bibliography.rb
|
|
95
95
|
- lib/relaton/plateau/cover.rb
|
|
96
|
+
- lib/relaton/plateau/docidentifier.rb
|
|
96
97
|
- lib/relaton/plateau/document_type.rb
|
|
97
98
|
- lib/relaton/plateau/fetcher.rb
|
|
98
99
|
- lib/relaton/plateau/handbook_parser.rb
|
|
99
100
|
- lib/relaton/plateau/hash_converter.rb
|
|
101
|
+
- lib/relaton/plateau/hit.rb
|
|
100
102
|
- lib/relaton/plateau/parser.rb
|
|
101
103
|
- lib/relaton/plateau/processor.rb
|
|
102
104
|
- lib/relaton/plateau/stagename.rb
|