BusyBird
view release on metacpan or search on metacpan
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
"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",
"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" : {
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'
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
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';
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),
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 )