iso-bib-item 0.1.5 → 0.1.6

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
- SHA1:
3
- metadata.gz: 26c9b1fc49d80b621d0f5c4ba81effcd2f689b4d
4
- data.tar.gz: 80dc767d218051b8b222fd3e306ec34a02fd9304
2
+ SHA256:
3
+ metadata.gz: 186fc45016ad7f72189281554e2fe4a195145ad7765e8718565a4b8fe4d70dfb
4
+ data.tar.gz: 1416aee5aa32dd0fc815f0055e30c3cccb6690744fa212dfe6bc2587e797adc0
5
5
  SHA512:
6
- metadata.gz: 61331746a10bc3ec3bf180f6ff2f64989e906cb823312843df3e5f9cddc5e2baa5a698c0c75b66e008e4cca780623126b10fc29a1ce355106e9e157f60ae6c93
7
- data.tar.gz: dd9fca7f9cdd711873f3bd1cb6f8ca46414650a82f7387fc1d681f1f4178af3ef0b3ec675cacc9aac9e89c8eec6ba605be2f4233b153b455cc08c4532b325772
6
+ metadata.gz: 186f877bb88a117b1e1cca056c00cdd4bddfd3727e2de81a461d228298306e962b9b726fd16699c9a7c02a2bd42841a2330ce382c78088dec16b7a80747cd5df
7
+ data.tar.gz: 6be1a5e689c6039f93e394449430d0eb678adc295c45488c25df87278f22e5e62fa753481d80b0cea29926d0a8139b6c33ad05e2274a9d2f10afe979f3ac0518
data/Gemfile.lock CHANGED
@@ -1,22 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- iso-bib-item (0.1.5)
4
+ iso-bib-item (0.1.6)
5
+ duplicate
5
6
  isoics (~> 0.1.6)
6
7
  nokogiri
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- byebug (10.0.0)
12
+ byebug (10.0.2)
12
13
  coderay (1.1.2)
13
14
  diff-lcs (1.3)
14
- docile (1.3.0)
15
+ docile (1.3.1)
16
+ duplicate (1.1.1)
15
17
  isoics (0.1.6)
16
18
  json (2.1.0)
17
19
  method_source (0.9.0)
18
20
  mini_portile2 (2.3.0)
19
- nokogiri (1.8.2)
21
+ nokogiri (1.8.3)
20
22
  mini_portile2 (~> 2.3.0)
21
23
  pry (0.11.3)
22
24
  coderay (~> 1.1.0)
@@ -56,4 +58,4 @@ DEPENDENCIES
56
58
  simplecov
57
59
 
58
60
  BUNDLED WITH
59
- 1.16.1
61
+ 1.16.2
data/README.adoc CHANGED
@@ -1,5 +1,9 @@
1
1
  = IsoBibItem
2
2
 
3
+ image:https://img.shields.io/gem/v/iso-bib-item.svg["Gem Version", link="https://rubygems.org/gems/iso-bib-item"]
4
+ image:https://img.shields.io/travis/riboseinc/iso-bib-item/master.svg["Build Status", link="https://travis-ci.org/riboseinc/iso-bib-item"]
5
+ image:https://codeclimate.com/github/riboseinc/iso-bib-item/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/riboseinc/iso-bib-item"]
6
+
3
7
  IsoBib is a Ruby gem that implements the https://github.com/riboseinc/isodoc-models#iso-bibliographic-item[IsoBibliographicItem model].
4
8
 
5
9
  == Installation
data/iso-bib-item.gemspec CHANGED
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_dependency 'isoics', '~> 0.1.6'
32
32
  spec.add_dependency 'nokogiri'
33
+ spec.add_dependency 'duplicate'
33
34
  end
@@ -67,18 +67,23 @@ module IsoBibItem
67
67
 
68
68
  # @param type [String]
69
69
  # @param identifier [String]
70
- def initialize(type:, identifier:, url:, bib_locality: [])
70
+ def initialize(type:, identifier:, url:, bib_locality: [], bibitem: nil)
71
71
  @type = type
72
72
  @identifier = identifier
73
73
  @url = url
74
74
  @bib_locality = bib_locality
75
+ @bibitem = bibitem
75
76
  end
76
77
 
77
78
  def to_xml(builder)
78
79
  builder.relation(type: type) do
79
- builder.bibitem do
80
- builder.formattedref identifier
81
- builder.docidentifier identifier
80
+ if @bibitem.nil?
81
+ builder.bibitem do
82
+ builder.formattedref identifier
83
+ builder.docidentifier identifier
84
+ end
85
+ else
86
+ @bibitem.to_xml(builder, {})
82
87
  end
83
88
  # builder.url url
84
89
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'nokogiri'
4
4
  require 'isoics'
5
+ require 'duplicate'
5
6
  require 'iso_bib_item/bibliographic_item'
6
7
  require 'iso_bib_item/iso_document_status'
7
8
  require 'iso_bib_item/iso_localized_title'
@@ -34,6 +35,10 @@ module IsoBibItem
34
35
  @part_number = part_number
35
36
  end
36
37
 
38
+ def remove_part
39
+ @part_number = nil
40
+ end
41
+
37
42
  def to_xml(builder)
38
43
  builder.docidentifier(project_number + '-' + part_number)
39
44
  end
@@ -127,6 +132,29 @@ module IsoBibItem
127
132
  @source = args[:source].map { |s| TypedUri.new(s) }
128
133
  end
129
134
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
135
+
136
+ # convert ISO nnn-1 reference into an All Parts reference:
137
+ # remove title part components and abstract
138
+ # TODO: make nnn-1 partOf relation of the redacted document
139
+ def to_all_parts
140
+ me = Duplicate.duplicate(self)
141
+ @relations << DocumentRelation.new(type: "partOf", identifier: nil, url: nil, bibitem: me)
142
+ @title.each { |t| t.remove_part }
143
+ @abstract = []
144
+ @docidentifier.remove_part
145
+ @allParts = true
146
+ end
147
+
148
+ # convert ISO:yyyy reference to reference to most recent
149
+ # instance of reference, removing date-specific infomration:
150
+ # date of publication, abstracts. Make dated reference Instance relation
151
+ # of the redacated document
152
+ def to_most_recent_reference
153
+ me = Duplicate.duplicate(self)
154
+ @relations << DocumentRelation.new(type: "instance", identifier: nil, url: nil, bibitem: me)
155
+ @abstract = []
156
+ @dates = []
157
+ end
130
158
 
131
159
  # @param lang [String] language code Iso639
132
160
  # @return [IsoBibItem::IsoLocalizedTitle]
@@ -208,6 +236,7 @@ module IsoBibItem
208
236
  builder.note("ISO DATE: #{opts[:note]}", format: 'text/plain')
209
237
  end
210
238
  ics.each { |i| i.to_xml builder }
239
+ builder.allParts "true" if @allParts
211
240
  yield(builder) if block_given?
212
241
  end
213
242
  end
@@ -33,6 +33,10 @@ module IsoBibItem
33
33
  # "[ -- ]" # title cannot be nil
34
34
  end
35
35
 
36
+ def remove_part
37
+ @title_part = nil
38
+ end
39
+
36
40
  # @return [String]
37
41
  def to_s
38
42
  ret = @title_main
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module IsoBibItem
4
- VERSION = '0.1.5'.freeze
4
+ VERSION = '0.1.6'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iso-bib-item
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
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-06-10 00:00:00.000000000 Z
11
+ date: 2018-06-18 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: duplicate
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: 'IsoBibItem: Ruby ISOXMLDOC impementation.'
112
126
  email:
113
127
  - open.source@ribose.com
@@ -163,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
177
  version: '0'
164
178
  requirements: []
165
179
  rubyforge_project:
166
- rubygems_version: 2.6.12
180
+ rubygems_version: 2.7.6
167
181
  signing_key:
168
182
  specification_version: 4
169
183
  summary: 'IsoBibItem: Ruby ISOXMLDOC impementation.'