Chart::OFC2::HBarValues - OFC2 values for horizontal bar charts object


Chart-OFC2 documentation Contained in the Chart-OFC2 distribution.

Index


Code Index:

NAME

Top

Chart::OFC2::HBarValues - OFC2 values for horizontal bar charts object

SYNOPSIS

Top

DESCRIPTION

Top

PROPERTIES

Top

    has 'values' => ( is => 'rw', isa => 'ArrayRef', );

METHODS

Top

new()

Object constructor.

_new_from_arrayref

Top

Allow object creation by coerce of ArrayRef.

TO_JSON()

Returns ArrayRef that is possible to give to encode_json() function.

NOTE: values are reversed. This is done so that the y_axis-labels> match to the values properly.

AUTHOR

Top

Jozef Kutej


Chart-OFC2 documentation Contained in the Chart-OFC2 distribution.
package Chart::OFC2::HBarValues;

use Moose;
use Moose::Util::TypeConstraints;
use MooseX::StrictConstructor;

use Carp::Clan 'croak';
use List::MoreUtils 'any';

our $VERSION = '0.07';

coerce 'Chart::OFC2::HBarValues'
    => from 'ArrayRef'
    => via { Chart::OFC2::HBarValues->_new_from_arrayref( $_) };

has 'values'  => ( is => 'rw', isa => 'ArrayRef', 'required' => 1);


sub _new_from_arrayref {
    my $class           = shift;
    my $arrayref_values = shift;
    
    croak 'pass ArrayRef as argument'
        if not ref $arrayref_values ne 'ArrayRef';
    
    my @values;
    foreach my $value (@{$arrayref_values}) {
        if (ref $value eq 'HASH') {
            push @values,  $value;
        }
        else {
            push @values,  { 'right' => $value };
        }
    }
    
    return $class->new(
        'values'  => \@values,
    );
}

sub TO_JSON {
    my $self = shift;
    
    return [ reverse @{$self->values} ];
}

__PACKAGE__->meta->make_immutable;

1;


__END__