aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-06-09 10:24:48 +0200
committerAnton Khirnov <anton@khirnov.net>2021-06-09 10:34:40 +0200
commit8c5b0c33ebb1bb49bf3375fcdb9940abd64c386e (patch)
tree1ccf45ef7335db65a2d651012e2d927b366a7643
parentc8c6e5a883cb68a2dae8aeccee287bdddb8a6811 (diff)
Store the patterns in a hash.
More readable and easier to extend.
-rw-r--r--reselect19
1 files changed, 11 insertions, 8 deletions
diff --git a/reselect b/reselect
index fd2193d..1a7d8e2 100644
--- a/reselect
+++ b/reselect
@@ -97,14 +97,8 @@ sub build_overlays {
sub on_action {
my ($self, $cmd) = @_;
- my $pattern;
- if ($cmd eq 'url') {
- $pattern = $re_url;
- } elsif ($cmd eq 'git_hash') {
- $pattern = $re_git_hash;
- } elsif ($cmd eq 'message_id') {
- $pattern = $re_message_id;
- } else {
+ my $pattern = $self->{patterns}->{$cmd};
+ if (!defined($pattern)) {
return;
}
@@ -277,4 +271,13 @@ sub on_start {
$self->{launchsingle} = ($self->my_resource("launchsingle") ne "false");
$self->{descending} = ($self->my_resource("order") eq "descending");
$self->{url_picker} = ();
+
+ my $patterns = {
+ url => $re_url,
+ git_hash => $re_git_hash,
+ message_id => $re_message_id,
+ };
+
+ $self->{patterns} = $patterns;
+
}