/usr/local/CPAN/Perl-Dist/Perl/Dist/Asset/Website.pm


package Perl::Dist::Asset::Website;

use strict;
use Carp         'croak';
use Params::Util qw{ _STRING };

use vars qw{$VERSION};
BEGIN {
	$VERSION = '1.16';
}

use Object::Tiny qw{
	name
	url
	icon_file
	icon_index
};





#####################################################################
# Constructor

sub new {
	my $self = shift->SUPER::new(@_);

	# If we have an icon, default to the first one in it
	if ( defined $self->icon_file and ! defined $self->icon_index ) {
		$self->{icon_index} = 0;
	}

	# Check params
	unless ( _STRING($self->name) ) {
		croak("Did not provide a name");
	}
	unless ( _STRING($self->url) ) {
		croak("Did not provide a URL");
	}

	return $self;
}

sub file {
	$_[0]->name . '.url';
}

sub content {
	my $self    = shift;
	my @content = "[InternetShortcut]\n";
	push @content, "URL=" . $self->url;
	if ( $self->icon_file ) {
		push @content, "IconFile=" . $self->icon_file;
	}
	if ( $self->icon_index ) {
		push @content, "IconIndex=" . $self->icon_index;
	}
	return join '', map { "$_\n" } @content;
}

sub write {
	my $self = shift;
	my $to   = shift;
	open( WEBSITE, ">$to" )      or die "open($to): $!";
	print WEBSITE $self->content or die "print($to): $!";
	close WEBSITE                or die "close($to): $!";
	return 1;
}

1;