cff 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3c050f5d10f432c5f693e34a3e357d6f6cb6354a34f1437e2d002d31260a668
4
- data.tar.gz: 77a28d90a783419770aa706b033fc16895aa33762b1bf1e8d63f283e949b52b8
3
+ metadata.gz: 734e15765062e2b7f6a00f25f89edec38c560be9c06605066dc8999ba6d46128
4
+ data.tar.gz: 3ad6ed8ff24203d521b356c2f5b73c304e501522f8b43b3aa7b7b890c54d59d9
5
5
  SHA512:
6
- metadata.gz: 20af71ee0317e192bccd3cd2a4e8e2be39c8bab84b9c4c74571968b80d519d292b2b7f2564aa5786fe995fddedfa90edea76058e400bd0971b1d805e0256b9ab
7
- data.tar.gz: e38acde51d42a67b37c197c9d03e55fbe2a55ec5f3ee2e2632c1842a6292035831ac55acfd8ded8812bda8dc06d96578b2dcf28870f29f1d6fc0c855df758ba8
6
+ metadata.gz: c873384b8a5dc7daea84ca0f184c457da397c4e21c9fbd64438328343bdd31481bfd7e4c48193fe074e8863961268f0adb72748e0aa73578cfffa80868366f56
7
+ data.tar.gz: 1a9f094a9d8f7739b6a118fb1b789f54eb58e961eab94fb864a604d3736e9dbf0567031372debba753f68fe4d59f43c348687bb6ab1cf747aba045d7abe267ac
data/CHANGES.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changes log for the Ruby CFF Library
2
2
 
3
+ ## 1.0.1
4
+
5
+ * Handle missing family or given names for authors.
6
+ * Handle authors with only an alias for a name.
7
+ * Add install instructions to the README.
8
+ * Add a note to the README re output format changes.
9
+
3
10
  ## 1.0.0
4
11
 
5
12
  * Add `type` to top-level CFF model.
data/CITATION.cff CHANGED
@@ -1,4 +1,4 @@
1
- # This CITATION.cff file was created by ruby-cff (v 1.0.0).
1
+ # This CITATION.cff file was created by ruby-cff (v 1.0.1).
2
2
  # Gem: https://rubygems.org/gems/cff
3
3
  # CFF: https://citation-file-format.github.io/
4
4
 
@@ -21,9 +21,9 @@ keywords:
21
21
  - metadata
22
22
  - citation file format
23
23
  - CFF
24
- version: 1.0.0
24
+ version: 1.0.1
25
25
  doi: 10.5281/zenodo.1184077
26
- date-released: 2022-10-09
26
+ date-released: 2022-11-05
27
27
  license: Apache-2.0
28
28
  repository-artifact: https://rubygems.org/gems/cff
29
29
  repository-code: https://github.com/citation-file-format/ruby-cff
data/README.md CHANGED
@@ -5,7 +5,7 @@ A Ruby library for creating, editing, validating and converting CITATION.cff fil
5
5
 
6
6
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1184077.svg)](https://doi.org/10.5281/zenodo.1184077)
7
7
  [![Gem Version](https://badge.fury.io/rb/cff.svg)](https://badge.fury.io/rb/cff)
8
- [![Tests](https://github.com/citation-file-format/ruby-cff/actions/workflows/ruby.yml/badge.svg)](https://github.com/citation-file-format/ruby-cff/actions/workflows/ruby.yml)
8
+ [![Tests](https://github.com/citation-file-format/ruby-cff/actions/workflows/tests.yml/badge.svg)](https://github.com/citation-file-format/ruby-cff/actions/workflows/ruby.yml)
9
9
  [![Linter](https://github.com/citation-file-format/ruby-cff/actions/workflows/lint.yml/badge.svg)](https://github.com/citation-file-format/ruby-cff/actions/workflows/lint.yml)
10
10
  [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
11
11
  [![Maintainability](https://api.codeclimate.com/v1/badges/6bb4c661bfb4971260ba/maintainability)](https://codeclimate.com/github/citation-file-format/ruby-cff/maintainability)
@@ -21,6 +21,23 @@ See the [CITATION.cff documentation](https://citation-file-format.github.io/) fo
21
21
 
22
22
  See the [full API documentation](https://citation-file-format.github.io/ruby-cff/) for more details about Ruby CFF.
23
23
 
24
+ ### Installation
25
+
26
+ Add this line to your application's Gemfile:
27
+ ```ruby
28
+ gem 'cff'
29
+ ```
30
+
31
+ And then execute:
32
+ ```shell
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself with:
37
+ ```shell
38
+ $ gem install cff
39
+ ```
40
+
24
41
  ### Quick start
25
42
 
26
43
  You can quickly build and save a CFF index like this:
@@ -192,6 +209,8 @@ Due to the different expectations of different publication venues, the citation
192
209
 
193
210
  From version 1.0.0 onwards, the principles of [semantic versioning](https://semver.org/) are applied when numbering releases with new features or breaking changes.
194
211
 
212
+ Minor or stylistic changes to output formats are not considered "breaking" for the purposes of library versioning.
213
+
195
214
  ### Developing Ruby CFF
196
215
 
197
216
  Please see our [Code of Conduct](https://github.com/citation-file-format/ruby-cff/blob/main/CODE_OF_CONDUCT.md) and our [contributor guidelines](https://github.com/citation-file-format/ruby-cff/blob/main/CONTRIBUTING.md).
@@ -136,9 +136,25 @@ module CFF
136
136
 
137
137
  particle =
138
138
  author.name_particle.empty? ? '' : "#{author.name_particle} "
139
- suffix = author.name_suffix.empty? ? '.' : "., #{author.name_suffix}"
139
+ suffix = author.name_suffix.empty? ? '' : ", #{author.name_suffix}"
140
140
 
141
- "#{particle}#{author.family_names}, #{initials(author.given_names)}#{suffix}"
141
+ "#{particle}#{format_name(author)}#{suffix}"
142
+ end
143
+
144
+ # Format a name using an alias if needs be.
145
+ # https://blog.apastyle.org/apastyle/2012/02/how-to-cite-pseudonyms.html
146
+ def self.format_name(author)
147
+ if author.family_names.empty?
148
+ if author.given_names.empty?
149
+ author.alias
150
+ else
151
+ author.given_names
152
+ end
153
+ elsif author.given_names.empty?
154
+ author.family_names
155
+ else
156
+ "#{author.family_names}, #{initials(author.given_names)}."
157
+ end
142
158
  end
143
159
  end
144
160
  end
@@ -176,6 +176,7 @@ module CFF
176
176
 
177
177
  def self.format_actor(author)
178
178
  return "{#{author.name}}" if author.is_a?(Entity)
179
+ return author.alias if author.family_names.empty? && author.given_names.empty?
179
180
 
180
181
  particle =
181
182
  author.name_particle.empty? ? '' : "#{author.name_particle} "
data/lib/cff/util.rb CHANGED
@@ -40,9 +40,11 @@ module CFF
40
40
  end
41
41
  end
42
42
 
43
+ # Currently need to make some sort of guess as to whether an actor
44
+ # is a Person or Entity. This isn't perfect, but works 99.99% I think.
43
45
  def build_actor_collection!(source)
44
46
  source.map! do |s|
45
- s.has_key?('given-names') ? Person.new(s) : Entity.new(s)
47
+ s.has_key?('name') ? Entity.new(s) : Person.new(s)
46
48
  end
47
49
  end
48
50
 
data/lib/cff/version.rb CHANGED
@@ -17,7 +17,7 @@
17
17
  ##
18
18
  module CFF
19
19
  # :nodoc:
20
- VERSION = '1.0.0'
20
+ VERSION = '1.0.1'
21
21
  DEFAULT_SPEC_VERSION = '1.2.0'
22
22
  MIN_VALIDATABLE_VERSION = '1.2.0'
23
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cff
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Haines
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-10-09 00:00:00.000000000 Z
12
+ date: 2022-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_schema
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
242
  - !ruby/object:Gem::Version
243
243
  version: '0'
244
244
  requirements: []
245
- rubygems_version: 3.1.6
245
+ rubygems_version: 3.3.23
246
246
  signing_key:
247
247
  specification_version: 4
248
248
  summary: A Ruby library for manipulating CITATION.cff files.