Sha256: 62c9ee022d22e397b6407f6ebdf9cd41af0d13ced2ce4a304cebc8e7b8612235

Contents?: true

Size: 1.05 KB

Versions: 18

Compression:

Stored size: 1.05 KB

Contents

#
# An Item is a  member of a Collection -- i.e., a "work" -- the principal describable resource.
#
# Examples: photograph, book, article, sound recording, video, etc.
#
class Item < Ddr::Models::Base

  include Ddr::Models::HasChildren
  include Ddr::Models::HasStructMetadata

  has_many :children, property: :is_part_of, class_name: 'Component'
  belongs_to :parent, property: :is_member_of_collection, class_name: 'Collection'

  alias_method :components, :children
  alias_method :component_ids, :child_ids

  alias_method :parts, :children
  alias_method :part_ids, :child_ids

  alias_method :collection, :parent
  alias_method :collection_id, :parent_id
  alias_method :collection=, :parent=

  def publishable?
    parent.present? && parent.published?
  end

  def children_having_extracted_text
    item = self
    Ddr::Index::Query.new do
      is_part_of item
      where attached_files_having_content: "extractedText"
      fields :id, :extracted_text
    end
  end

  def all_text
    children_having_extracted_text.docs.map(&:extracted_text).flatten
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
ddr-models-2.6.2 app/models/item.rb
ddr-models-2.6.1 app/models/item.rb
ddr-models-2.6.0 app/models/item.rb
ddr-models-2.6.0.rc4 app/models/item.rb
ddr-models-2.6.0.rc3 app/models/item.rb
ddr-models-2.6.0.rc2 app/models/item.rb
ddr-models-2.6.0.rc1 app/models/item.rb
ddr-models-2.5.3 app/models/item.rb
ddr-models-2.5.2 app/models/item.rb
ddr-models-2.5.1 app/models/item.rb
ddr-models-2.5.0 app/models/item.rb
ddr-models-2.5.0.rc1 app/models/item.rb
ddr-models-2.4.16 app/models/item.rb
ddr-models-2.4.15 app/models/item.rb
ddr-models-2.4.14 app/models/item.rb
ddr-models-2.4.13 app/models/item.rb
ddr-models-2.4.12 app/models/item.rb
ddr-models-2.4.11 app/models/item.rb