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

  ViewVC Help
Powered by ViewVC 1.1.26