blib/lib/Text/Livedoor/Wiki/Plugin/Function/Fukidashi.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
statement | 48 | 48 | 100.0 |
branch | 14 | 14 | 100.0 |
condition | n/a | ||
subroutine | 8 | 8 | 100.0 |
pod | 4 | 4 | 100.0 |
total | 74 | 74 | 100.0 |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | package Text::Livedoor::Wiki::Plugin::Function::Fukidashi; | ||||||
2 | 11 | 11 | 60 | use warnings; | |||
11 | 20 | ||||||
11 | 345 | ||||||
3 | 11 | 11 | 58 | use strict; | |||
11 | 21 | ||||||
11 | 326 | ||||||
4 | 11 | 11 | 52 | use base qw(Text::Livedoor::Wiki::Plugin::Function); | |||
11 | 24 | ||||||
11 | 588 | ||||||
5 | 11 | 11 | 669 | use Text::Livedoor::Wiki::Utils; | |||
11 | 23 | ||||||
11 | 88 | ||||||
6 | |||||||
7 | __PACKAGE__->function_name('fukidashi'); | ||||||
8 | |||||||
9 | sub prepare_args { | ||||||
10 | 16 | 16 | 1 | 35 | my $class= shift; | ||
11 | 16 | 34 | my $args = shift; | ||||
12 | 16 | 27 | my $image_url = ''; | ||||
13 | 16 | 30 | my $location = 'left'; | ||||
14 | |||||||
15 | 16 | 100 | 60 | my $icon = scalar @$args ? $args->[0] : '' ; | |||
16 | 16 | 25 | my $type = ''; | ||||
17 | # livedoor icon | ||||||
18 | 16 | 100 | 89 | if( $icon =~ /^[a-zA-Z0-9_]+$/ ) { | |||
100 | |||||||
19 | 8 | 17 | $type = 'livedoor_id'; | ||||
20 | # image | ||||||
21 | }elsif( Text::Livedoor::Wiki::Utils::is_image_url( $icon ) ){ | ||||||
22 | 3 | 7 | $type = 'image'; | ||||
23 | # default | ||||||
24 | }else { | ||||||
25 | 5 | 11 | $type = 'image'; | ||||
26 | 5 | 21 | $icon = $class->default_icon; | ||||
27 | } | ||||||
28 | |||||||
29 | # potision | ||||||
30 | 16 | 100 | 63 | if( scalar @$args == 2 ) { | |||
31 | 5 | 12 | my $loc = $args->[1] ; | ||||
32 | 5 | 100 | 20 | $location = $loc if $loc eq 'right'; | |||
33 | } | ||||||
34 | |||||||
35 | # return result | ||||||
36 | 16 | 123 | return { type => $type, icon => $icon , location => $location } | ||||
37 | |||||||
38 | } | ||||||
39 | |||||||
40 | sub process { | ||||||
41 | 13 | 13 | 1 | 34 | my ( $class, $inline , $data ) = @_; | ||
42 | 13 | 67 | my $value = $inline->parse($data->{value} ); | ||||
43 | 13 | 45 | my $icon = $data->{args}{icon}; | ||||
44 | 13 | 32 | my $location = $data->{args}{location}; | ||||
45 | 13 | 85 | my $type = $data->{args}{type}; | ||||
46 | |||||||
47 | 13 | 100 | 49 | if( $type eq 'livedoor_id' ) { | |||
48 | 7 | 29 | $icon = qq||; | ||||
49 | }else { | ||||||
50 | 6 | 19 | $icon = qq||; | ||||
51 | } | ||||||
52 | |||||||
53 | 13 | 129 | return qq| \n \n|; $icon $value \n |
||||
54 | } | ||||||
55 | |||||||
56 | sub default_icon { | ||||||
57 | 5 | 5 | 1 | 11 | my $class = shift; | ||
58 | 5 | 53 | my $default_icon_url = $class->opts->{storage} . '/images/function/fukidashi/icon_guest.gif'; | ||||
59 | 5 | 16 | return $default_icon_url; | ||||
60 | } | ||||||
61 | |||||||
62 | sub process_mobile { | ||||||
63 | 3 | 3 | 1 | 5 | my ( $class, $inline , $data ) = @_; | ||
64 | 3 | 10 | my $value = $inline->parse($data->{value} ); | ||||
65 | 3 | 8 | my $icon = $data->{args}{icon}; | ||||
66 | 3 | 7 | my $location = $data->{args}{location}; | ||||
67 | 3 | 5 | my $type = $data->{args}{type}; | ||||
68 | |||||||
69 | 3 | 100 | 10 | if( $type eq 'livedoor_id' ) { | |||
70 | 1 | 5 | $icon = qq||; | ||||
71 | } | ||||||
72 | else { | ||||||
73 | 2 | 5 | $icon = qq||; | ||||
74 | } | ||||||
75 | |||||||
76 | 3 | 23 | return $icon . $value ; | ||||
77 | } | ||||||
78 | |||||||
79 | 1; | ||||||
80 | |||||||
81 | =head1 NAME | ||||||
82 | |||||||
83 | Text::Livedoor::Wiki::Plugin::Function::Fukidashi - Fukidashi Function Plugin | ||||||
84 | |||||||
85 | =head1 DESCRIPTION | ||||||
86 | |||||||
87 | Everybody likes a good looking Fukidashi. | ||||||
88 | |||||||
89 | =head1 SYNOPSIS | ||||||
90 | |||||||
91 | &fukidashi(polocky){i am polocky} | ||||||
92 | &fukidashi(polocky,right){i am polocky} | ||||||
93 | &fukidashi(polocky,left){i am polocky} | ||||||
94 | &fukidashi(,right){i am polocky} | ||||||
95 | &fukidashi(){i am polocky} | ||||||
96 | &fukidashi(http://image.livedoor.com/img/top/10/logo.gif){i am polocky} | ||||||
97 | |||||||
98 | =head1 CSS | ||||||
99 | |||||||
100 | DOCUMENT ME | ||||||
101 | |||||||
102 | =head1 FUNCTION | ||||||
103 | |||||||
104 | =head2 prepare_args | ||||||
105 | |||||||
106 | =head2 process | ||||||
107 | |||||||
108 | =head2 default_icon | ||||||
109 | |||||||
110 | =head2 process_mobile | ||||||
111 | |||||||
112 | =head1 AUTHOR | ||||||
113 | |||||||
114 | polocky | ||||||
115 | |||||||
116 | =cut |