Sha256: c3bef86e42de3ca7120be15a299c52728e1411375eda65958e6494d389d2e7f0
Contents?: true
Size: 1.93 KB
Versions: 12
Compression:
Stored size: 1.93 KB
Contents
module Hyrax module CitationsBehaviors module Formatters class ChicagoFormatter < BaseFormatter include Hyrax::CitationsBehaviors::PublicationBehavior include Hyrax::CitationsBehaviors::TitleBehavior # rubocop:disable Metrics/MethodLength def format(work) text = "" # setup formatted author list authors_list = all_authors(work) text << format_authors(authors_list) if text.present? text = "<span class=\"citation-author\">#{text}</span>" end # Get Pub Date pub_date = setup_pub_date(work) text << " #{pub_date}." unless pub_date.nil? text << format_title(work.to_s) pub_info = setup_pub_info(work, false) text << " #{pub_info}." if pub_info.present? text.html_safe end def format_authors(authors_list = []) return '' if authors_list.blank? text = '' text << surname_first(authors_list.first) if authors_list.first authors_list[1..6].each_with_index do |author, index| text << if index + 2 == authors_list.length # we've skipped the first author ", and #{given_name_first(author)}." else ", #{given_name_first(author)}" end end text << " et al." if authors_list.length > 7 # if for some reason the first author ended with a comma text.gsub!(',,', ',') text << "." unless text =~ /\.$/ text end # rubocop:enable Metrics/MethodLength def format_date(pub_date); end def format_title(title_info) return "" if title_info.blank? title_text = chicago_citation_title(title_info) title_text << '.' unless title_text =~ /\.$/ " <i class=\"citation-title\">#{title_text}</i>" end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems