1 # This module is part of debbugs, and
2 # is released under the terms of the GPL version 2, or any later
3 # version (at your option). See the file README and COPYING for more
5 # Copyright 2018 by Don Armstrong <don@donarmstrong.com>.
7 package Debbugs::Version::Binary;
11 Debbugs::Version::Binary -- OO interface to Version
15 use Debbugs::Version::Binary;
16 Debbugs::Version::Binary->new(schema => $s,binaries => [qw(foo)],sources => [qw(bar)]);
27 use namespace::autoclean;
29 use Debbugs::Config qw(:config);
30 use Debbugs::Collection::Package;
33 extends 'Debbugs::Version';
39 has source_version => (is => 'ro',
40 isa => 'Debbugs::Version::Source',
42 builder => '_build_source_version',
45 sub _build_source_version {
49 get_source_version(version => $self->version,
50 $self->_count_archs?(archs => [$self->_archs]):(),
52 if (defined $source_version) {
53 return $source_version;
55 return Debbugs::Version::Source->new(version => $self->version,
56 package => '(unknown)',
58 package_collection => $self->package_collection,
64 return $self->source->src_pkg_ver;
67 has archs => (is => 'bare',
68 isa => 'ArrayRef[Str]',
69 builder => '_build_archs',
71 handles => {'_archs' => 'elements',
72 '_count_archs' => 'count',
78 # this is wrong, but we'll start like this for now
84 return $self->_count_archs > 0?join(',',$self->_archs):'any';
88 __PACKAGE__->meta->make_immutable;
95 # indent-tabs-mode: nil
96 # cperl-indent-level: 4