AudioFile-Info-MP3-Tag

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

use lib 'lib';
use AudioFile::Info::Build;

my $module = 'AudioFile::Info::MP3::Tag';

my $b = AudioFile::Info::Build->new(
    module_name => $module,
    license => 'perl',
    requires => {
        perl            => '5.6.0',
        AudioFile::Info => 0,
        MP3::Tag        => 0,
        YAML            => 0,
    },
    build_requires => {
        Module::Build   => 0
    },
    configure_requires => {
        YAML => 0,
    },
    create_makefile_pl => 'traditional',
    meta_merge => {

META.json  view on Meta::CPAN

      },
      "configure" : {
         "requires" : {
            "Module::Build" : "0.42",
            "YAML" : "0"
         }
      },
      "runtime" : {
         "requires" : {
            "AudioFile::Info" : "0",
            "MP3::Tag" : "0",
            "YAML" : "0",
            "perl" : "v5.6.0"
         }
      }
   },
   "provides" : {
      "AudioFile::Info::Build" : {
         "file" : "lib/AudioFile/Info/Build.pm"
      },
      "AudioFile::Info::MP3::Tag" : {
         "file" : "lib/AudioFile/Info/MP3/Tag.pm",
         "version" : "v1.6.4"
      }
   },
   "release_status" : "stable",
   "resources" : {
      "bugtracker" : {
         "web" : "https://github.com/davorg/audiofile-info-mp3-tag/issues"
      },
      "license" : [

META.yml  view on Meta::CPAN

dynamic_config: 1
generated_by: 'Module::Build version 0.4232, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: '1.4'
name: AudioFile-Info-MP3-Tag
provides:
  AudioFile::Info::Build:
    file: lib/AudioFile/Info/Build.pm
  AudioFile::Info::MP3::Tag:
    file: lib/AudioFile/Info/MP3/Tag.pm
    version: v1.6.4
requires:
  AudioFile::Info: '0'
  MP3::Tag: '0'
  YAML: '0'
  perl: v5.6.0
resources:
  bugtracker: https://github.com/davorg/audiofile-info-mp3-tag/issues
  license: http://dev.perl.org/licenses/
  repository: https://github.com/davorg/audiofile-info-mp3-tag.git
version: v1.6.4
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

Makefile.PL  view on Meta::CPAN

# Note: this file was auto-generated by Module::Build::Compat version 0.4232
require 5.006000;
use ExtUtils::MakeMaker;
WriteMakefile
(
  'NAME' => 'AudioFile::Info::MP3::Tag',
  'VERSION_FROM' => 'lib/AudioFile/Info/MP3/Tag.pm',
  'PREREQ_PM' => {
                   'AudioFile::Info' => 0,
                   'MP3::Tag' => 0,
                   'Module::Build' => 0,
                   'YAML' => 0
                 },
  'INSTALLDIRS' => 'site',
  'EXE_FILES' => [],
  'PL_FILES' => {}
)
;

lib/AudioFile/Info/MP3/Tag.pm  view on Meta::CPAN

=head1 NAME

AudioFile::Info::MP3::Tag - Perl extension to get info from MP3 files.

=head1 DESCRIPTION

This is a plugin for AudioFile::Info which uses MP3::Tag to get or set
data about MP3 files.

See L<AudioFile::Info> for more details.

=cut

package AudioFile::Info::MP3::Tag;

use 5.006;
use strict;
use warnings;
use Carp;

use MP3::Tag;

our $VERSION = '1.6.4';

my %data = (artist => ['artist', 'TPE1'],
            title  => ['song', 'TIT2'],
            album  => ['album', 'TALB'],
            track  => ['track', 'TRCK'],
            year   => ['year', 'TYER'],
            genre  => ['genre', 'TCON']);

sub new {
  my $class = shift;
  my $file = shift;
  my $obj = MP3::Tag->new($file);
  $obj->get_tags;

  bless { obj => $obj }, $class;
}

sub DESTROY {
  my $file = $_[0]->{obj}{ID3v2}{mp3} || $_[0]->{obj}{ID3v2}{mp3};

  $file->close if defined $file;
}

lib/AudioFile/Info/MP3/Tag.pm  view on Meta::CPAN

}


1;
__END__

=head1 METHODS

=head2 new

Creates a new object of class AudioFile::Info::MP3::Tag. Usually called
by AudioFile::Info::new.

=head1 AUTHOR

Dave Cross, E<lt>dave@mag-sol.comE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2003-2009 by Magnum Solutions Ltd. All rights reserved.

t/1_read.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More tests => 8;
BEGIN { use_ok('AudioFile::Info'); }

my $song = AudioFile::Info->new('t/test.mp3',
                                { mp3 => 'AudioFile::Info::MP3::Tag' });
is(ref $song, 'AudioFile::Info::MP3::Tag');
is($song->title, 'test');
is($song->artist, 'davorg');
is($song->album, 'none');
is($song->track, '0');
is($song->year, '2003');
is($song->genre, 'nonsense');

t/2_write.t  view on Meta::CPAN

use Test::More tests => 15;

BEGIN { use_ok('AudioFile::Info'); }

use File::Copy;
use FindBin qw($Bin);

copy "$Bin/test.mp3", "$Bin/test2.mp3";

my $song = AudioFile::Info->new('t/test2.mp3',
                                { mp3 => 'AudioFile::Info::MP3::Tag' });
is(ref $song, 'AudioFile::Info::MP3::Tag');
is($song->title, 'test');
is($song->artist, 'davorg');
is($song->album, 'none');
is($song->track, '0');
is($song->year, '2003');
is($song->genre, 'nonsense');
$song->genre('xxx');
$song->title('xxx');
$song->artist('xxx');
$song->album('xxx');
$song->track('1');
$song->year('2000');

undef $song;

$song = AudioFile::Info->new('t/test2.mp3',
                             { mp3 => 'AudioFile::Info::MP3::Tag' });
is(ref $song, 'AudioFile::Info::MP3::Tag');
is($song->genre, 'xxx');
is($song->title, 'xxx');
is($song->artist, 'xxx');
is($song->album, 'xxx');
is($song->track, '1');
is($song->year, '2000');

unlink("$Bin/test2.mp3");

t/4_pod_coverage.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More;
eval "use Test::Pod::Coverage 1.00";
plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@;
all_pod_coverage_ok({ package => 'AudioFile::Info::MP3::Tag' });



( run in 1.145 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )