OpenResty::Handler::Version - The version handler for OpenResty


OpenResty documentation Contained in the OpenResty distribution.

Index


Code Index:

NAME

Top

OpenResty::Handler::Version - The version handler for OpenResty

SYNOPSIS

Top

    use OpenResty::Handler::Version;

    $data = OpenResty::Handler::Version->GET_version($openresty, \@url_bits);

DESCRIPTION

Top

This OpenResty handler class implements the Version API, i.e., the /=/version interface.

Typically it returns something like this

"0.3.9"

More detailed information can be obtained by GET /=/version/more:

"OpenResty 0.3.9 (revision 1682) with the PgFarm (op901000) backend.\nCopyright (c) 2007-2008 by Yahoo! China EEEE Works, Alibaba Inc.\n"

METHODS

Top

$data = OpenResty::Handler::Version->GET_version($openresty, \@url_bits)

AUTHOR

Top

Agent Zhang (agentzh) <agentzh@yahoo.cn>

SEE ALSO

Top

OpenResty::Handler::View, OpenResty::Handler::Role, OpenResty::Handler::Action, OpenResty::Handler::Feed, OpenResty::Handler::Model, OpenResty::Handler::Captcha, OpenResty::Handler::Login, OpenResty.


OpenResty documentation Contained in the OpenResty distribution.

package OpenResty::Handler::Version;

use strict;
use warnings;

use FindBin;
use OpenResty;
use OpenResty::Util;
use File::Spec;
use File::ShareDir qw( module_dir );

use base 'OpenResty::Handler::Base';

__PACKAGE__->register('version');

sub requires_acl { undef }

sub level2name {
    qw< version version_verbose >[$_[-1]]
}

our $Revision;

sub trim {
    (my $s = $_[0]) =~ s/\s+//gs;
    $s;
}

sub GET_version { OpenResty->version }

sub GET_version_verbose {
    my ($self, $openresty, $bits) = @_;
    if (!defined $Revision) {
        my $path = "$FindBin::Bin/../share/openresty_revision";
        unless (-f $path) {
            my $dir;
            eval {
                $dir = module_dir('OpenResty');
            };
            if ($@) {$Revision = 'Unknown'; }
            else {
                $path = File::Spec->catfile(module_dir('OpenResty'), 'openresty_revision');
            }
        }
        my $s;
        eval {
            $s = slurp($path);
        };
        if ($@) { $Revision = 'Unknown'; }
        else { $Revision ||= trim($s) || 'Unknown'; }
    }
    my $backend = $OpenResty::BackendName;
    if ($backend eq 'PgFarm') {
        my $host = $OpenResty::Backend::PgFarm::Host;
        if ($host =~ /[-\w]+/) {
            $host = $&;
        }
        $backend .= " ($host)";
    }
    my $ver = OpenResty->version;
    return "OpenResty $ver (revision $Revision) with the $backend backend.\nCopyright (c) 2007-2008 by Yahoo! China EEEE Works, Alibaba Inc.\n";
}

1;
__END__