relaton-bib 0.4.1 → 0.5.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: 9c27a97f0f09c83664c86fe264786b1fc64addd556b7240f5356838c03e90954
4
- data.tar.gz: ed6828578dca4ee4a26cf989c6d515f840fd58b882c1ffa0bd698db4f30c34a3
3
+ metadata.gz: 0ce6cabec8231c8496286a8b792efc2842abbfceee27f8ee27ed9c7759574416
4
+ data.tar.gz: efdd0740c622358066675c5e37d278c1b66e43b4cf0420bcd1afafb708140c15
5
5
  SHA512:
6
- metadata.gz: 063c6d9de95021b00c3a13caef5beb4327954c036d21d9f66cea11b9bce3fefcb8473a078f28bed91adb6010261176611cefc3053e64b9267acda605a7ac2e12
7
- data.tar.gz: 4920a1d8cc7481730dc1524791a2b1dacc357fc3348fb6cc37fd8d09472b6586174c0fef716e5cec977259ba54e400b166f4f62540b4ad4b17cf877884049db2
6
+ metadata.gz: bc52f3fb46b5491c7e83a1fd71602e8c9af0123823ea88faacf5d6a5f6f77dfd17bdbbcc5ec19f9ea878697961cbd55d4ab488595da7d659688e8958b50949fd
7
+ data.tar.gz: 7d3154b81eb5c7cc465b9257cc17c596ac2c71453b371b5f9767194bcbbe1c6c495247cb2a1c389fd40830e6fa7cc57f6fd27425a21b07b447ff99cf3121be88
data/.gitignore CHANGED
@@ -10,4 +10,5 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
- .rubocop-https---raw-githubusercontent-com-riboseinc-oss-guides-master-ci-rubocop-yml
13
+ .rubocop-https---raw-githubusercontent-com-riboseinc-oss-guides-master-ci-rubocop-yml
14
+ Gemfile.lock
data/Gemfile.lock CHANGED
@@ -1,8 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- relaton-bib (0.4.1)
4
+ relaton-bib (0.5.0)
5
5
  addressable
6
+ bibtex-ruby
7
+ iso639
6
8
  nokogiri
7
9
 
8
10
  GEM
@@ -10,39 +12,43 @@ GEM
10
12
  specs:
11
13
  addressable (2.7.0)
12
14
  public_suffix (>= 2.0.2, < 5.0)
15
+ bibtex-ruby (5.0.1)
16
+ latex-decode (~> 0.0)
13
17
  byebug (11.0.1)
14
- debase (0.2.3)
18
+ debase (0.2.4.1)
15
19
  debase-ruby_core_source (>= 0.10.2)
16
- debase-ruby_core_source (0.10.5)
20
+ debase-ruby_core_source (0.10.7)
17
21
  diff-lcs (1.3)
18
22
  docile (1.3.2)
19
23
  equivalent-xml (0.6.0)
20
24
  nokogiri (>= 1.4.3)
21
- json (2.2.0)
25
+ iso639 (1.3.2)
26
+ json (2.3.0)
27
+ latex-decode (0.3.1)
22
28
  mini_portile2 (2.4.0)
23
- nokogiri (1.10.3)
29
+ nokogiri (1.10.7)
24
30
  mini_portile2 (~> 2.4.0)
25
31
  optout (0.0.2)
26
- public_suffix (4.0.1)
32
+ public_suffix (4.0.3)
27
33
  rake (10.5.0)
28
- rspec (3.8.0)
29
- rspec-core (~> 3.8.0)
30
- rspec-expectations (~> 3.8.0)
31
- rspec-mocks (~> 3.8.0)
32
- rspec-core (3.8.2)
33
- rspec-support (~> 3.8.0)
34
- rspec-expectations (3.8.4)
34
+ rspec (3.9.0)
35
+ rspec-core (~> 3.9.0)
36
+ rspec-expectations (~> 3.9.0)
37
+ rspec-mocks (~> 3.9.0)
38
+ rspec-core (3.9.0)
39
+ rspec-support (~> 3.9.0)
40
+ rspec-expectations (3.9.0)
35
41
  diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.8.0)
37
- rspec-mocks (3.8.1)
42
+ rspec-support (~> 3.9.0)
43
+ rspec-mocks (3.9.0)
38
44
  diff-lcs (>= 1.2.0, < 2.0)
39
- rspec-support (~> 3.8.0)
40
- rspec-support (3.8.2)
45
+ rspec-support (~> 3.9.0)
46
+ rspec-support (3.9.0)
41
47
  ruby-debug-ide (0.7.0)
42
48
  rake (>= 0.8.1)
43
49
  ruby-jing (0.0.1)
44
50
  optout (>= 0.0.2)
45
- simplecov (0.17.0)
51
+ simplecov (0.17.1)
46
52
  docile (~> 1.1)
47
53
  json (>= 1.8, < 3)
48
54
  simplecov-html (~> 0.10.0)
@@ -52,7 +58,6 @@ PLATFORMS
52
58
  ruby
53
59
 
54
60
  DEPENDENCIES
55
- bundler (~> 2.0)
56
61
  byebug
57
62
  debase
58
63
  equivalent-xml (~> 0.6)
data/README.adoc CHANGED
@@ -1,8 +1,12 @@
1
1
  = RelatonBib
2
2
 
3
3
  image:https://img.shields.io/gem/v/relaton-bib.svg["Gem Version", link="https://rubygems.org/gems/relaton-bib"]
4
- image:https://img.shields.io/travis/metanorma/relaton-bib["Build Status", link="https://travis-ci.com/metanorma/relaton-bib"]
5
- image:https://codeclimate.com/github/metanorma/relaton-bib["Code Climate", link="https://codeclimate.com/github/metanorma/relaton-bib"]
4
+ image:https://github.com/relaton/relaton-bib/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/relaton/relaton-bib/actions?workflow=macos"]
5
+ image:https://github.com/relaton/relaton-bib/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/relaton/relaton-bib/actions?workflow=windows"]
6
+ image:https://github.com/relaton/relaton-bib/workflows/ubuntu/badge.svg["Build Status (Ubuntu)", link="https://github.com/relaton/relaton-bib/actions?workflow=ubuntu"]
7
+ image:https://codeclimate.com/github/relaton/relaton-bib/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/relaton/relaton-bib"]
8
+ image:https://img.shields.io/github/issues-pr-raw/relaton/relaton-bib.svg["Pull Requests", link="https://github.com/relaton/relaton-bib/pulls"]
9
+ image:https://img.shields.io/github/commits-since/relaton/relaton-bib/latest.svg["Commits since latest",link="https://github.com/relaton/relaton-bib/releases"]
6
10
 
7
11
  RlatonBib is a Ruby gem that implements the https://github.com/metanorma/relaton-models#bibliography-uml-models[BibliographicItem model].
8
12
 
@@ -30,62 +34,144 @@ Or install it yourself as:
30
34
  [source,ruby]
31
35
  ----
32
36
  item = RelatonBib::BibliographicItem.new(
33
- id: "ISO/TC211",
34
- fetched: Date.today.to_s,
35
- type: "standard",
37
+ id: "ISOTC211", fetched: Date.today.to_s,
36
38
  title: [
37
39
  { type: "main", content: "Geographic information", language: "en", script: "Latn" },
38
40
  {
39
41
  content: "Information géographique", language: "fr", script: "Latn"
40
42
  },
41
43
  ],
42
- link: [
43
- { type: "src", content: "https://www.iso.org/standard/53798.html" },
44
- { type: "obp",
45
- content: "https://www.iso.org/obp/ui/#!iso:std:53798:en" },
46
- { type: "rss", content: "https://www.iso.org/contents/data/standard"\
47
- "/05/37/53798.detail.rss" }
48
- ],
44
+ type: "standard",
49
45
  docid: [
50
- RelatonBib::DocumentIdentifier.new(id: "TC211", type: "ISO")
46
+ RelatonBib::DocumentIdentifier.new(id: "TC211", type: "ISO"),
47
+ RelatonBib::DocumentIdentifier.new(id: "ISBN", type: "isbn"),
48
+ RelatonBib::DocumentIdentifier.new(id: "LCCN", type: "lccn"),
49
+ RelatonBib::DocumentIdentifier.new(id: "ISSN", type: "issn"),
51
50
  ],
52
51
  docnumber: "123456",
52
+ edition: "1", language: %w[en fr], script: ["Latn"],
53
+ version: RelatonBib::BibliographicItem::Version.new("2019-04-01", ["draft"]),
54
+ biblionote: [
55
+ RelatonBib::BiblioNote.new(content: "note"),
56
+ RelatonBib::BiblioNote.new(content: "An note", type: "annote"),
57
+ RelatonBib::BiblioNote.new(content: "How published", type: "howpublished"),
58
+ RelatonBib::BiblioNote.new(content: "Comment", type: "comment"),
59
+ RelatonBib::BiblioNote.new(content: "Table Of Contents", type: "tableOfContents"),
60
+ ],
61
+ docstatus: RelatonBib::DocumentStatus.new(
62
+ stage: "stage", substage: "substage", iteration: "final",
63
+ ),
53
64
  date: [
54
65
  { type: "issued", on: "2014" },
55
66
  { type: "published", on: "2014-04" },
56
- { type: "accessed", on: "2015-05-20" }
57
- ],
58
- contributor: [
59
- { entity: {
60
- name: "International Organization for Standardization",
61
- url: "www.iso.org", abbreviation: "ISO", subdivision: "division" },
62
- role: [["publisher", ["Publisher role"]]], }
67
+ { type: "accessed", on: "2015-05-20" },
63
68
  ],
64
- edition: "1",
65
- version: RelatonBib::BibliographicItem::Version.new("2019-04-01", ["draft"]),
66
- language: ["en", "fr"],
67
- script: ["Latn"],
68
69
  abstract: [
69
70
  { content: "ISO 19115-1:2014 defines the schema required for ...",
70
71
  language: "en", script: "Latn", format: "text/plain" },
71
72
  { content: "L'ISO 19115-1:2014 définit le schéma requis pour ...",
72
73
  language: "fr", script: "Latn", format: "text/plain" },
73
74
  ],
74
- docstatus: RelatonBib::DocumentStatus.new(
75
- RelatonBib::LocalizedString.new("standard", "en", "Latn")
76
- ),
77
- copyright: { owner: {
78
- name: "International Organization for Standardization",
79
- abbreviation: "ISO", url: "www.iso.org"
75
+ contributor: [
76
+ {
77
+ entity: {
78
+ name: "International Organization for Standardization",
79
+ url: "www.iso.org", abbreviation: "ISO", subdivision: "division",
80
+ },
81
+ role: [{ type: "publisher", description: ["Publisher role"] }],
80
82
  },
81
- from: "2014", to: "2020" },
83
+ {
84
+ entity: RelatonBib::Person.new(
85
+ name: RelatonBib::FullName.new(
86
+ completename: RelatonBib::LocalizedString.new("A. Bierman", "en"),
87
+ ),
88
+ affiliation: [RelatonBib::Affilation.new(
89
+ organization: RelatonBib::Organization.new(
90
+ name: "IETF",
91
+ abbreviation: RelatonBib::LocalizedString.new("IETF"),
92
+ identifier: [RelatonBib::OrgIdentifier.new("uri", "www.ietf.org")],
93
+ )
94
+ )],
95
+ contact: [
96
+ RelatonBib::Address.new(
97
+ street: ["Street"], city: "City", postcode: "123456",
98
+ country: "Country", state: "State"
99
+ ),
100
+ RelatonBib::Contact.new(type: "phone", value: "223322"),
101
+ ]
102
+ ),
103
+ role: [type: "author"],
104
+ },
105
+ RelatonBib::ContributionInfo.new(
106
+ entity: RelatonBib::Organization.new(
107
+ name: "IETF",
108
+ abbreviation: "IETF",
109
+ identifier: [RelatonBib::OrgIdentifier.new("uri", "www.ietf.org")],
110
+ ),
111
+ role: [type: "publisher"],
112
+ ),
113
+ {
114
+ entity: RelatonBib::Person.new(
115
+ name: RelatonBib::FullName.new(
116
+ initial: [RelatonBib::LocalizedString.new("A.", "en")],
117
+ surname: RelatonBib::LocalizedString.new("Bierman", "en"),
118
+ forename: [RelatonBib::LocalizedString.new("Forename", "en")],
119
+ addition: [RelatonBib::LocalizedString.new("Addition", "en")],
120
+ prefix: [RelatonBib::LocalizedString.new("Prefix", "en")],
121
+ ),
122
+ affiliation: [RelatonBib::Affilation.new(
123
+ organization: RelatonBib::Organization.new(name: "IETF", abbreviation: "IETF"),
124
+ description: [RelatonBib::LocalizedString.new("Description", "en")]
125
+ )],
126
+ contact: [
127
+ RelatonBib::Address.new(
128
+ street: ["Street"], city: "City", postcode: "123456",
129
+ country: "Country", state: "State"
130
+ ),
131
+ RelatonBib::Contact.new(type: "phone", value: "223322"),
132
+ ],
133
+ identifier: [RelatonBib::PersonIdentifier.new("uri", "www.person.com")],
134
+ ),
135
+ role: [type: "author"],
136
+ },
137
+ { entity: { name: "Institution" }, role: [type: "sponsor"] }
138
+ ],
139
+ copyright: { owner: {
140
+ name: "International Organization for Standardization",
141
+ abbreviation: "ISO", url: "www.iso.org"
142
+ }, from: "2014", to: "2020" },
143
+ link: [
144
+ { type: "src", content: "https://www.iso.org/standard/53798.html" },
145
+ { type: "obp",
146
+ content: "https://www.iso.org/obp/ui/#!iso:std:53798:en" },
147
+ { type: "rss", content: "https://www.iso.org/contents/data/standard"\
148
+ "/05/37/53798.detail.rss" },
149
+ { type: "doi", content: "http://standrd.org/doi-123" },
150
+ { type: "file", content: "file://path/file" },
151
+ ],
82
152
  relation: [
83
- { type: "updates",
153
+ {
154
+ type: "updates",
84
155
  bibitem: RelatonBib::BibliographicItem.new(
85
156
  formattedref: RelatonBib::FormattedRef.new(content: "ISO 19115:2003"),
86
157
  ),
87
- bib_locality: [RelatonBib::BibItemLocality.new("updates", "Reference form")],
88
- }
158
+ bib_locality: [
159
+ RelatonBib::BibItemLocality.new("section", "Reference from"),
160
+ ],
161
+ },
162
+ {
163
+ type: "updates",
164
+ bibitem: RelatonBib::BibliographicItem.new(
165
+ type: "standard",
166
+ formattedref: RelatonBib::FormattedRef.new(content: "ISO 19115:2003/Cor 1:2006"),
167
+ ),
168
+ },
169
+ {
170
+ type: "partOf",
171
+ bibitem: RelatonBib::BibliographicItem.new(
172
+ title: [RelatonBib::TypedTitleString.new(type: "main", content: "Book title")],
173
+ ),
174
+ },
89
175
  ],
90
176
  series: [
91
177
  RelatonBib::Series.new(
@@ -96,7 +182,7 @@ item = RelatonBib::BibliographicItem.new(
96
182
  ),
97
183
  place: "Serie's place",
98
184
  organization: "Serie's organization",
99
- abbreviation: RelatonBib::LocalizedString.new("ABVR", "en", "Latn"),
185
+ abbreviation: RelatonBib::LocalizedString.new("ABVR"),
100
186
  from: "2009-02-01",
101
187
  to: "2010-12-20",
102
188
  number: "serie1234",
@@ -105,25 +191,37 @@ item = RelatonBib::BibliographicItem.new(
105
191
  RelatonBib::Series.new(
106
192
  type: "alt",
107
193
  formattedref: RelatonBib::FormattedRef.new(
108
- content: "serieref", language: "en", script: "Latn"
194
+ content: "serieref", language: "en", script: "Latn",
109
195
  ),
110
- )
196
+ ),
197
+ RelatonBib::Series.new(
198
+ type: "journal", title: RelatonBib::TypedTitleString.new(content: "Journal"), number: "7"
199
+ ),
200
+ RelatonBib::Series.new(title: RelatonBib::TypedTitleString.new(content: "Series")),
111
201
  ],
112
202
  medium: RelatonBib::Medium.new(
113
- form: "medium form", size: "medium size", scale: "medium scale"
203
+ form: "medium form", size: "medium size", scale: "medium scale",
114
204
  ),
115
- place: ["bib place"],
205
+ place: [
206
+ "bib place",
207
+ RelatonBib::Place.new(name: "Geneva", uri: "geneva.place", region: "Switzelznd")
208
+ ],
116
209
  extent: [
117
- RelatonBib::BibItemLocality.new(
118
- "section", "Reference from", "Reference to"
119
- ),
210
+ RelatonBib::BibItemLocality.new("section", "Reference from", "Reference to"),
211
+ RelatonBib::BibItemLocality.new("chapter", "4"),
212
+ RelatonBib::BibItemLocality.new("page", "10", "20"),
213
+ RelatonBib::BibItemLocality.new("volume", "1"),
120
214
  ],
121
215
  accesslocation: ["accesslocation1", "accesslocation2"],
122
- classification: RelatonBib::Classification.new(type: "type", value: "value"),
216
+ classification: [
217
+ RelatonBib::Classification.new(type: "type", value: "value"),
218
+ RelatonBib::Classification.new(type: "keyword", value: "Keywords"),
219
+ RelatonBib::Classification.new(type: "mendeley", value: "Mendeley Tags"),
220
+ ],
123
221
  validity: RelatonBib::Validity.new(
124
222
  begins: Time.new(2010, 10, 10, 12, 21),
125
223
  ends: Time.new(2011, 2, 3, 18,30),
126
- revision: Time.new(2011, 3, 4, 9, 0)
224
+ revision: Time.new(2011, 3, 4, 9, 0),
127
225
  )
128
226
  )
129
227
  ----
@@ -171,96 +269,13 @@ item.to_xml
171
269
  <fetched>2019-04-30</fetched>
172
270
  <title type=\"main\" language=\"en\" script=\"Latn\">Geographic information</title>
173
271
  <title language=\"fr\" script=\"Latn\">Information géographique</title>
174
- <uri type=\"src\">https://www.iso.org/standard/53798.html</uri>
175
- <uri type=\"obp\">https://www.iso.org/obp/ui/#!iso:std:53798:en</uri>
176
- <uri type=\"rss\">https://www.iso.org/contents/data/standard/05/37/53798.detail.rss</uri>
177
- <docidentifier type=\"ISO\">TC211</docidentifier>
178
- <docnumber>123456</docnumber>
179
- <date type="issued">
180
- <on>2014</on>
181
- </date>
182
- <date type="published">
183
- <on>2014</on>
184
- </date>
185
- <date type="accessed">
186
- <on>2015</on>
187
- </date>
188
- <contributor>
189
- <role type=\"publisher\">
190
- <description>Publisher role</description>
191
- </role>
192
- <organization>
193
- <name>International Organization for Standardization</name>
194
- <subdivision>division</subdivision>
195
- <abbreviation>ISO</abbreviation>
196
- <uri>www.iso.org</uri>
197
- </organization>
198
- </contributor>
199
- <edition>1</edition>
200
- <version>
201
- <revision_date>2019-04-01</revision_date>
202
- <draft>draft</draft>
203
- </version>
204
- <language>en</language>
205
- <language>fr</language>
206
- <script>Latn</script>
207
- <abstract format=\"text/plain\" language=\"en\" script=\"Latn\">ISO 19115-1:2014 defines the schema required for ...</abstract>
208
- <abstract format=\"text/plain\" language=\"fr\" script=\"Latn\">L'ISO 19115-1:2014 définit le schéma requis pour ...</abstract>
209
- <status language=\"en\" script=\"Latn\">standard</status>
210
- <copyright>
211
- <from>2014</from>
212
- <to>2020</to>
213
- <owner>
214
- <organization>
215
- <name>International Organization for Standardization</name>
216
- <abbreviation>ISO</abbreviation>
217
- <uri>www.iso.org</uri>
218
- </organization>
219
- </owner>
220
- </copyright>
221
- <relation type=\"updates\">
222
- <bibitem>
223
- <formattedref>ISO 19115:2003</formattedref>
224
- </bibitem>
225
- <locality type=\"updates\">
226
- <referenceFrom>Reference form</referenceFrom>
227
- </locality>
228
- </relation>
229
- <series type=\"main\">
230
- <title type=\"original\" format=\"text/plain\" language=\"en\" script=\"Latn\">ISO/IEC FDIS 10118-3</title>
231
- <place>Serie's place</place>
232
- <organization>Serie's organization</organization>
233
- <abbreviation language=\"en\" script=\"Latn\">ABVR</abbreviation>
234
- <from>2009-02-01</from>
235
- <to>2010-12-20</to>
236
- <number>serie1234</number>
237
- <partnumber>part5678</partnumber>
238
- </series>
239
- <series type=\"alt\">
240
- <formattedref language=\"en\" script=\"Latn\">serieref</formattedref>
241
- </series>
242
- <medium>
243
- <form>medium form</form>
244
- <size>medium size</size>
245
- <scale>medium scale</scale>
246
- </medium>
247
- <place>bib place</place>
248
- <locality type=\"section\">
249
- <referenceFrom>Reference from</referenceFrom>
250
- <referenceTo>Reference to</referenceTo>
251
- </locality>
252
- <accesslocation>accesslocation1</accesslocation>
253
- <accesslocation>accesslocation2</accesslocation>
254
- <classification type=\"type\">value</classification>
255
- <validity>
256
- <validityBegins>2010-10-10 12:21</validityBegins>
257
- <validityEnds>2011-02-03 18:30</validityEnds>
258
- <validityRevision>2011-03-04 09:00</validityRevision>
259
- </validity>
272
+ ...
260
273
  </bibitem>"
261
274
  ----
275
+
262
276
  Default root element is `bibitem`. With argument `bibdata: true` the XML wrapped with `bibdata` element.
263
277
  [source,ruby]
278
+
264
279
  ----
265
280
  item.to_xml
266
281
  => "<bibitem id=\"ISO/TC211\" type=\"standard\">
@@ -269,20 +284,18 @@ item.to_xml
269
284
  ...
270
285
  </bibdata>"
271
286
  ----
287
+
272
288
  ==== Date format
289
+
273
290
  By default date elements are formatted as year (yyyy). Option `:date_format` allows to output date elements in `:short` (yyyy-mm) and `:full` (yyyy-mm-dd) additiona formats.
274
291
  [surce,ruby]
292
+
275
293
  ----
276
294
  item.to_xml date_format: :short
277
295
  => "<bibitem id=\"ISO/TC211\" type=\"standard\">
278
296
  <fetched>2019-04-30</fetched>
279
297
  <title type=\"main\" language=\"en\" script=\"Latn\">Geographic information</title>
280
- <title language=\"fr\" script=\"Latn\">Information géographique</title>
281
- <uri type=\"src\">https://www.iso.org/standard/53798.html</uri>
282
- <uri type=\"obp\">https://www.iso.org/obp/ui/#!iso:std:53798:en</uri>
283
- <uri type=\"rss\">https://www.iso.org/contents/data/standard/05/37/53798.detail.rss</uri>
284
- <docidentifier type=\"ISO\">TC211</docidentifier>
285
- <docnumber>123456</docnumber>
298
+ ...
286
299
  <date type="issued">
287
300
  <on>2014-01</on>
288
301
  </date>
@@ -308,7 +321,9 @@ item.to_xml date_format: :full
308
321
  </date>
309
322
  ...
310
323
  ----
324
+
311
325
  === Create bibliographic item form YAML
326
+
312
327
  [source,ruby]
313
328
  ----
314
329
  hash = YAML.load_file 'spec/examples/bib_item.yml'
@@ -324,6 +339,40 @@ RelatonBib::BibliographicItem.new bib_hash
324
339
  ...
325
340
  ----
326
341
 
342
+ === Export bibliographic item to Hash
343
+
344
+ [source,ruby]
345
+ ----
346
+ item.to_hash
347
+ => {"id"=>"ISOTC211",
348
+ "title"=>
349
+ [{"type"=>"main", "content"=>"Geographic information", "language"=>"en", "script"=>"Latn", "format"=>"text/plain"},
350
+ {"content"=>"Information géographique", "language"=>"fr", "script"=>"Latn", "format"=>"text/plain"}],
351
+ ...
352
+ ----
353
+
354
+ === Create bibliographic item from BibTeX
355
+
356
+ [source,ruby]
357
+ ----
358
+ RelatonBib::BibtexParser.from_bibtex File.read('spec/examples/bibitem.bib')
359
+ => {"ISOTC211"=>
360
+ #<RelatonBib::BibliographicItem:0x007fedee0a2ab0
361
+ ...
362
+ ----
363
+
364
+ === Export bibliographic item to BibTeX
365
+
366
+ [source,ruby]
367
+ ----
368
+ item.to_bibtex
369
+ @misc{ISOTC211,
370
+ tile = {Geographic information},
371
+ edition = {1},
372
+ author = {Bierman, A. and Bierman, Forename},
373
+ ...
374
+ ----
375
+
327
376
  == Development
328
377
 
329
378
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.