diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-05-22 03:44:00 +0200 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2018-06-28 22:41:57 +0200 |
commit | 94f0bad3fb3158c99668550fb0640fcd89b4bf18 (patch) | |
tree | 9e26894f4174c6da761928193eec2533d0a2be90 /Bugzilla/Quantum | |
parent | 6ddd8c019a3b416603690e6254966b855e4d05fa (diff) | |
download | bugzilla-94f0bad3fb3158c99668550fb0640fcd89b4bf18.tar.gz bugzilla-94f0bad3fb3158c99668550fb0640fcd89b4bf18.tar.xz |
start adding bzapi
Diffstat (limited to 'Bugzilla/Quantum')
-rw-r--r-- | Bugzilla/Quantum/CGI.pm | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/Bugzilla/Quantum/CGI.pm b/Bugzilla/Quantum/CGI.pm index 9874280bc..353d8651e 100644 --- a/Bugzilla/Quantum/CGI.pm +++ b/Bugzilla/Quantum/CGI.pm @@ -22,30 +22,20 @@ use Sys::Hostname; use English qw(-no_match_vars); our $C; +my %SEEN; sub load_all { my ($class, $r) = @_; - my $stash = Package::Stash->new(__PACKAGE__); - foreach my $script (glob '*.cgi') { - my ($name, $method) = $class->_load_cgi($script); - $stash->add_symbol("&$name" => $method); - $r->any("/$script")->to("CGI#$name"); + foreach my $file (glob '*.cgi') { + my $name = _file_to_method($file); + $class->load_one($name, $file); + $r->any("/$file")->to("CGI#$name"); } } -sub _file_to_method { - my ($name) = @_; - $name =~ s/\./_/s; - $name =~ s/\W+/_/gs; - return $name; -} - -my %SEEN; - -sub _load_cgi { - my ($class, $file) = @_; - my $name = _file_to_method($file); +sub load_one { + my ($class, $name, $file) = @_; my $package = __PACKAGE__ . "::$name", my $inner_name = "_$name"; my $content = read_text( catfile( bz_locations->{cgi_path}, $file ) ); @@ -84,7 +74,10 @@ sub _load_cgi { CGI::initialize_globals(); }; }; - return ($name, subname($name, $wrapper)); + + no strict 'refs'; ## no critic (strict) + *{$name} = subname($name, $wrapper); + return 1; } sub _ENV { @@ -148,4 +141,12 @@ sub _STDIN { return Mojo::Asset::File->new->add_chunk( $stdin->slurp ); } +sub _file_to_method { + my ($name) = @_; + $name =~ s/\./_/s; + $name =~ s/\W+/_/gs; + return $name; +} + + 1; |