File Coverage

blib/lib/App/hopen/G/AssetOp.pm
Criterion Covered Total %
statement 28 29 96.5
branch n/a
condition 2 2 100.0
subroutine 8 9 88.8
pod n/a
total 38 40 95.0


line stmt bran cond sub pod time code
1             # App::hopen::G::AssetOp - parent class for operations used by a
2             # generator to build an asset
3             package App::hopen::G::AssetOp;
4 2     2   104360 use strict;
  2         18  
  2         60  
5 2     2   11 use Data::Hopen::Base;
  2         3  
  2         27  
6 2     2   3525 use Quote::Code;
  2         1535  
  2         9  
7              
8             our $VERSION = '0.000011';
9              
10 2     2   129 use parent 'App::hopen::G::Cmd';
  2         5  
  2         13  
11             # we use Class::Tiny below
12              
13             use Class::Tiny::ConstrainedAccessor
14 9         3967 asset => [ sub { eval { $_[0]->DOES('App::hopen::Asset') } },
  9         70  
15 2   100 2   1244 sub { qc'{$_[0]//"<undef>"} is not an App::hopen::Asset or subclass' } ];
  2         2881  
  2         29  
  3         997  
  3         40  
16              
17 2         12 use Class::Tiny qw(asset), {
18             how => undef,
19 2     2   281 };
  2         6  
20              
21 2     2   1360 use App::hopen::Asset;
  2         5  
  2         77  
22 2     2   15 use Data::Hopen::Util::Data qw(forward_opts);
  2         7  
  2         223  
23              
24             # Docs
25              
26             =head1 NAME
27              
28             App::hopen::G::AssetOp - parent class for operations used by a generator to build an asset
29              
30             =head1 SYNOPSIS
31              
32             This is an abstract class. Each generator implements its own subclass of
33             AssetOp for its own use.
34              
35             =head1 ATTRIBUTES
36              
37             =head2 asset
38              
39             An L<App::hopen::Asset> instance.
40              
41             =head2 how
42              
43             If defined, a string suitable as input to C<sprinti> in L<String::Print>.
44              
45             TODO or a different formatter?
46              
47             TODO? require that format specifications call a specified modifier that
48             will quote file names for shell-specific command-line use.
49              
50             =cut
51              
52 0     0     sub _run { ... }
53              
54             1;
55             __END__
56             # vi: set fdm=marker: #