Sha256: deb2e3ca19f6840f39598945bb4449e27d370772b18ccffa2b212ef83986f8c4

Contents?: true

Size: 894 Bytes

Versions: 1

Compression:

Stored size: 894 Bytes

Contents

# coding: utf-8

module ONIX2
  class Subject
    include Virtus.model

    attribute :subject_scheme_id, Integer
    attribute :subject_scheme_name
    attribute :subject_scheme_version
    attribute :subject_code
    attribute :subject_heading_text

    def to_xml
      SubjectRepresenter.new(self).to_xml
    end

    def self.from_xml(data)
      SubjectRepresenter.new(self.new).from_xml(data)
    end
  end

  class SubjectRepresenter < Representable::Decorator
    include Representable::XML

    self.representation_wrap = :Subject

    property :subject_scheme_id, as: "SubjectSchemeIdentifier", render_filter: ::ONIX2::Formatters::TWO_DIGITS
    property :subject_scheme_name, as: "SubjectSchemeName"
    property :subject_scheme_version, as: "SubjectSchemeVersion"
    property :subject_code, as: "SubjectCode"
    property :subject_heading_text, as: "SubjectHeadingText"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
onix2-1.0.0 lib/onix2/subject.rb