Module: Hyrax::CitationsBehaviors::NameBehavior
- Includes:
- CommonBehavior
- Included in:
- Hyrax::CitationsBehavior, Formatters::BaseFormatter
- Defined in:
- app/helpers/hyrax/citations_behaviors/name_behavior.rb
Instance Method Summary collapse
- #abbreviate_name(name) ⇒ Object
-
#all_authors(work, &block) ⇒ Object
return all unique authors of a work or nil if none.
-
#author_list(work) ⇒ Object
return all unique authors with end punctuation removed.
- #given_name_first(name) ⇒ Object
- #surname_first(name) ⇒ Object
Methods included from CommonBehavior
#clean_end_punctuation, #persistent_url
Instance Method Details
#abbreviate_name(name) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/helpers/hyrax/citations_behaviors/name_behavior.rb', line 37 def abbreviate_name(name) abbreviated_name = '' name = name.join('') if name.is_a? Array # make sure we handle "Cher" correctly return name unless name.include?(' ') || name.include?(',') name = surname_first(name) name_segments = name.split(/,\s*/) abbreviated_name << name_segments.first abbreviated_name << ", #{name_segments.last.first}" if name_segments[1] abbreviated_name << "." end |
#all_authors(work, &block) ⇒ Object
return all unique authors of a work or nil if none
11 12 13 14 |
# File 'app/helpers/hyrax/citations_behaviors/name_behavior.rb', line 11 def (work, &block) = work.creator.uniq.compact block_given? ? .map(&block) : end |
#author_list(work) ⇒ Object
return all unique authors with end punctuation removed
6 7 8 |
# File 'app/helpers/hyrax/citations_behaviors/name_behavior.rb', line 6 def (work) (work) { || clean_end_punctuation(CGI.escapeHTML()) } end |
#given_name_first(name) ⇒ Object
16 17 18 19 20 21 |
# File 'app/helpers/hyrax/citations_behaviors/name_behavior.rb', line 16 def given_name_first(name) name = clean_end_punctuation(name) return name unless name =~ /,/ temp_name = name.split(/,\s*/) temp_name.last + " " + temp_name.first end |
#surname_first(name) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/helpers/hyrax/citations_behaviors/name_behavior.rb', line 23 def surname_first(name) name = name.join('') if name.is_a? Array # make sure we handle "Cher" correctly return name if name.include?(',') name_segments = name.split(' ') given_name = name_segments.first surnames = name_segments[1..-1] if surnames "#{surnames.join(' ')}, #{given_name}" else given_name end end |