/[Frey]/trunk/lib/Frey/Class/Refactor.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/Frey/Class/Refactor.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1133 - (show annotations)
Tue Jun 30 15:10:55 2009 UTC (14 years, 10 months ago) by dpavlin
File size: 1515 byte(s)
make classes immutable and remove moose droppings to make Perl::Critic::Moose happy
1 package Frey::Class::Refactor;
2 use Moose;
3
4 extends 'Frey';
5 with 'Frey::Web';
6
7 use Moose::Util::TypeConstraints;
8
9 use lib 'lib'; # :Write in vim needs it
10 use Frey::Shell::Grep;
11
12 has from => (
13 is => 'rw',
14 isa => 'Str',
15 required => 1,
16 default => 'Frey::',
17 );
18
19 has to => (
20 is => 'rw',
21 isa => 'Str',
22 required => 1,
23 default => 'Frey::HTML::',
24 );
25
26
27 sub as_markup {
28 my ($self) = @_;
29
30 $self->add_css(qq|
31 span.modify {
32 display: inline;
33 backgrund: #ffc;
34 }
35 |);
36
37 my $len = length( $self->to );
38 my $to = $self->to;
39
40 my $change_number = 0;
41
42 my $grep = Frey::Shell::Grep->new(
43 pattern => $self->from,
44 )->as_markup(
45 dd => sub {
46 my ( $patt, $path, $line, $text ) = @_;
47 $text =~ s{(\Q$patt\E)}{
48 my $nr = $change_number++;
49 strip(qq|
50 <span class="modify">
51 <input type="hidden" name="path" value="$path">
52 <input type="hidden" name="line" value="$line">
53 <input type="text" name="modification" value="$to" size=$len>
54 <input type="checkbox" name="selected" value=$nr checked>
55 </span>
56 |)
57 }egs;
58 qq|<dd><a target="editor" href="/editor+$path+$line">$line</a> <code>$text</code>|;
59 },
60 );
61
62 $self->title( $self->from . ' => ' . $self->to );
63
64 return qq|
65 <form class="modify" action="/Frey::Class::Refactor::Modify/as_markup" method="post">
66 <input type="hidden" name="from" value="| . $self->from . qq|">
67 $grep
68 <input type="submit" name="action" value="Modify">
69 </form>
70 |;
71 }
72
73 __PACKAGE__->meta->make_immutable;
74 no Moose;
75 no Moose::Util::TypeConstraints;
76
77 1;

  ViewVC Help
Powered by ViewVC 1.1.26