1 |
package Frey::Class::Rename; |
package Frey::Class::Refactor; |
2 |
use Moose; |
use Moose; |
3 |
|
|
4 |
extends 'Frey'; |
extends 'Frey'; |
10 |
use lib 'lib'; # :Write in vim needs it |
use lib 'lib'; # :Write in vim needs it |
11 |
use Frey::Shell::Grep; |
use Frey::Shell::Grep; |
12 |
|
|
|
sub action_order { qw/find change/ } |
|
|
enum 'action_order' => action_order; |
|
|
|
|
|
has action => ( |
|
|
is => 'rw', |
|
|
isa => 'action_order', |
|
|
required => 1, |
|
|
default => 'find', # FIXME first step, should be optional |
|
|
); |
|
|
|
|
|
=head2 as_markup |
|
|
|
|
|
Simpliest possible dispatch example |
|
|
|
|
|
=cut |
|
|
|
|
|
sub as_markup { |
|
|
my ($self) = @_; |
|
|
my $to = $self->action; |
|
|
$self->$to; |
|
|
} |
|
|
|
|
|
# step 1 find |
|
|
|
|
13 |
has from => ( |
has from => ( |
14 |
is => 'rw', |
is => 'rw', |
15 |
isa => 'Str', |
isa => 'Str', |
25 |
); |
); |
26 |
|
|
27 |
|
|
28 |
sub find { |
sub as_markup { |
29 |
my ($self) = @_; |
my ($self) = @_; |
30 |
|
|
31 |
$self->add_css(qq| |
$self->add_css(qq| |
57 |
my $nr = $change_number++; |
my $nr = $change_number++; |
58 |
strip(qq| |
strip(qq| |
59 |
<span class="modify"> |
<span class="modify"> |
60 |
<input type="hidden" name="change_path" value="$path"> |
<input type="hidden" name="path" value="$path"> |
61 |
<input type="hidden" name="change_line" value="$line"> |
<input type="hidden" name="line" value="$line"> |
62 |
<input type="text" name="change_modification" value="$to" size=$len> |
<input type="text" name="modification" value="$to" size=$len> |
63 |
<input type="checkbox" name="change_selected" value=$nr checked> |
<input type="checkbox" name="selected" value=$nr checked> |
64 |
</span> |
</span> |
65 |
|) |
|) |
66 |
}egs; |
}egs; |
70 |
|
|
71 |
$self->title( $self->from . ' => ' . $self->to ); |
$self->title( $self->from . ' => ' . $self->to ); |
72 |
|
|
|
my $preserve; |
|
|
|
|
|
$self->step('modify'); |
|
|
$preserve .= qq|<input type="hidden" name="$_" value="| . $self->$_ . qq|">| foreach ( qw/step action_on from to/ ); |
|
|
|
|
73 |
return qq| |
return qq| |
74 |
<form class="modify" method="post"> |
<form class="modify" action="/Frey::Class::Refactor::Modify/as_markup" method="post"> |
|
$preserve |
|
75 |
$grep |
$grep |
76 |
<input type="submit" name="action" |
<input type="submit" name="action" value="Modify"> |
77 |
</form> |
</form> |
78 |
|; |
|; |
79 |
} |
} |
80 |
|
|
|
# step 2 modify |
|
|
|
|
|
has change_selected => ( |
|
|
is => 'rw', |
|
|
isa => 'ArrayRef[Str]', |
|
|
default => sub {}, |
|
|
); |
|
|
|
|
|
has change_path => ( |
|
|
is => 'rw', |
|
|
isa => 'ArrayRef[Str]', |
|
|
default => sub {}, |
|
|
); |
|
|
|
|
|
has change_line => ( |
|
|
is => 'rw', |
|
|
isa => 'ArrayRef[Str]', |
|
|
default => sub {}, |
|
|
); |
|
|
|
|
|
has change_modification => ( |
|
|
is => 'rw', |
|
|
isa => 'ArrayRef[Str]', |
|
|
default => sub {}, |
|
|
); |
|
|
|
|
|
sub modify { |
|
|
my ($self) = @_; |
|
|
|
|
|
my $dump; |
|
|
$dump->{$_} = $self->$_ foreach ( qw/change_selected change_path change_line change_modification/ ); |
|
|
|
|
|
return $self->html_dump( $dump ); |
|
|
} |
|
|
|
|
81 |
1; |
1; |