Class: METSModel
- Inherits:
 - 
      ASpaceExport::ExportModel
      
        
- Object
 - ASpaceExport::ExportModel
 - METSModel
 
 - Includes:
 - JSONModel
 - Defined in:
 - backend/app/exporters/models/mets.rb
 
Constant Summary
- @@logical_div =
 Struct.new(:label, :dmdid, :file_versions, :children) do
Instance Attribute Summary (collapse)
- 
  
    
      - (Object) dmd_id 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute dmd_id.
 - 
  
    
      - (Object) extents 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute extents.
 - 
  
    
      - (Object) header_agent_name 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute header_agent_name.
 - 
  
    
      - (Object) header_agent_notes 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute header_agent_notes.
 - 
  
    
      - (Object) header_agent_role 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute header_agent_role.
 - 
  
    
      - (Object) header_agent_type 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute header_agent_type.
 - 
  
    
      - (Object) mods_model 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute mods_model.
 - 
  
    
      - (Object) names 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute names.
 - 
  
    
      - (Object) notes 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute notes.
 - 
  
    
      - (Object) parts 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute parts.
 - 
  
    
      - (Object) subjects 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute subjects.
 - 
  
    
      - (Object) type_of_resource 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute type_of_resource.
 - 
  
    
      - (Object) wrapped_dmd 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute wrapped_dmd.
 
Class Method Summary (collapse)
- 
  
    
      + (Object) from_archival_object(obj) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      + (Object) from_aspace_object(obj) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      + (Object) from_digital_object(obj) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      + (Object) get_file_group(*args) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      + (Object) name_part_type_map 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      + (Object) name_type_map 
    
    
  
  
  
  
  
  
  
  
  
    
 
Instance Method Summary (collapse)
- 
  
    
      - (Object) add_agent_note(val) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) children 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) dmd_wrap(mdtype, callback, data) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) extract_file_versions(children) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (METSModel) initialize(obj) 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of METSModel.
 - 
  
    
      - (Object) method_missing(meth) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) root_logical_div 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) root_physical_div 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) with_file_groups 
    
    
  
  
  
  
  
  
  
  
  
    
 
Methods included from JSONModel
JSONModel, #JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, client_mode?, custom_validations, destroy_model, enum_default_value, enum_values, handle_error, init, load_schema, #models, models, parse_jsonmodel_ref, parse_reference, repository, repository_for, schema_src, set_repository, strict_mode, strict_mode?, with_repository
Methods inherited from ASpaceExport::ExportModel
#apply_map, inherited, model_for, model_for?
Methods included from ASpaceExport::ExportModelHelpers
#extract_date_string, #extract_note_content, #get_subnotes_by_type
Constructor Details
- (METSModel) initialize(obj)
Returns a new instance of METSModel
      105 106 107 108 109 110 111 112 113  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 105 def initialize(obj) @json = obj @wrapped_dmd = [] @extents = [] @notes = [] @subjects = [] @names = [] @parts = [] end  | 
  
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
- (Object) method_missing(meth)
      179 180 181 182 183 184 185  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 179 def method_missing(meth) if @json.respond_to?(meth) @json.send(meth) else nil end end  | 
  
Instance Attribute Details
- (Object) dmd_id
Returns the value of attribute dmd_id
      20 21 22  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 20 def dmd_id @dmd_id end  | 
  
- (Object) extents
Returns the value of attribute extents
      14 15 16  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 14 def extents @extents end  | 
  
- (Object) header_agent_name
Returns the value of attribute header_agent_name
      6 7 8  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 6 def header_agent_name @header_agent_name end  | 
  
- (Object) header_agent_notes
Returns the value of attribute header_agent_notes
      7 8 9  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 7 def header_agent_notes @header_agent_notes end  | 
  
- (Object) header_agent_role
Returns the value of attribute header_agent_role
      8 9 10  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 8 def header_agent_role @header_agent_role end  | 
  
- (Object) header_agent_type
Returns the value of attribute header_agent_type
      9 10 11  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 9 def header_agent_type @header_agent_type end  | 
  
- (Object) mods_model
Returns the value of attribute mods_model
      11 12 13  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 11 def mods_model @mods_model end  | 
  
- (Object) names
Returns the value of attribute names
      17 18 19  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 17 def names @names end  | 
  
- (Object) notes
Returns the value of attribute notes
      15 16 17  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 15 def notes @notes end  | 
  
- (Object) parts
Returns the value of attribute parts
      19 20 21  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 19 def parts @parts end  | 
  
- (Object) subjects
Returns the value of attribute subjects
      16 17 18  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 16 def subjects @subjects end  | 
  
- (Object) type_of_resource
Returns the value of attribute type_of_resource
      18 19 20  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 18 def type_of_resource @type_of_resource end  | 
  
- (Object) wrapped_dmd
Returns the value of attribute wrapped_dmd
      12 13 14  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 12 def wrapped_dmd @wrapped_dmd end  | 
  
Class Method Details
+ (Object) from_archival_object(obj)
      138 139 140 141 142 143  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 138 def self.from_archival_object(obj) mets = self.from_aspace_object(obj) mets.apply_map(obj, @archival_object_map) mets end  | 
  
+ (Object) from_aspace_object(obj)
      121 122 123 124 125 126 127 128 129 130 131 132 133 134 135  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 121 def self.from_aspace_object(obj) mets = self.new(obj) if obj.respond_to?(:repo_id) repo_id = RequestContext.get(:repo_id) mets.apply_map(Repository.get_or_die(repo_id), @repository_map) mets.header_agent_role = "CREATOR" mets.header_agent_type = "ORGANIZATION" end mets.add_agent_note("Produced by ArchivesSpace") mets end  | 
  
+ (Object) from_digital_object(obj)
      146 147 148 149 150 151 152 153 154 155  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 146 def self.from_digital_object(obj) mets = self.from_archival_object(obj) mets.type_of_resource = obj.digital_object_type mets.apply_map(obj, @digital_object_map) # wrapped DMD mets.mods_model = ASpaceExport.model(:mods).from_digital_object(obj, :ignore => [:tree]) mets end  | 
  
+ (Object) get_file_group(*args)
      116 117 118  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 116 def self.get_file_group(*args) @file_group.new(*args) end  | 
  
+ (Object) name_part_type_map
      163 164 165  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 163 def self.name_part_type_map @name_part_type_map end  | 
  
+ (Object) name_type_map
      158 159 160  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 158 def self.name_type_map @name_type_map end  | 
  
Instance Method Details
- (Object) add_agent_note(val)
      168 169 170 171  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 168 def add_agent_note(val) @header_agent_notes ||= [] @header_agent_notes << val end  | 
  
- (Object) children
      188 189 190 191 192 193 194 195 196  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 188 def children return nil unless @json.tree['_resolved']['children'] ao_class = self.class.instance_variable_get(:@doc) children = @json.tree['_resolved']['children'].map { |subtree| ao_class.new(subtree) } children end  | 
  
- (Object) dmd_wrap(mdtype, callback, data)
      174 175 176  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 174 def dmd_wrap(mdtype, callback, data) self.wrapped_dmd << {'type' => mdtype,'callback' => callback, 'data' => data} end  | 
  
- (Object) extract_file_versions(children)
      276 277 278 279 280 281 282 283 284 285 286 287 288 289  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 276 def extract_file_versions(children) file_versions = [] children.each do |child| if child['file_versions'] file_versions += child['file_versions'] end if child['children'] file_versions += extract_file_versions(child['children']) end end file_versions end  | 
  
- (Object) root_logical_div
      256 257 258 259 260 261 262 263  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 256 def root_logical_div @@logical_div.init @@logical_div.new(@json.title, @json.id, @json.file_versions, @json.tree['_resolved']['children']) end  | 
  
- (Object) root_physical_div
      266 267 268 269 270 271 272 273  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 266 def root_physical_div @@logical_div.init @@logical_div.new(@json.title, @json.id, @json.file_versions, @json.tree['_resolved']['children']) end  | 
  
- (Object) with_file_groups
      199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214  | 
    
      # File 'backend/app/exporters/models/mets.rb', line 199 def with_file_groups file_versions = @json.file_versions file_versions.each do |fv| fv['digital_object_id'] = @json.id end file_versions += extract_file_versions(@json.tree['_resolved']['children']) file_versions.compact! while file_versions.length > 0 use_statement = file_versions[0]['use_statement'] use_group = file_versions.select {|fv| fv['use_statement'] == use_statement } yield self.class.get_file_group(use_statement, use_group) file_versions.reject! {|fv| fv['use_statement'] == use_statement } end end  |