class MultimediaParadise::ReadMetaTags

Constants

NAMESPACE
#

NAMESPACE

#
N_LJUST
#

N_LJUST

#

Public Class Methods

[](i = '') click to toggle source
#

[]

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 156
def self.[](i = '')
  new(i)
end
new( i = nil, run_already = true ) click to toggle source
#

initialize

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 36
def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  run if run_already
end

Public Instance Methods

display_the_title() click to toggle source
#

display_the_title

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 85
def display_the_title
  e '  Title: '.ljust(N_LJUST)+
    orange(@title.to_s)
end
input?() click to toggle source
#

input?

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 78
def input?
  @input
end
read_meta_tags_of_this_file(this_file) click to toggle source
#

read_meta_tags_of_this_file

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 93
def read_meta_tags_of_this_file(this_file)
  # ===================================================================== #
  # Load the file if it exists.
  # ===================================================================== #
  if File.exist? this_file
    n_ljust = N_LJUST
    TagLib::FileRef.open(this_file) { |fileref|
      unless fileref.null?
        tag = fileref.tag
        cliner
        set_title(tag.title)
        display_the_title
        e '  Artist: '.ljust(n_ljust)+
          slateblue(tag.artist.to_s)
        e '  Album: '.ljust(n_ljust)+
          lightgreen(tag.album.to_s)
        e '  Year: '.ljust(n_ljust)+
          lightgreen(tag.year.to_s)
        # e '  Track number: '.ljust(n_ljust)+tag.track.to_s
        if tag.genre and !tag.genre.empty?
          e '  Genre: '.ljust(n_ljust)+
            tag.genre.to_s+::Colours.rev
        end
        e '  Comment: '.ljust(n_ljust)+
          crimson(tag.comment.to_s)
        properties = fileref.audio_properties
        e '  Song length: '.ljust(n_ljust)+
          mediumslateblue(properties.length.to_s+' seconds')
        cliner
        e
      end
    }
  else
    opnn; no_file_exists_at(this_file)
  end
end
reset() click to toggle source
#

reset (reset tag)

#
Calls superclass method MultimediaParadise::Base#reset
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 48
def reset
  super()
  # ======================================================================= #
  # === @title
  # ======================================================================= #
  @title = nil
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
end
run() click to toggle source
#

run (run tag)

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 146
def run
  try_to_load_the_taglib_library
  @input.each {|this_file|
    read_meta_tags_of_this_file(this_file)
  }
end
set_input(i = '') click to toggle source
#

set_input

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 70
def set_input(i = '')
  i = [i].flatten.compact
  @input = i # Must be an Array.
end
set_title(i = nil) click to toggle source
#

set_title

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 63
def set_title(i = nil)
  @title = i
end
try_to_load_the_taglib_library() click to toggle source
#

try_to_load_the_taglib_library

#
# File lib/multimedia_paradise/multimedia/read_meta_tags.rb, line 133
def try_to_load_the_taglib_library
  begin
    require 'taglib-ruby'
  rescue LoadError
    e 'The taglib-ruby gem is not installed. Consider installing '\
      'it ( gem install taglib ).'
    exit
  end
end