Class: ASpaceExport::ExportModel

Inherits:
Object
  • Object
show all
Includes:
ExportModelHelpers
Defined in:
backend/app/exporters/lib/exporter.rb

Direct Known Subclasses

DCModel, EACModel, EADModel, LabelModel, MARCModel, METSModel, MODSModel

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods included from ExportModelHelpers

#extract_date_string, #extract_note_content, #get_subnotes_by_type

Class Method Details

+ (Object) inherited(subclass)



134
135
136
# File 'backend/app/exporters/lib/exporter.rb', line 134

def self.inherited(subclass)
  ASpaceExport.register_model(subclass)
end

+ (Object) model_for(name)



139
140
141
# File 'backend/app/exporters/lib/exporter.rb', line 139

def self.model_for(name)
  @model_for = name
end

+ (Boolean) model_for?(name)

Returns:

  • (Boolean)


144
145
146
# File 'backend/app/exporters/lib/exporter.rb', line 144

def self.model_for?(name)
  @model_for == name
end

Instance Method Details

- (Object) apply_map(obj, map, opts = {})



149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'backend/app/exporters/lib/exporter.rb', line 149

def apply_map(obj, map, opts = {})
  fields_to_ignore = opts[:ignore] ||= []

  map.each do |as_field, handler|
    next if fields_to_ignore.include? as_field

    fieldable = [as_field].flatten.reject { |asf| !obj.respond_to?(asf) }

    next if fieldable.empty?

    handler_args = fieldable.map {|f| obj.send(f) }
    [handler].flatten.each {|h| self.send(h, *handler_args)  }
  end
end