autobox::Numeric::Bytes - ActiveSupport equivalent to Perl numeric variables


autobox-Numeric-Bytes documentation Contained in the autobox-Numeric-Bytes distribution.

Index


Code Index:

NAME

Top

autobox::Numeric::Bytes - ActiveSupport equivalent to Perl numeric variables

SYNOPSIS

Top

    use autobox::Numeric::Bytes;

    print 2->byte;      # 2
    print 2->kilobyte;  # 2048
    print 3->megabytes; # 3145728
    print 2->exabyte;   # 2305843009213693952

DESCRIPTION

Top

autobox::Numeric::Bytes is an autobox module to add Byte-related methods to core integer values by using constant overloading. Inspired by ActiveSupport (Rails) Core extensions to Numeric values.

METHODS

Top

bytes, byte
kilobytes, kilobyte
megabytes, megabyte
gigabytes, gigabyte
terabytes, terabyte
petabytes, petabyte
exabytes, exabyte

SEE ALSO

Top

http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Numeric/Bytes.html

autobox, bigint

AUTHOR

Top

HIROSE Masaaki, <hirose31@gmail.com>

BUGS

Top

Please report any bugs or feature requests to bug-autobox-numeric-bytes@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Top


autobox-Numeric-Bytes documentation Contained in the autobox-Numeric-Bytes distribution.

package autobox::Numeric::Bytes;

use strict;
use warnings;
use Carp;

use bigint;
use base qw(autobox);

our $VERSION = '0.02';

sub import {
    shift->SUPER::import(NUMBER => 'autobox::Numeric::Bytes::Impl', @_);
}

package # hide from pause
    autobox::Numeric::Bytes::Impl;

sub bytes {
    return $_[0];
}
*byte = \&bytes;

sub kilobytes {
    return $_[0] * 1024;
}
*kilobyte = \&kilobytes;

sub megabytes {
    return $_[0] * 1024 * 1024;
}
*megabyte = \&megabytes;

sub gigabytes {
    return $_[0] * 1024 * 1024 * 1024;
}
*gigabyte = \&gigabytes;

sub terabytes {
    return $_[0] * 1024 * 1024 * 1024 * 1024;
}
*terabyte = \&terabytes;

sub petabytes {
    return $_[0] * 1024 * 1024 * 1024 * 1024 * 1024;
}
*petabyte = \&petabytes;

sub exabytes {
    return $_[0] * 1024 * 1024 * 1024 * 1024 * 1024 * 1024;
}
*exabyte = \&exabytes;

1;

__END__