relaton-gb 0.6.8 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/grammars/reqt.rng ADDED
@@ -0,0 +1,165 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <!--
4
+ Presupposes isodoc.rnc, is included in it
5
+ include "isodoc.rnc" { }
6
+ -->
7
+ <define name="requirement">
8
+ <element name="requirement">
9
+ <ref name="RequirementType"/>
10
+ </element>
11
+ </define>
12
+ <define name="recommendation">
13
+ <element name="recommendation">
14
+ <ref name="RequirementType"/>
15
+ </element>
16
+ </define>
17
+ <define name="permission">
18
+ <element name="permission">
19
+ <ref name="RequirementType"/>
20
+ </element>
21
+ </define>
22
+ <define name="RequirementType">
23
+ <optional>
24
+ <attribute name="obligation">
25
+ <ref name="ObligationType"/>
26
+ </attribute>
27
+ </optional>
28
+ <optional>
29
+ <attribute name="unnumbered">
30
+ <data type="boolean"/>
31
+ </attribute>
32
+ </optional>
33
+ <optional>
34
+ <attribute name="subsequence"/>
35
+ </optional>
36
+ <attribute name="id">
37
+ <data type="ID"/>
38
+ </attribute>
39
+ <optional>
40
+ <attribute name="filename"/>
41
+ </optional>
42
+ <optional>
43
+ <ref name="reqtitle"/>
44
+ </optional>
45
+ <optional>
46
+ <ref name="label"/>
47
+ </optional>
48
+ <optional>
49
+ <ref name="subject"/>
50
+ </optional>
51
+ <optional>
52
+ <ref name="reqinherit"/>
53
+ </optional>
54
+ <zeroOrMore>
55
+ <ref name="classification"/>
56
+ </zeroOrMore>
57
+ <zeroOrMore>
58
+ <choice>
59
+ <ref name="measurementtarget"/>
60
+ <ref name="specification"/>
61
+ <ref name="verification"/>
62
+ <ref name="import"/>
63
+ <ref name="description"/>
64
+ </choice>
65
+ </zeroOrMore>
66
+ <optional>
67
+ <ref name="reqt_references"/>
68
+ </optional>
69
+ <zeroOrMore>
70
+ <choice>
71
+ <ref name="requirement"/>
72
+ <ref name="recommendation"/>
73
+ <ref name="permission"/>
74
+ </choice>
75
+ </zeroOrMore>
76
+ </define>
77
+ <define name="reqtitle">
78
+ <element name="title">
79
+ <ref name="FormattedString"/>
80
+ </element>
81
+ </define>
82
+ <define name="label">
83
+ <element name="label">
84
+ <text/>
85
+ </element>
86
+ </define>
87
+ <define name="subject">
88
+ <element name="subject">
89
+ <text/>
90
+ </element>
91
+ </define>
92
+ <define name="reqinherit">
93
+ <element name="inherit">
94
+ <text/>
95
+ </element>
96
+ </define>
97
+ <define name="measurementtarget">
98
+ <element name="measurement-target">
99
+ <ref name="RequirementSubpart"/>
100
+ </element>
101
+ </define>
102
+ <define name="specification">
103
+ <element name="specification">
104
+ <ref name="RequirementSubpart"/>
105
+ </element>
106
+ </define>
107
+ <define name="verification">
108
+ <element name="verification">
109
+ <ref name="RequirementSubpart"/>
110
+ </element>
111
+ </define>
112
+ <define name="import">
113
+ <element name="import">
114
+ <ref name="RequirementSubpart"/>
115
+ </element>
116
+ </define>
117
+ <define name="description">
118
+ <element name="description">
119
+ <ref name="RequirementSubpart"/>
120
+ </element>
121
+ </define>
122
+ <define name="reqt_references">
123
+ <element name="references">
124
+ <oneOrMore>
125
+ <ref name="bibitem"/>
126
+ </oneOrMore>
127
+ </element>
128
+ </define>
129
+ <define name="RequirementSubpart">
130
+ <optional>
131
+ <attribute name="type"/>
132
+ </optional>
133
+ <optional>
134
+ <attribute name="exclude">
135
+ <data type="boolean"/>
136
+ </attribute>
137
+ </optional>
138
+ <oneOrMore>
139
+ <ref name="BasicBlock"/>
140
+ </oneOrMore>
141
+ </define>
142
+ <define name="ObligationType">
143
+ <choice>
144
+ <value>requirement</value>
145
+ <value>recommendation</value>
146
+ <value>permission</value>
147
+ </choice>
148
+ </define>
149
+ <define name="classification">
150
+ <element name="classification">
151
+ <ref name="classification_tag"/>
152
+ <ref name="classification_value"/>
153
+ </element>
154
+ </define>
155
+ <define name="classification_tag">
156
+ <element name="tag">
157
+ <text/>
158
+ </element>
159
+ </define>
160
+ <define name="classification_value">
161
+ <element name="value">
162
+ <text/>
163
+ </element>
164
+ </define>
165
+ </grammar>
data/lib/relaton_gb.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "relaton_gb/version"
2
2
  require "relaton_gb/gb_bibliography"
3
+ require "digest/md5"
3
4
 
4
5
  # if defined? Relaton
5
6
  # require "relaton_gb/processor"
@@ -8,3 +9,14 @@ require "relaton_gb/gb_bibliography"
8
9
 
9
10
  # Relaton::Registry.instance.register RelatonGb::Processor
10
11
  # end
12
+
13
+ module RelatonGb
14
+ # Returns hash of XML reammar
15
+ # @return [String]
16
+ def self.grammar_hash
17
+ gem_path = File.expand_path "..", __dir__
18
+ grammars_path = File.join gem_path, "grammars", "*"
19
+ grammars = Dir[grammars_path].sort.map { |gp| File.read gp }.join
20
+ Digest::MD5.hexdigest grammars
21
+ end
22
+ end
@@ -115,7 +115,7 @@ module RelatonGb
115
115
  end
116
116
  end
117
117
 
118
- builder.gbplannumber gbplannumber if gbplannumber
118
+ builder.plannumber gbplannumber if gbplannumber
119
119
  end
120
120
  end
121
121
  end
@@ -2,34 +2,31 @@ module RelatonGb
2
2
  # GB standard type.
3
3
  class GbStandardType
4
4
  # @return [String]
5
- attr_reader :scope
6
-
7
- # @return [String]
8
- attr_reader :prefix
9
-
10
- # @return [String]
11
- attr_reader :mandate
5
+ attr_reader :scope, :prefix, :mandate, :topic
12
6
 
13
7
  # @param scope [String]
14
8
  # @param prefix [String]
15
9
  # @param mandate [String]
16
- def initialize(scope:, prefix:, mandate:)
10
+ # @param topic [String]
11
+ def initialize(scope:, prefix:, mandate:, topic:)
17
12
  @scope = scope
18
13
  @prefix = prefix
19
14
  @mandate = mandate
15
+ @topic = topic
20
16
  end
21
17
 
22
18
  def to_xml(builder)
23
19
  builder.gbtype do
24
- builder.gbscope @scope
25
- builder.gbprefix @prefix
26
- builder.gbmandate @mandate
20
+ builder.gbscope scope
21
+ builder.gbprefix prefix
22
+ builder.gbmandate mandate
23
+ builder.gbtopic topic
27
24
  end
28
25
  end
29
26
 
30
27
  # @return [Hash]
31
28
  def to_hash
32
- { "scope" => scope, "prefix" => prefix, "mandate" => mandate }
29
+ { "scope" => scope, "prefix" => prefix, "mandate" => mandate, "topic" => topic }
33
30
  end
34
31
  end
35
32
  end
@@ -31,5 +31,11 @@ module RelatonGb
31
31
  item_hash = ::RelatonGb::HashConverter.hash_to_bib(hash)
32
32
  ::RelatonGb::GbBibliographicItem.new item_hash
33
33
  end
34
+
35
+ # Returns hash of XML grammar
36
+ # @return [String]
37
+ def grammar_hash
38
+ @grammar_hash ||= ::RelatonGb.grammar_hash
39
+ end
34
40
  end
35
41
  end
@@ -110,7 +110,7 @@ module RelatonGb
110
110
  def get_gbtype(doc, ref)
111
111
  # ref = get_ref(doc)
112
112
  { scope: get_scope(doc), prefix: get_prefix(ref)["prefix"],
113
- mandate: get_mandate(ref) }
113
+ mandate: get_mandate(ref), topic: "other" }
114
114
  end
115
115
 
116
116
  # @param doc [Nokogiri::HTML::Document]
@@ -97,7 +97,7 @@ module RelatonGb
97
97
  end
98
98
 
99
99
  def gbtype
100
- { scope: "social-group", prefix: "T", mandate: "mandatory" }
100
+ { scope: "social-group", prefix: "T", mandate: "mandatory", topic: "other" }
101
101
  end
102
102
 
103
103
  # def get_group_code(ref)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RelatonGb
4
- VERSION = "0.6.8"
4
+ VERSION = "0.7.0"
5
5
  end
@@ -42,6 +42,7 @@ module RelatonGb
42
42
  scope: gbtype&.at("gbscope")&.text,
43
43
  prefix: gbtype&.at("gbprefix")&.text,
44
44
  mandate: gbtype&.at("gbmandate")&.text,
45
+ topic: gbtype&.at("gbtopic")&.text,
45
46
  }
46
47
  end
47
48
  end
data/relaton_gb.gemspec CHANGED
@@ -31,11 +31,12 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "rake", "~> 10.0"
32
32
  spec.add_development_dependency "rspec", "~> 3.0"
33
33
  spec.add_development_dependency "ruby-debug-ide"
34
+ spec.add_development_dependency "ruby-jing"
34
35
  spec.add_development_dependency "simplecov"
35
36
  spec.add_development_dependency "vcr"
36
37
  spec.add_development_dependency "webmock"
37
38
 
38
39
  spec.add_dependency "cnccs", "~> 0.1.1"
39
40
  spec.add_dependency "gb-agencies", "~> 0.0.1"
40
- spec.add_dependency "relaton-iso-bib", "~> 0.3.0"
41
+ spec.add_dependency "relaton-iso-bib", "~> 0.4.0"
41
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-gb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.7.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: 2019-12-02 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: ruby-jing
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +198,14 @@ dependencies:
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: 0.3.0
201
+ version: 0.4.0
188
202
  type: :runtime
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: 0.3.0
208
+ version: 0.4.0
195
209
  description: 'RelatonGb: retrieve Chinese GB Standards for bibliographic use using
196
210
  the BibliographicItem model.'
197
211
  email:
@@ -214,6 +228,12 @@ files:
214
228
  - Rakefile
215
229
  - bin/console
216
230
  - bin/setup
231
+ - grammars/basicdoc.rng
232
+ - grammars/biblio.rng
233
+ - grammars/gbstandard.rng
234
+ - grammars/isodoc.rng
235
+ - grammars/isostandard.rng
236
+ - grammars/reqt.rng
217
237
  - lib/relaton_gb.rb
218
238
  - lib/relaton_gb/ccs.rb
219
239
  - lib/relaton_gb/gb_bibliographic_item.rb