Skip to content

Commit

Permalink
Fixes for book chapters, and commas.
Browse files Browse the repository at this point in the history
  • Loading branch information
bertrama committed Jun 13, 2024
1 parent 9ab79e6 commit c6ad99b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
6 changes: 5 additions & 1 deletion config/fields.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4156,8 +4156,12 @@
metadata:
name: Published in
type: formatted_article_published
pub_title_field: jtitle
pub_title_fields:
- jtitle
- btitle
fields:
btitle:
field: btitle
jtitle:
field: jtitle
volume:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ module Config
class FormattedArticlePublishedField < Field
type 'formatted_article_published'

attr_reader :fields, :pub_title_field, :volume_field, :issue_field, :ispartof_field, :pages_field
attr_reader :fields, :pub_title_fields, :volume_field, :issue_field, :ispartof_field, :pages_field

def initialize_from_instance(i)
super
@fields = i.fields
@pub_title_field = i.pub_title_field
@pub_title_fields = i.pub_title_fields
@volume_field = i.volume_field
@issue_field = i.issue_field
@ispartof_field = i.ispartof_field
Expand All @@ -18,7 +18,7 @@ def initialize_from_instance(i)

def initialize_from_hash(args, config)
super
@pub_title_field = args['pub_title_field'] || 'publication_title'
@pub_title_fields = args['pub_title_fields'] || ['publication_title']
@volume_field = args['volume_field'] || 'volume'
@issue_field = args['issue_field'] || 'issue'
@ispartof_field = args['ispartof_field'] || 'ispartof'
Expand All @@ -34,7 +34,9 @@ def initialize_from_hash(args, config)
end

def value(data, request = nil)
pub_title = [@fields[pub_title_field].value(data)].flatten.first
pub_title = pub_title_fields.map do |pub_title_field|
@fields[pub_title_field].value(data)
end.flatten.compact.first
volume = [@fields[volume_field].value(data)].flatten.first
issue = [@fields[issue_field].value(data)].flatten.first
ispartof = [@fields[ispartof_field].value(data)].flatten.first
Expand All @@ -51,13 +53,13 @@ def value(data, request = nil)
pages_label = pages.include?('-') ? 'pp.' : 'p.'
end

ret = String.new('')
ret << pub_title if pub_title
ret << ' Vol. ' + volume if volume
ret << ', Issue ' + issue if issue
ret << ", #{pages_label} #{pages}" if pages
ret = []
ret << pub_title if pub_title && (volume || issue || pages)
ret << "Vol. #{volume}" if volume
ret << "Issue #{issue}" if issue
ret << "#{pages_label} #{pages}" if pages
ret << ispartof if ret.empty? && ispartof
ret
ret.join(", ")
end
end
end
Expand Down

0 comments on commit c6ad99b

Please sign in to comment.