File Coverage

blib/lib/Text/Upskirt.pm
Criterion Covered Total %
statement 32 33 96.9
branch 2 4 50.0
condition n/a
subroutine 10 10 100.0
pod n/a
total 44 47 93.6


line stmt bran cond sub pod time code
1             package Text::Upskirt;
2             BEGIN {
3 1     1   36760 $Text::Upskirt::VERSION = '0.100';
4             }
5             # ABSTRACT: turns baubles into trinkets
6              
7 1     1   62 use strict;
  1         3  
  1         34  
8 1     1   7 use warnings;
  1         2  
  1         24  
9 1     1   30 use 5.012003;
  1         3  
  1         30  
10 1     1   6 use Carp;
  1         1  
  1         121  
11              
12 1         156 use constant {HTML_SKIP_HTML => (1 << 0),
13             HTML_SKIP_STYLE => (1 << 1),
14             HTML_SKIP_IMAGES => (1 << 2),
15             HTML_SKIP_LINKS => (1 << 3),
16             HTML_EXPAND_TABS => (1 << 5),
17             HTML_SAFELINK => (1 << 7),
18             HTML_TOC => (1 << 8),
19             HTML_HARD_WRAP => (1 << 9),
20             HTML_GITHUB_BLOCKCODE => (1 << 10),
21 1     1   7 HTML_USE_XHTML => (1 << 11)};
  1         2  
22              
23             require Exporter;
24 1     1   940 use AutoLoader;
  1         1642  
  1         6  
25              
26             our @ISA = qw(Exporter);
27              
28             # Items to export into callers namespace by default. Note: do not export
29             # names by default without a very good reason. Use EXPORT_OK instead.
30             # Do not simply export all your public functions/methods/constants.
31              
32             # This allows declaration use Text::Upskirt ':all';
33             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
34             # will save memory.
35             our %EXPORT_TAGS = ( 'all' => [ qw(
36             MKDEXT_AUTOLINK
37             MKDEXT_FENCED_CODE
38             MKDEXT_LAX_HTML_BLOCKS
39             MKDEXT_NO_INTRA_EMPHASIS
40             MKDEXT_SPACE_HEADERS
41             MKDEXT_STRIKETHROUGH
42             MKDEXT_TABLES
43             HTML_SKIP_HTML
44             HTML_SKIP_STYLE
45             HTML_SKIP_IMAGES
46             HTML_SKIP_LINKS
47             HTML_EXPAND_TABS
48             HTML_SAFELINK
49             HTML_TOC
50             HTML_HARD_WRAP
51             HTML_GITHUB_BLOCKCODE
52             HTML_USE_XHTML
53             markdown
54             smartypants
55             ) ],
56             'ext' => [ qw (
57             MKDEXT_AUTOLINK
58             MKDEXT_FENCED_CODE
59             MKDEXT_LAX_HTML_BLOCKS
60             MKDEXT_NO_INTRA_EMPHASIS
61             MKDEXT_SPACE_HEADERS
62             MKDEXT_STRIKETHROUGH
63             MKDEXT_TABLES
64             )],
65             'html' => [ qw (
66             HTML_SKIP_HTML
67             HTML_SKIP_STYLE
68             HTML_SKIP_IMAGES
69             HTML_SKIP_LINKS
70             HTML_EXPAND_TABS
71             HTML_SAFELINK
72             HTML_TOC
73             HTML_HARD_WRAP
74             HTML_GITHUB_BLOCKCODE
75             HTML_USE_XHTML
76             )],
77              
78             );
79              
80             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
81              
82             our @EXPORT;
83              
84              
85             sub AUTOLOAD {
86             # This AUTOLOAD is used to 'autoload' constants from the constant()
87             # XS function.
88              
89 6     6   792 my $constname;
90 6         7 our $AUTOLOAD;
91 6         32 ($constname = $AUTOLOAD) =~ s/.*:://;
92 6 50       16 croak "&Text::Upskirt::constant not defined" if $constname eq 'constant';
93 6         19 my ($error, $val) = constant($constname);
94 6 50       12 if ($error) { croak $error; }
  0         0  
95             {
96 1     1   261 no strict 'refs';
  1         3  
  1         950  
  6         7  
97             # Fixed between 5.005_53 and 5.005_61
98             #XXX if ($] >= 5.00561) {
99             #XXX *$AUTOLOAD = sub () { $val };
100             #XXX }
101             #XXX else {
102 6     6   31 *$AUTOLOAD = sub { $val };
  6         178  
103             #XXX }
104             }
105 6         22 goto &$AUTOLOAD;
106             }
107              
108             require XSLoader;
109             XSLoader::load('Text::Upskirt', $Text::Upskirt::VERSION);
110              
111             # Preloaded methods go here.
112              
113             # Autoload methods go after __END__, and are processed by the autosplit program.
114              
115             1;
116             __END__