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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52c9c362e38878ac808061c4128429abecb72214497a7cd79e0ac164307e234c
4
- data.tar.gz: b1cb30ea18386e35eab1f825e552e25f0b1308aa27853c9ad4fada10ec971f31
3
+ metadata.gz: 111cc285ffa9c8c1ca502bf601c5c32c9a157d27a665bcc479072c21d8652c12
4
+ data.tar.gz: e945c436cf9fdea941d7db519741068f82b0522186a56dcc8b3d4c065cda5a9d
5
5
  SHA512:
6
- metadata.gz: 361139f4ca7618efc5b299f52ea25cf0e9fdd3bade371bb90a6c47e30e22033900a378df173163507d8fbf6d00807e7907cad6a555d244e4fc2fd91220a38bf8
7
- data.tar.gz: bce6c28651c076beaea6e52a72c3d2b7935a80d6b1e8362f5b5170011cb61469054ffa339b8cfef5836178c87cff3ad594082681e057138e37c48a84054b4650
6
+ metadata.gz: 2cca7dde4feddea94b0d61cef4e1e3902695753dcfe53326e87bf5691438a386008e7235b020ad0866cfabb5f6630f562362dbf0df4b8db87efb1a1167dd4b38
7
+ data.tar.gz: 4b778029628015da4e944d21e926f562b82b7351b700bb09d78fb07861ff4be053461a0e56f13faa342ddccea21284a08d5c33869e70c59a16d4f13e64d0396a
@@ -4,7 +4,7 @@ name: rake
4
4
 
5
5
  on:
6
6
  push:
7
- branches: [ master, main ]
7
+ branches: [ master, main, lutaml-integration ]
8
8
  tags: [ v* ]
9
9
  pull_request:
10
10
 
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  .rspec_status
14
14
  .rubocop-https---raw-githubusercontent-com-riboseinc-oss-guides-master-ci-rubocop-yml
15
15
  Gemfile.lock
16
+ .claude/settings.local.json
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"
@@ -1,6 +1,7 @@
1
1
  module Relaton
2
2
  module Gb
3
3
  class Bibdata < Item
4
+ model ItemData
4
5
  include Bib::BibdataShared
5
6
  end
6
7
  end
@@ -1,6 +1,7 @@
1
1
  module Relaton
2
2
  module Gb
3
3
  class Bibitem < Item
4
+ model ItemData
4
5
  include Bib::BibitemShared
5
6
  end
6
7
  end
@@ -1,16 +1,13 @@
1
1
  module Relaton
2
2
  module Gb
3
3
  class CCS < Bib::ICS
4
- attribute :text, method: :get_text
4
+ xml { root "ccs" }
5
5
 
6
- xml do
7
- root "ccs"
8
- map_element "code", to: :code
9
- map_element "text", to: :text
10
- end
6
+ def text
7
+ val = @text
8
+ return val if val && !val.empty?
11
9
 
12
- def get_text
13
- Cnccs.fetch(code).description if code
10
+ Cnccs.fetch(code)&.description if code
14
11
  end
15
12
  end
16
13
  end
@@ -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
- def get_schema_version
30
- Relaton.schema_versions["relaton-model-gb"]
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
- rdate = h.at("./td[7]").text
26
- Hit.new pid: pid, docref: ref.text, scraper: self, release_date: rdate
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
@@ -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.delete("\r\n\t\t")
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.delete("\r\n\t\t")
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
- [Bib::Title.from_string(tzh, "zh", "Hans")]
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]
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Gb
3
- VERSION = "2.0.0".freeze
3
+ VERSION = "2.2.0.pre.alpha.1".freeze
4
4
  end
5
5
  end
@@ -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.2.0")
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", "~> 0.0.13"
31
- spec.add_dependency "relaton-iso", "~> 2.0.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.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: 1980-01-02 00:00:00.000000000 Z
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: gb-agencies
28
+ name: csv
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: 0.0.1
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: 0.0.1
40
+ version: '3.0'
40
41
  - !ruby/object:Gem::Dependency
41
- name: mechanize
42
+ name: gb-agencies
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: '2.10'
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: '2.10'
54
+ version: 0.0.1
54
55
  - !ruby/object:Gem::Dependency
55
- name: relaton-core
56
+ name: mechanize
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - "~>"
59
60
  - !ruby/object:Gem::Version
60
- version: 0.0.13
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: 0.0.13
68
+ version: '2.10'
68
69
  - !ruby/object:Gem::Dependency
69
- name: relaton-iso
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.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.0
82
+ version: 2.2.0.pre.alpha.1
82
83
  - !ruby/object:Gem::Dependency
83
- name: csv
84
+ name: relaton-iso
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
87
  - - "~>"
87
88
  - !ruby/object:Gem::Version
88
- version: '3.0'
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: '3.0'
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
- - relaton_gb.gemspec
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.2.0
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.6.9
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