Module: Id3Taginator::Frames::GeoFrames

Includes:
Frameable
Included in:
Id3v2Tag
Defined in:
lib/id3taginator/frames/geo_frames.rb

Instance Method Summary collapse

Methods included from Frameable

#find_frame, #find_frames, #set_frame_fields, #set_frame_fields_by_selector, #unsupported_frame

Instance Method Details

#encapsulated_object=(object) ⇒ Object Also known as: add_encapsulated_object

adds a general encapsulated object (GEOB/GEO)

Parameters:



21
22
23
24
25
26
# File 'lib/id3taginator/frames/geo_frames.rb', line 21

def encapsulated_object=(object)
  set_frame_fields_by_selector(Geo::GeneralEncapsulatedObjectFrame, %i[@mime_type @filename @descriptor
                                                                       @object_data],
                               ->(f) { f.descriptor == object.descriptor },
                               object.mime_type, object.filename, object.descriptor, object.object_data)
end

#encapsulated_objectsArray<Frames::Geo::Entities::EncapsulatedObject>

extracts the general encapsulated objects (GEOB/GEO)

Returns:



11
12
13
14
15
16
# File 'lib/id3taginator/frames/geo_frames.rb', line 11

def encapsulated_objects
  frame = find_frames(Geo::GeneralEncapsulatedObjectFrame.frame_id(@major_version, @options))
  return [] if frame.nil? || frame.empty?

  frame.map { |f| Geo::Entities::EncapsulatedObject.new(f.mime_type, f.filename, f.descriptor, f.object_data) }
end

#remove_encapsulated_object(descriptor) ⇒ Object

removes an encapsulated object for the specific descriptor

Parameters:

  • descriptor (String)

    the descriptor



33
34
35
36
37
38
# File 'lib/id3taginator/frames/geo_frames.rb', line 33

def remove_encapsulated_object(descriptor)
  @frames.delete_if do |f|
    f.frame_id == Geo::GeneralEncapsulatedObjectFrame.frame_id(@major_version, @options) &&
      f.descriptor == descriptor
  end
end