BusyBird

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

          This is an experimental feature for now.

0.10    2014-10-15
        [ENHANCEMENTS]
        - Web API: add "only_statuses" query parameter to GET /timelines/{timeline}/statues.json
        - Add per-timeline config params: "acked_statuses_load_count" and "default_level_threshold".
        - Now it warns you when you give unknown config parameters.
        [DOCUMENTATION]
        - BusyBird::SafeData is now public class. End-users are free to use it.
        [PACKAGING]
        - Drop dependency on Test::Exception. Use Test::Fatal instead.
        - Add dependency on EV. This is necessary to avoid a bug in autovivification
          ( https://rt.cpan.org/Public/Bug/Display.html?id=99458 )

0.09    2014-09-28
        [BUG FIX]
        - Now it is more tolerant of statuses with unusual structure.
        - Now Text::Xslate's warnings are reported through BusyBird::Log.
        [API CHANGE]
        - The default attached_image_urls_builder now ignores Twitter Entities
          whose 'type' field is set to NOT 'photo'. This change makes it robust

META.json  view on Meta::CPAN

            "Plack::Builder" : "0",
            "Plack::Request" : "0",
            "Plack::Runner" : "0",
            "Pod::Usage" : "0",
            "Router::Simple" : "0",
            "SQL::Maker" : "1.19",
            "SQL::QueryMaker" : "0.03",
            "Scalar::Util" : "1.24",
            "Storable" : "2.27",
            "Test::Builder" : "0",
            "Test::Fatal" : "0.006",
            "Test::More" : "0.98",
            "Text::Xslate" : "1.60",
            "Tie::IxHash" : "0",
            "Time::HiRes" : "1.9720",
            "Try::Tiny" : "0.10",
            "Twiggy" : "0",
            "URI::Escape" : "0",
            "autovivification" : "0.14",
            "parent" : "0",
            "perl" : "v5.8.0",

META.json  view on Meta::CPAN

            "Encode" : "0",
            "File::Temp" : "0.19",
            "FindBin" : "0",
            "HTML::TreeBuilder" : "5",
            "HTML::TreeBuilder::XPath" : "0.12",
            "HTTP::Request" : "6.00",
            "JSON" : "0",
            "Plack::Test" : "0",
            "Storable" : "0",
            "Test::Builder" : "0",
            "Test::Fatal" : "0",
            "Test::Memory::Cycle" : "1.04",
            "Test::MockObject" : "1.09",
            "Test::MockObject::Extends" : "0",
            "Test::More" : "0.98",
            "Test::Warn" : "0.24"
         }
      }
   },
   "release_status" : "stable",
   "resources" : {

META.yml  view on Meta::CPAN

  Encode: '0'
  File::Temp: '0.19'
  FindBin: '0'
  HTML::TreeBuilder: '5'
  HTML::TreeBuilder::XPath: '0.12'
  HTTP::Request: '6.00'
  JSON: '0'
  Plack::Test: '0'
  Storable: '0'
  Test::Builder: '0'
  Test::Fatal: '0'
  Test::Memory::Cycle: '1.04'
  Test::MockObject: '1.09'
  Test::MockObject::Extends: '0'
  Test::More: '0.98'
  Test::Warn: '0.24'
configure_requires:
  Module::Build: '0.42'
  Module::Build::Prereqs::FromCPANfile: '0.02'
dynamic_config: 1
generated_by: 'Module::Build version 0.4205, CPAN::Meta::Converter version 2.141170'

META.yml  view on Meta::CPAN

  Plack::Builder: '0'
  Plack::Request: '0'
  Plack::Runner: '0'
  Pod::Usage: '0'
  Router::Simple: '0'
  SQL::Maker: '1.19'
  SQL::QueryMaker: '0.03'
  Scalar::Util: '1.24'
  Storable: '2.27'
  Test::Builder: '0'
  Test::Fatal: '0.006'
  Test::More: '0.98'
  Text::Xslate: '1.60'
  Tie::IxHash: '0'
  Time::HiRes: '1.9720'
  Try::Tiny: '0.10'
  Twiggy: '0'
  URI::Escape: '0'
  autovivification: '0.14'
  parent: '0'
  perl: v5.8.0

cpanfile  view on Meta::CPAN

requires 'List::Util'=> '1.24';
requires 'Plack' => '0';
requires 'Plack::Builder'=> '0';
requires 'Plack::Request'=> '0';
requires 'Plack::Runner' => '0';
requires 'Pod::Usage' => "0";
requires 'Router::Simple'=> '0';
requires 'Scalar::Util'=> '1.24';
requires 'Storable'=> '2.27';
requires 'Test::Builder'=> '0';
requires 'Test::Fatal'=> '0.006';
requires 'Test::More'=> '0.98';
requires 'Text::Xslate'=> '1.60';
requires 'Tie::IxHash'=> '0';
requires 'Time::HiRes'=> '1.9720';
requires 'Try::Tiny'=> '0.10';
requires 'autovivification'=> '0.14';
requires 'JavaScript::Value::Escape'=> '0';
requires 'Cache::Memory::Simple'=> '1.01';
requires 'URI::Escape'=> '0';
requires 'sort'=> '0';

cpanfile  view on Meta::CPAN

requires 'SQL::QueryMaker' => '0.03';
requires 'Future::Q' => '0.040';
requires 'POSIX' => 0;
requires 'Data::UUID' => 0;
requires 'Data::Diver' => 0;
requires 'Twiggy' => 0;

on 'test' => sub {
    requires 'Test::More'=> '0.98';
    requires 'Test::Builder'=> '0';
    requires 'Test::Fatal';
    requires 'Test::Memory::Cycle'=> '1.04';
    requires 'Test::MockObject'=> '1.09';
    requires 'Test::MockObject::Extends' => 0;
    requires 'Test::Warn'=> '0.24';
    requires 'DateTime' => 0;
    requires 'DateTime::Duration' => 0;
    requires 'BusyBird::DateTime::Format' => "0.04";
    requires 'FindBin'=> '0';
    requires 'File::Temp' => '0.19';
    requires 'HTTP::Request'=> '6.00';

lib/BusyBird/Test/StatusStorage.pm  view on Meta::CPAN

package BusyBird::Test::StatusStorage;
use v5.8.0;
use strict;
use warnings;
use Exporter 5.57 qw(import);
use DateTime;
use DateTime::Duration;
use Test::More;
use Test::Builder;
use Test::Fatal 0.006 qw(dies_ok);
use BusyBird::DateTime::Format;
use BusyBird::StatusStorage;
use BusyBird::Util ();
use Carp;
use utf8;
use Encode qw(encode_utf8);

our %EXPORT_TAGS = (
    storage => [
        qw(test_storage_common test_storage_ordered test_storage_truncation test_storage_missing_arguments),

t/Main.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Test::Memory::Cycle;
use lib "t";
use testlib::Timeline_Util qw(status sync);
use testlib::Main_Util qw(create_main);
use BusyBird::Test::StatusStorage qw(:status);
use BusyBird::StatusStorage::SQLite;
use BusyBird::Timeline;
use BusyBird::Log;
use utf8;

t/StatusStorage_SQLite.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Fatal;
use BusyBird::Test::StatusStorage qw(:storage :status);
use File::Temp 0.19;
use Test::MockObject::Extends;
use DBI;
use lib "t";
use testlib::Timeline_Util qw(sync status test_sets);
use testlib::StatusStorage::CrazyStatus qw(test_storage_crazy_statuses);

BEGIN {
    use_ok('BusyBird::StatusStorage::SQLite');

t/Timeline.t  view on Meta::CPAN

use strict;
use warnings;
use lib "t";
use Test::More;
use Test::Builder;
use Test::Fatal qw(exception);
use Test::MockObject;
use BusyBird::Test::StatusStorage qw(:status test_cases_for_ack);
use testlib::Timeline_Util qw(sync status test_sets test_content *LOOP *UNLOOP);
use Test::Memory::Cycle;
use BusyBird::DateTime::Format;
use BusyBird::Log;
use DateTime;
use DateTime::Duration;
use Storable qw(dclone);
use utf8;

t/Util_sort_statuses.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Builder;
use Test::Fatal;
use DateTime;
use BusyBird::DateTime::Format;
use Storable qw(dclone);
use lib "t";
use testlib::CrazyStatus qw(crazy_statuses);

BEGIN {
    use_ok('BusyBird::Util', 'sort_statuses');
}

t/Util_split.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Fatal;
use utf8;

BEGIN {
    use_ok('BusyBird::Util', 'split_with_entities');
}

{
    note("--- for example");
    my $text = 'aaa --- bb ---- ccaa -- ccccc';
    my $entities = {

xt/Runner.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Fatal;
use File::HomeDir::Test;
use File::HomeDir;
use File::Spec;

BEGIN {
    use_ok("BusyBird::Runner");
}

my $EXP_CONFIG_DIR = File::Spec->catdir(File::HomeDir->my_home, ".busybird");
my $EXP_DEFAULT_CONFIG = File::Spec->catfile($EXP_CONFIG_DIR, "config.psgi");



( run in 3.008 seconds using v1.01-cache-2.11-cpan-54e63673c56 )