class DocumentDoctrineShowComponent < BaseComponent attr_reader :current_user, :doctrine, :opts include AnnotationSearch def initialize(current_user:, doctrine:, opts: {}) @doctrine = doctrine @current_user = current_user @opts = opts end delegate :id, to: :doctrine delegate :headnote, to: :doctrine delegate :subject_ids, to: :doctrine delegate :content, to: :doctrine delegate :subjects, to: :doctrine def annotation_form_url doctrine_annotations_path(doctrine_id: id,) end def document_title(annotation) return annotation.document.short_title if annotation.document.short_title.present? annotation.document.title end def jurisprudence Cdao::Jurisprudence.find(opts[:jurisprudence_id]) end def date_or_year(annotation) return annotation.document.docdate.to_date.strftime("%B %d, %Y") if annotation.document.docdate.present? annotation.document.year end def clean_phil_rep(annotation) return if annotation.phil_rep.blank? annotation.phil_rep.gsub(/(PhilRep|Phil)\.?,?/i, "Phil") end def content_diplay_text(annotation) return annotation.content.gsub("
", "").gsub("
", "") if annotation.content.include?("Phil") contents = annotation.content.gsub("
", "").gsub("
", "").split(" citing ") contents[0] = [contents[0], clean_phil_rep(annotation)].reject(&:blank?).join(", ") contents.join(" citing ") end def annotations search = annotation_search(doctrine_id: id) search.results end end