Module: Sufia::GenericFile::Characterization
- Extended by:
- ActiveSupport::Concern
- Included in:
- Sufia::GenericFile
- Defined in:
- app/models/concerns/sufia/generic_file/characterization.rb
Instance Method Summary collapse
-
#append_metadata ⇒ Object
Populate GenericFile’s properties with fields from FITS (e.g. Author from pdfs).
- #characterization_terms ⇒ Object
-
#characterize ⇒ Object
Extract the metadata from the content datastream and record it in the characterization datastream.
- #duration ⇒ Object
- #height ⇒ Object
- #sample_rate ⇒ Object
- #width ⇒ Object
Instance Method Details
#append_metadata ⇒ Object
Populate GenericFile’s properties with fields from FITS (e.g. Author from pdfs)
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 81 def terms = characterization_terms Sufia.config.fits_to_desc_mapping.each_pair do |k, v| next unless terms.key?(k) Array.wrap(terms[k]).each do |term_value| proxy_term = send(v) if proxy_term.is_a?(Array) proxy_term << term_value unless proxy_term.include?(term_value) else # these are single-valued terms which cannot be appended to send("#{v}=", term_value) end end end end |
#characterization_terms ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 97 def characterization_terms h = {} FitsDatastream.terminology.terms.each_pair do |_k, v| next unless v.respond_to? :proxied_term term = v.proxied_term begin value = send(term.name) h[term.name] = value unless value.empty? rescue NoMethodError next end end h end |
#characterize ⇒ Object
Extract the metadata from the content datastream and record it in the characterization datastream
72 73 74 75 76 77 78 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 72 def characterize = content. characterization.ng_xml = if .present? self.filename = [content.original_name] save end |
#duration ⇒ Object
63 64 65 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 63 def duration characterization.duration.blank? ? characterization.video_duration : characterization.duration end |
#height ⇒ Object
59 60 61 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 59 def height characterization.height.blank? ? characterization.video_height : characterization.height end |
#sample_rate ⇒ Object
67 68 69 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 67 def sample_rate characterization.sample_rate.blank? ? characterization.video_sample_rate : characterization.sample_rate end |
#width ⇒ Object
55 56 57 |
# File 'app/models/concerns/sufia/generic_file/characterization.rb', line 55 def width characterization.width.blank? ? characterization.video_width : characterization.width end |