Finance-Bitcoin-Feed

 view release on metacpan or  search on metacpan

lib/Finance/Bitcoin/Feed/Site/BitStamp/Socket.pm  view on Meta::CPAN

package Finance::Bitcoin::Feed::Site::BitStamp::Socket;

use strict;
use warnings;
use parent qw(Finance::Bitcoin::Feed::Pusher);
use Scalar::Util qw(weaken);

sub new {
    my $self = shift->SUPER::new(channels => [qw/live_trades/]);
    $self->{owner} = shift;

    #weaken it to prevent from crossing reference
    weaken($self->{owner});
    return $self;
}

sub trade {
    my $self = shift;
    my $data = shift;
    $self->{owner}->emit('data_out', 0, "BTCUSD", $data->{price});
    return;
}

lib/Finance/Bitcoin/Feed/Site/BtcChina/Socket.pm  view on Meta::CPAN

package Finance::Bitcoin::Feed::Site::BtcChina::Socket;

use JSON;
use Mojo::Base 'Mojo::Transaction::WebSocket';
use Scalar::Util qw(weaken);
has 'owner';
has 'ping_interval';
has 'ping_timeout';
has 'last_ping_at';
has 'last_pong_at';
has 'timer';

sub configure {
    my $self  = shift;
    my $owner = shift;
    $self->owner($owner);
    weaken($self->{owner});

    # call parse when receive text event
    $self->on(
        text => sub {
            my ($self, $message) = @_;
            $self->parse($message);
        });

    ################################################
    # setup events

lib/Finance/Bitcoin/Feed/Site/CoinSetter/Socket.pm  view on Meta::CPAN

package Finance::Bitcoin::Feed::Site::CoinSetter::Socket;
use JSON;
use Scalar::Util qw(weaken);

use Mojo::Base 'Mojo::Transaction::WebSocket';

has 'owner';

sub configure {
    my $self  = shift;
    my $owner = shift;
    $self->owner($owner);
    weaken($self->{owner});

    # call parse when receive text event
    $self->on(
        text => sub {
            my ($self, $message) = @_;
            $self->parse($message);
        });

    ################################################
    # setup events

lib/Finance/Bitcoin/Feed/Site/LakeBtc/Socket.pm  view on Meta::CPAN

package Finance::Bitcoin::Feed::Site::LakeBtc::Socket;

use JSON;
use Mojo::Base 'Mojo::Transaction::WebSocket';
use Scalar::Util qw(weaken);
has 'owner';

sub configure {
    my $self  = shift;
    my $owner = shift;
    $self->owner($owner);
    weaken($self->{owner});

    # call parse when receive text event
    $self->on(
        json => sub {
            my ($self, $message) = @_;
            $message = $message->[0];
            my $command = shift @$message;
            $self->emit($command, $message);
        });



( run in 0.286 second using v1.01-cache-2.11-cpan-1f129e94a17 )