gbbib 0.3.1 → 0.4.0

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: df98d5413f5e22f4990f7b9de814a10372d81e2e1d9758d74a45f57f7a6de187
4
- data.tar.gz: a852fcd19d05560880f57909f19e965d6b730c128392dd496781b87132e2fdaa
3
+ metadata.gz: dd82764d26babcef9ad8c9e5882357bee50aa130f7ea98031a7e9950aed944b0
4
+ data.tar.gz: 63ba319a8bd84f5550301477c74412ab56cd75d94bf1dd0c25621d3c8430cfe1
5
5
  SHA512:
6
- metadata.gz: d673b581c45eaaf5acc515fdcc164884dde2fa5443325627674a2f2010b09d4e33ca6df028d9d16af97322fb9671a35f0b5e783ea4f29932c8d36b41cd03b03c
7
- data.tar.gz: 89c68caece42d678209155e5f687ad06ac6c625b7f27414f36c336d2d66adc738a6c4f3121771777dec2b575659492ad8eb45e96d23d259c954c38c44aba47e7
6
+ metadata.gz: bb519815fe2e2c8a2bee7eaf9f83c34913b7ff84ddfdee5a87c98eb18e461d9d9a7601e6f09568e1ea517fb5b853688fb39b17d9895513515d0eb7a1d7f7fc04
7
+ data.tar.gz: 66bb74992020a9056b25cdedca2029f40322c5d29e6ee3fc7146f980bda2f71c720f60c0f5d39ee10c7f9d3cdb5330254483df3c32bbc4cbbdfbf18d4910e61a
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gbbib (0.3.1)
4
+ gbbib (0.4.0)
5
5
  cnccs (~> 0.1.1)
6
6
  gb-agencies (~> 0.0.1)
7
- iso-bib-item (~> 0.3.0)
7
+ iso-bib-item (~> 0.4.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -17,7 +17,7 @@ GEM
17
17
  equivalent-xml (0.6.0)
18
18
  nokogiri (>= 1.4.3)
19
19
  gb-agencies (0.0.3)
20
- iso-bib-item (0.3.0)
20
+ iso-bib-item (0.4.1)
21
21
  isoics (~> 0.1.6)
22
22
  nokogiri (~> 1.8.4)
23
23
  ruby_deep_clone (~> 0.8.0)
@@ -25,7 +25,7 @@ GEM
25
25
  json (2.1.0)
26
26
  method_source (0.9.0)
27
27
  mini_portile2 (2.3.0)
28
- nokogiri (1.8.4)
28
+ nokogiri (1.8.5)
29
29
  mini_portile2 (~> 2.3.0)
30
30
  pry (0.11.3)
31
31
  coderay (~> 1.1.0)
@@ -40,7 +40,7 @@ GEM
40
40
  rspec-mocks (~> 3.8.0)
41
41
  rspec-core (3.8.0)
42
42
  rspec-support (~> 3.8.0)
43
- rspec-expectations (3.8.1)
43
+ rspec-expectations (3.8.2)
44
44
  diff-lcs (>= 1.2.0, < 2.0)
45
45
  rspec-support (~> 3.8.0)
46
46
  rspec-mocks (3.8.0)
@@ -67,4 +67,4 @@ DEPENDENCIES
67
67
  simplecov
68
68
 
69
69
  BUNDLED WITH
70
- 1.16.2
70
+ 1.16.6
data/gbbib.gemspec CHANGED
@@ -31,6 +31,6 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
32
32
 
33
33
  spec.add_dependency 'cnccs', "~> 0.1.1"
34
- spec.add_dependency 'iso-bib-item', "~> 0.3.0"
34
+ spec.add_dependency 'iso-bib-item', "~> 0.4.1"
35
35
  spec.add_dependency 'gb-agencies', "~> 0.0.1"
36
36
  end
@@ -4,6 +4,7 @@ require 'iso_bib_item'
4
4
  require 'cnccs'
5
5
  require 'gbbib/gb_technical_committee'
6
6
  require 'gbbib/gb_standard_type'
7
+ require 'gbbib/xml_parser'
7
8
 
8
9
  module Gbbib
9
10
  # GB bibliographic item class.
data/lib/gbbib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gbbib
4
- VERSION = '0.3.1'
4
+ VERSION = '0.4.0'
5
5
  end
@@ -0,0 +1,56 @@
1
+ require 'nokogiri'
2
+
3
+ module Gbbib
4
+ class XMLParser < IsoBibItem::XMLParser
5
+ class << self
6
+ def from_xml(xml)
7
+ doc = Nokogiri::XML(xml)
8
+ GbBibliographicItem.new(
9
+ docid: fetch_docid(doc),
10
+ edition: doc.at('/bibitem/edition')&.text,
11
+ language: doc.xpath('/bibitem/language').map(&:text),
12
+ script: doc.xpath('/bibitem/script').map(&:text),
13
+ titles: fetch_titles(doc),
14
+ type: doc.at('bibitem')&.attr(:type),
15
+ docstatus: fetch_status(doc),
16
+ ics: fetch_ics(doc),
17
+ dates: fetch_dates(doc),
18
+ contributors: fetch_contributors(doc),
19
+ workgroup: fetch_workgroup(doc),
20
+ abstract: fetch_abstract(doc),
21
+ copyright: fetch_copyright(doc),
22
+ link: fetch_link(doc),
23
+ relations: fetch_relations(doc),
24
+ committee: fetch_committee(doc),
25
+ ccs: fetch_ccs(doc),
26
+ gbtype: fetch_gbtype(doc)
27
+ )
28
+ end
29
+
30
+ private
31
+
32
+ # Overrade get_id from IsoBibItem::XMLParser
33
+ def get_id(did)
34
+ id = did.text.match(/^(?<project>.*?\d+)(?<hyphen>-)?(?(<hyphen>)(?<year>\d*))/)
35
+ end
36
+
37
+ def fetch_committee(doc)
38
+ committee = doc.at '/bibitem/gbcommittee'
39
+ { type: committee[:type], name: committee.text }
40
+ end
41
+
42
+ def fetch_ccs(doc)
43
+ doc.xpath('/bibitem/ccs/code').map &:text
44
+ end
45
+
46
+ def fetch_gbtype(doc)
47
+ gbtype = doc.at '/bibitem/gbtype'
48
+ {
49
+ scope: gbtype.at('gbscope').text,
50
+ prefix: gbtype.at('gbprefix').text,
51
+ mandate: gbtype.at('gbmandate').text
52
+ }
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "relaton/processor"
2
4
 
3
5
  module Relaton
@@ -14,6 +16,10 @@ module Relaton
14
16
  def get(code, date, opts)
15
17
  ::Gbbib::GbBibliography.get(code, date, opts)
16
18
  end
19
+
20
+ def from_xml(xml)
21
+ ::Gbbib::XMLParser.from_xml xml
22
+ end
17
23
  end
18
24
  end
19
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gbbib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.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: 2018-09-11 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.3.0
117
+ version: 0.4.1
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.3.0
124
+ version: 0.4.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: gb-agencies
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -169,6 +169,7 @@ files:
169
169
  - lib/gbbib/t_scrapper.rb
170
170
  - lib/gbbib/version.rb
171
171
  - lib/gbbib/workers_pool.rb
172
+ - lib/gbbib/xml_parser.rb
172
173
  - lib/gbbib/yaml/prefixes.yaml
173
174
  - lib/relaton/processor.rb
174
175
  homepage: https://github.com/riboseinc/gdbib