Twitter::API::Trait::NormalizeBooleans - Normalize Booleans
version 0.0106
use Twitter::API; my $client = Twitter::API->new_with_traits( traits => [ qw/ApiMethods NormalizeBooleans/ ], %other_new_options ); my ( $r, $c ) = $client->home_timeline({ trim_user => 1 }); say $c->http_request->uri; # output: https://api.twitter.com/1.1/statuses/home_timeline.json?trim_user=true
Twitter has a strange concept of boolean values. Usually, the API accepts t, true, or 1 for true. Sometimes it accepts f, false, or 0 for false. But then you have strange cases like the include_email parameter accepted for authorized applications by the verify_credentials endpoint. It only accepts true. Worse, for some boolean values, passing f, false, or 0 all work as if you passed true. For those values, false means not including the parameter at all.
t
true
1
f
false
0
include_email
verify_credentials
So, this trait attempts to normalize booleans by transforming any perl truthy value to the Twitter API's preference, true. It transform falsey values to false. And then it removes false parameters that the API always treats as true.
You're welcome.
Marc Mims <marc@questright.com>
This software is copyright (c) 2015-2016 by Marc Mims.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Twitter::API, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Twitter::API
CPAN shell
perl -MCPAN -e shell install Twitter::API
For more information on module installation, please visit the detailed CPAN module installation guide.