summaryrefslogtreecommitdiff
path: root/t/bundled/Software/License.pm
blob: 6457ab602649a44bc615005120bed8edd29cb508 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Modified from the original as a "mock" version for testing
use strict;
use warnings;
use 5.006; # warnings
package Software::License;
our $VERSION = 9999;

sub new {
  my ($class, $arg) = @_;

  # XXX changed from Carp::croak to die
  die "no copyright holder specified" unless $arg->{holder};

  bless $arg => $class;
}


sub year   { defined $_[0]->{year} ? $_[0]->{year} : (localtime)[5]+1900 }
sub holder { $_[0]->{holder} }

sub version  {
  my ($self) = @_;
  my $pkg = ref $self ? ref $self : $self;
  $pkg =~ s/.+:://;
  my (undef, @vparts) = split /_/, $pkg;

  return unless @vparts;
  return join '.', @vparts;
}


# sub meta1_name    { return undef; } # sort this out later, should be easy
sub meta_name     { return undef; }
sub meta_yml_name { $_[0]->meta_name }

sub meta2_name {
  my ($self) = @_;
  my $meta1 = $self->meta_name;

  return undef unless defined $meta1;

  return $meta1
    if $meta1 =~ /\A(?:open_source|restricted|unrestricted|unknown)\z/;

  return undef;
}

# XXX these are trivial mocks of the real thing
sub notice { 'NOTICE' }
sub license { 'LICENSE' }
sub fulltext { 'FULLTEXT' }

1;