relaton-gb 2.0.0 → 2.2.0.pre.alpha.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 +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/.gitignore +1 -0
- data/Gemfile +9 -0
- data/lib/relaton/gb/bibdata.rb +1 -0
- data/lib/relaton/gb/bibitem.rb +1 -0
- data/lib/relaton/gb/ccs.rb +5 -8
- data/lib/relaton/gb/ext.rb +7 -5
- data/lib/relaton/gb/gb_scraper.rb +4 -2
- data/lib/relaton/gb/scraper.rb +2 -2
- data/lib/relaton/gb/sec_scraper.rb +3 -9
- data/lib/relaton/gb/version.rb +1 -1
- data/{relaton_gb.gemspec → relaton-gb.gemspec} +4 -4
- metadata +23 -26
- data/.rubocop.yml +0 -12
- data/grammars/basicdoc.rng +0 -2140
- data/grammars/biblio-standoc.rng +0 -268
- data/grammars/biblio.rng +0 -2129
- data/grammars/relaton-gb-compile.rng +0 -11
- data/grammars/relaton-gb.rng +0 -191
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 111cc285ffa9c8c1ca502bf601c5c32c9a157d27a665bcc479072c21d8652c12
|
|
4
|
+
data.tar.gz: e945c436cf9fdea941d7db519741068f82b0522186a56dcc8b3d4c065cda5a9d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2cca7dde4feddea94b0d61cef4e1e3902695753dcfe53326e87bf5691438a386008e7235b020ad0866cfabb5f6630f562362dbf0df4b8db87efb1a1167dd4b38
|
|
7
|
+
data.tar.gz: 4b778029628015da4e944d21e926f562b82b7351b700bb09d78fb07861ff4be053461a0e56f13faa342ddccea21284a08d5c33869e70c59a16d4f13e64d0396a
|
data/.github/workflows/rake.yml
CHANGED
data/.gitignore
CHANGED
data/Gemfile
CHANGED
|
@@ -8,6 +8,15 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
|
8
8
|
# Specify your gem's dependencies in gdbib.gemspec
|
|
9
9
|
gemspec
|
|
10
10
|
|
|
11
|
+
# Use local monorepo sibling gems where available.
|
|
12
|
+
Dir["../*/"].each do |dir|
|
|
13
|
+
name = File.basename(dir)
|
|
14
|
+
next if name == File.basename(__dir__)
|
|
15
|
+
next unless File.exist?(File.join(dir, "#{name}.gemspec"))
|
|
16
|
+
gem name, path: dir
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
11
20
|
gem "equivalent-xml", "~> 0.6"
|
|
12
21
|
gem "pry-byebug"
|
|
13
22
|
gem "rake", "~> 13.0"
|
data/lib/relaton/gb/bibdata.rb
CHANGED
data/lib/relaton/gb/bibitem.rb
CHANGED
data/lib/relaton/gb/ccs.rb
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
module Relaton
|
|
2
2
|
module Gb
|
|
3
3
|
class CCS < Bib::ICS
|
|
4
|
-
|
|
4
|
+
xml { root "ccs" }
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
map_element "text", to: :text
|
|
10
|
-
end
|
|
6
|
+
def text
|
|
7
|
+
val = @text
|
|
8
|
+
return val if val && !val.empty?
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
Cnccs.fetch(code).description if code
|
|
10
|
+
Cnccs.fetch(code)&.description if code
|
|
14
11
|
end
|
|
15
12
|
end
|
|
16
13
|
end
|
data/lib/relaton/gb/ext.rb
CHANGED
|
@@ -8,10 +8,8 @@ require_relative "ccs"
|
|
|
8
8
|
module Relaton
|
|
9
9
|
module Gb
|
|
10
10
|
class Ext < Bib::Ext
|
|
11
|
-
attribute :schema_version, method: :get_schema_version
|
|
12
11
|
attribute :doctype, Doctype
|
|
13
12
|
attribute :subdoctype, :string, values: %w[specification method-of-test vocabulary code-of-practice]
|
|
14
|
-
# attribute :gbcommittee, Committee, collection: true
|
|
15
13
|
attribute :structuredidentifier, StructuredIdentifier
|
|
16
14
|
attribute :stagename, StageName
|
|
17
15
|
attribute :gbtype, GbType
|
|
@@ -19,16 +17,20 @@ module Relaton
|
|
|
19
17
|
attribute :plannumber, :string
|
|
20
18
|
|
|
21
19
|
xml do
|
|
22
|
-
# map_element "gbcommittee", to: :gbcommittee
|
|
23
20
|
map_element "stagename", to: :stagename
|
|
24
21
|
map_element "gbtype", to: :gbtype
|
|
25
22
|
map_element "ccs", to: :ccs
|
|
26
23
|
map_element "plannumber", to: :plannumber
|
|
27
24
|
end
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
key_value do
|
|
27
|
+
map_element "stagename", to: :stagename
|
|
28
|
+
map_element "gbtype", to: :gbtype
|
|
29
|
+
map_element "ccs", to: :ccs
|
|
30
|
+
map_element "plannumber", to: :plannumber
|
|
31
31
|
end
|
|
32
|
+
|
|
33
|
+
def get_schema_version = Relaton.schema_versions["relaton-model-gb"]
|
|
32
34
|
end
|
|
33
35
|
end
|
|
34
36
|
end
|
|
@@ -22,8 +22,10 @@ module Relaton
|
|
|
22
22
|
).map do |h|
|
|
23
23
|
ref = h.at "./td[2]/a"
|
|
24
24
|
pid = ref[:onclick].match(/[0-9A-F]+/).to_s
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
status = h.at("./td[7]").text.strip
|
|
26
|
+
rdate = h.at("./td[8]").text.strip
|
|
27
|
+
Hit.new pid: pid, docref: ref.text, scraper: self,
|
|
28
|
+
release_date: rdate, status: status
|
|
27
29
|
end
|
|
28
30
|
HitCollection.new hits.sort_by(&:release_date).reverse
|
|
29
31
|
rescue Mechanize::Error => e
|
data/lib/relaton/gb/scraper.rb
CHANGED
|
@@ -95,7 +95,7 @@ module Relaton
|
|
|
95
95
|
# @param doc [Nokogiri::HTML::Document]
|
|
96
96
|
# @return [Array<String>]
|
|
97
97
|
def get_ccs(doc)
|
|
98
|
-
code = doc.at("//div[contains(text(), '中国标准分类号')]/following-sibling::div").text.
|
|
98
|
+
code = doc.at("//div[contains(text(), '中国标准分类号')]/following-sibling::div").text.strip
|
|
99
99
|
[CCS.new(code: code)]
|
|
100
100
|
end
|
|
101
101
|
|
|
@@ -106,7 +106,7 @@ module Relaton
|
|
|
106
106
|
" | //dt[contains(text(), '国际标准分类号')]/following-sibling::dd")
|
|
107
107
|
return [] unless ics
|
|
108
108
|
|
|
109
|
-
code = ics.text.
|
|
109
|
+
code = ics.text.strip
|
|
110
110
|
[Bib::ICS.new(code: code)]
|
|
111
111
|
end
|
|
112
112
|
|
|
@@ -22,7 +22,8 @@ module Relaton
|
|
|
22
22
|
def scrape_page(text)
|
|
23
23
|
# uri = URI "http://www.std.gov.cn/hb/search/hbPage?searchText=#{text}"
|
|
24
24
|
uri = URI "https://hbba.sacinfo.org.cn/stdQueryList"
|
|
25
|
-
resp = Net::HTTP.post uri, URI.encode_www_form({ key: text })
|
|
25
|
+
resp = Net::HTTP.post uri, URI.encode_www_form({ key: text }),
|
|
26
|
+
"Content-Type" => "application/x-www-form-urlencoded"
|
|
26
27
|
# res = JSON.parse Net::HTTP.get(uri)
|
|
27
28
|
json = JSON.parse resp.body
|
|
28
29
|
hits = json["records"].map do |h|
|
|
@@ -56,15 +57,8 @@ module Relaton
|
|
|
56
57
|
# @param doc [Nokogiri::HTML::Document]
|
|
57
58
|
# @return [Array<Relaton::Bib::Title>]
|
|
58
59
|
def get_titles(doc)
|
|
59
|
-
# titles = [{ title_main: doc.at("//h4").text.delete("\r\n\t"),
|
|
60
|
-
# title_intro: nil, language: "zh", script: "Hans" }]
|
|
61
60
|
tzh = doc.at("//h4").text.delete("\r\n\t")
|
|
62
|
-
|
|
63
|
-
# title_main = doc.at("//td[contains(text(), '英文标准名称')]").text.match(/[\w\s]+/).to_s
|
|
64
|
-
# unless title_main.empty?
|
|
65
|
-
# titles << { title_main: title_main, title_intro: nil, language: "en", script: "Latn" }
|
|
66
|
-
# end
|
|
67
|
-
# titles
|
|
61
|
+
Bib::Title.from_string(tzh, "zh", "Hans")
|
|
68
62
|
end
|
|
69
63
|
|
|
70
64
|
# @param _doc [Nokogiri::HTML::Document]
|
data/lib/relaton/gb/version.rb
CHANGED
|
@@ -22,12 +22,12 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
spec.bindir = "exe"
|
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
24
|
spec.require_paths = ["lib"]
|
|
25
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 3.
|
|
25
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.3.0")
|
|
26
26
|
|
|
27
27
|
spec.add_dependency "cnccs", "~> 0.1.1"
|
|
28
|
+
spec.add_dependency "csv", "~> 3.0"
|
|
28
29
|
spec.add_dependency "gb-agencies", "~> 0.0.1"
|
|
29
30
|
spec.add_dependency "mechanize", "~> 2.10"
|
|
30
|
-
spec.add_dependency "relaton-core", "~>
|
|
31
|
-
spec.add_dependency "relaton-iso", "~> 2.0.
|
|
32
|
-
spec.add_dependency "csv", "~> 3.0"
|
|
31
|
+
spec.add_dependency "relaton-core", "~> 2.2.0.pre.alpha.1"
|
|
32
|
+
spec.add_dependency "relaton-iso", "~> 2.2.0.pre.alpha.1"
|
|
33
33
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: relaton-gb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.2.0.pre.alpha.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-06-26 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: cnccs
|
|
@@ -24,75 +25,75 @@ dependencies:
|
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
26
|
version: 0.1.1
|
|
26
27
|
- !ruby/object:Gem::Dependency
|
|
27
|
-
name:
|
|
28
|
+
name: csv
|
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
|
29
30
|
requirements:
|
|
30
31
|
- - "~>"
|
|
31
32
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
33
|
+
version: '3.0'
|
|
33
34
|
type: :runtime
|
|
34
35
|
prerelease: false
|
|
35
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
37
|
requirements:
|
|
37
38
|
- - "~>"
|
|
38
39
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
40
|
+
version: '3.0'
|
|
40
41
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
42
|
+
name: gb-agencies
|
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
|
43
44
|
requirements:
|
|
44
45
|
- - "~>"
|
|
45
46
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
47
|
+
version: 0.0.1
|
|
47
48
|
type: :runtime
|
|
48
49
|
prerelease: false
|
|
49
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
51
|
requirements:
|
|
51
52
|
- - "~>"
|
|
52
53
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
54
|
+
version: 0.0.1
|
|
54
55
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
56
|
+
name: mechanize
|
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
|
57
58
|
requirements:
|
|
58
59
|
- - "~>"
|
|
59
60
|
- !ruby/object:Gem::Version
|
|
60
|
-
version:
|
|
61
|
+
version: '2.10'
|
|
61
62
|
type: :runtime
|
|
62
63
|
prerelease: false
|
|
63
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
65
|
requirements:
|
|
65
66
|
- - "~>"
|
|
66
67
|
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
68
|
+
version: '2.10'
|
|
68
69
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: relaton-
|
|
70
|
+
name: relaton-core
|
|
70
71
|
requirement: !ruby/object:Gem::Requirement
|
|
71
72
|
requirements:
|
|
72
73
|
- - "~>"
|
|
73
74
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 2.0.
|
|
75
|
+
version: 2.2.0.pre.alpha.1
|
|
75
76
|
type: :runtime
|
|
76
77
|
prerelease: false
|
|
77
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
79
|
requirements:
|
|
79
80
|
- - "~>"
|
|
80
81
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 2.0.
|
|
82
|
+
version: 2.2.0.pre.alpha.1
|
|
82
83
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
84
|
+
name: relaton-iso
|
|
84
85
|
requirement: !ruby/object:Gem::Requirement
|
|
85
86
|
requirements:
|
|
86
87
|
- - "~>"
|
|
87
88
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
89
|
+
version: 2.2.0.pre.alpha.1
|
|
89
90
|
type: :runtime
|
|
90
91
|
prerelease: false
|
|
91
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
93
|
requirements:
|
|
93
94
|
- - "~>"
|
|
94
95
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
96
|
+
version: 2.2.0.pre.alpha.1
|
|
96
97
|
description: 'Relaton::Gb: retrieve Chinese GB Standards for bibliographic use using
|
|
97
98
|
the BibliographicItem model.'
|
|
98
99
|
email:
|
|
@@ -106,7 +107,6 @@ files:
|
|
|
106
107
|
- ".gitignore"
|
|
107
108
|
- ".hound.yml"
|
|
108
109
|
- ".rspec"
|
|
109
|
-
- ".rubocop.yml"
|
|
110
110
|
- Gemfile
|
|
111
111
|
- LICENSE.txt
|
|
112
112
|
- README.adoc
|
|
@@ -114,11 +114,6 @@ files:
|
|
|
114
114
|
- bin/console
|
|
115
115
|
- bin/rspec
|
|
116
116
|
- bin/setup
|
|
117
|
-
- grammars/basicdoc.rng
|
|
118
|
-
- grammars/biblio-standoc.rng
|
|
119
|
-
- grammars/biblio.rng
|
|
120
|
-
- grammars/relaton-gb-compile.rng
|
|
121
|
-
- grammars/relaton-gb.rng
|
|
122
117
|
- lib/relaton/gb.rb
|
|
123
118
|
- lib/relaton/gb/bibdata.rb
|
|
124
119
|
- lib/relaton/gb/bibitem.rb
|
|
@@ -144,11 +139,12 @@ files:
|
|
|
144
139
|
- lib/relaton/gb/util.rb
|
|
145
140
|
- lib/relaton/gb/version.rb
|
|
146
141
|
- lib/relaton/gb/yaml/prefixes.yaml
|
|
147
|
-
-
|
|
142
|
+
- relaton-gb.gemspec
|
|
148
143
|
homepage: https://github.com/metanorma/relaton_gb
|
|
149
144
|
licenses:
|
|
150
145
|
- BSD-2-Clause
|
|
151
146
|
metadata: {}
|
|
147
|
+
post_install_message:
|
|
152
148
|
rdoc_options: []
|
|
153
149
|
require_paths:
|
|
154
150
|
- lib
|
|
@@ -156,14 +152,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
156
152
|
requirements:
|
|
157
153
|
- - ">="
|
|
158
154
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 3.
|
|
155
|
+
version: 3.3.0
|
|
160
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
157
|
requirements:
|
|
162
158
|
- - ">="
|
|
163
159
|
- !ruby/object:Gem::Version
|
|
164
160
|
version: '0'
|
|
165
161
|
requirements: []
|
|
166
|
-
rubygems_version: 3.
|
|
162
|
+
rubygems_version: 3.5.22
|
|
163
|
+
signing_key:
|
|
167
164
|
specification_version: 4
|
|
168
165
|
summary: 'Relaton::Gb: retrieve Chinese GB Standards for bibliographic use using the
|
|
169
166
|
BibliographicItem model.'
|
data/.rubocop.yml
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# This project follows the Ribose OSS style guide.
|
|
2
|
-
# https://github.com/riboseinc/oss-guides
|
|
3
|
-
# All project-specific additions and overrides should be specified in this file.
|
|
4
|
-
|
|
5
|
-
require: rubocop-rails
|
|
6
|
-
|
|
7
|
-
inherit_from:
|
|
8
|
-
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
|
9
|
-
AllCops:
|
|
10
|
-
TargetRubyVersion: 3.2
|
|
11
|
-
Rails:
|
|
12
|
-
Enabled: false
|