Sha256: 661069acbd95264b17a8b21c1d686f8fab9836787cf163429f860e4d062cd2db

Contents?: true

Size: 1023 Bytes

Versions: 2

Compression:

Stored size: 1023 Bytes

Contents

module EnjuSubject
  module EnjuManifestation
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      def enju_subject_manifestation_model
        include InstanceMethods
        attr_accessible :ndc, :classification_number
        has_many :work_has_subjects, :foreign_key => 'work_id', :dependent => :destroy
        has_many :subjects, :through => :work_has_subjects

        searchable do
          text :subject do
            subjects.map{|s| [s.term, s.term_transcription]}.flatten.compact
          end
          string :subject, :multiple => true do
            subjects.map{|s| [s.term, s.term_transcription]}.flatten.compact
          end
          string :classification, :multiple => true do
            classifications.collect(&:category)
          end
          integer :subject_ids, :multiple => true
        end
      end
    end

    module InstanceMethods
      def classifications
        subjects.collect(&:classifications).flatten
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
enju_subject-0.1.0.pre12 lib/enju_subject/manifestation.rb
enju_subject-0.1.0.pre11 lib/enju_subject/manifestation.rb