File Coverage

blib/lib/App/hopen/G/AssetOp.pm
Criterion Covered Total %
statement 31 32 96.8
branch n/a
condition 2 2 100.0
subroutine 9 10 90.0
pod n/a
total 42 44 95.4


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   103887 use strict; use warnings;
  2     2   14  
  2         55  
  2         11  
  2         8  
  2         47  
5 2     2   10 use Data::Hopen::Base;
  2         5  
  2         11  
6 2     2   3444 use Quote::Code;
  2         1623  
  2         8  
7              
8             our $VERSION = '0.000012'; # TRIAL
9              
10 2     2   130 use parent 'App::hopen::G::Cmd';
  2         4  
  2         11  
11             # we use Class::Tiny below
12              
13             use Class::Tiny::ConstrainedAccessor
14 9         3843 asset => [ sub { eval { $_[0]->DOES('App::hopen::Asset') } },
  9         67  
15 2   100 2   1244 sub { qc'{$_[0]//"<undef>"} is not an App::hopen::Asset or subclass' } ];
  2         2990  
  2         27  
  3         1049  
  3         42  
16              
17 2         10 use Class::Tiny qw(asset), {
18             how => undef,
19 2     2   260 };
  2         4  
20              
21 2     2   1362 use App::hopen::Asset;
  2         6  
  2         66  
22 2     2   12 use Data::Hopen::Util::Data qw(forward_opts);
  2         4  
  2         188  
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: #