X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lib%2FDebbugs%2FDB%2FResultSet%2FArch.pm;fp=lib%2FDebbugs%2FDB%2FResultSet%2FArch.pm;h=572ed0ae9df3ebe3d3559d3e427c8b36474aa3bf;hb=1e6633a3780f4fd53fc4303852e84d13cdad2dc6;hp=0000000000000000000000000000000000000000;hpb=466f7faff129a5699c7674f59900a92aa256175d;p=debbugs.git diff --git a/lib/Debbugs/DB/ResultSet/Arch.pm b/lib/Debbugs/DB/ResultSet/Arch.pm new file mode 100644 index 0000000..572ed0a --- /dev/null +++ b/lib/Debbugs/DB/ResultSet/Arch.pm @@ -0,0 +1,55 @@ +# This module is part of debbugs, and is released +# under the terms of the GPL version 2, or any later version. See the +# file README and COPYING for more information. +# Copyright 2016 by Don Armstrong . +use utf8; +package Debbugs::DB::ResultSet::Arch; + +=head1 NAME + +Debbugs::DB::ResultSet::Arch - Architecture result set operations + +=head1 SYNOPSIS + + + +=head1 DESCRIPTION + + + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::ResultSet'; + +# required for hash slices +use v5.20; + +sub get_archs { + my ($self,@archs) = @_; + my %archs; + for my $a ($self->result_source->schema->resultset('Arch')-> + search(undef, + {result_class => 'DBIx::Class::ResultClass::HashRefInflator', + columns => [qw[id arch]], + })->all()) { + $archs{$a->{arch}} = $a->{id}; + } + for my $a (grep {not exists $archs{$_}} @archs) { + $archs{$a} = + $self->result_source->schema->resultset('Arch')-> + find_or_create({arch => $a}, + {columns => [qw[id arch]], + } + )->id; + } + + return {%archs{@archs}}; +} + + +1; + +__END__