use Lingua::AtD;
# Create a new service proxy
my $atd = Lingua::AtD->new( {
host => 'service.afterthedeadline.com',
port => 80,
throttle => 2,
});
# Run spelling and grammar checks. Returns a Lingua::AtD::Response object.
my $doc_check = $atd->check_document('Text to check.');
# Loop through reported document errors.
foreach my $atd_error ($doc_check->get_errors()) {
# Do something with...
print "Error string: ", $atd_error->get_string(), "\n";
}
# Run only grammar checks. Essentially the same as
# check_document(), sans spell-check.
my $grmr_check = $atd->check_grammar('Text to check.');
# Loop through reported document errors.
foreach my $atd_error ($grmr_check->get_errors()) {
# Do something with...
print "Error string: ", $atd_error->get_string(), "\n";
}
# Get statistics on a document. Returns a Lingua::AtD::Scores object.
my $atd_scores = $atd->stats('Text to check.');
# Loop through reported document errors.
foreach my $atd_metric ($atd_scores->get_metrics()) {
# Do something with...
print $atd_metric->get_type(), "/", $atd_metric->get_key(),
" = ", $atd_metric->get_value(), "\n";
}
Lingua::AtD provides an OO-style interface for After the Deadline's grammar and spell checking services.
- new
-
This constructor takes four arguments, all optional. The sample below shows the defaults.
$atd = Lingua::AtD->new({ api_key => 'Lingua-AtD', host => 'service.afterthedeadline.com', port => 80, throttle => 2, });
- api_key
-
API key used to access the service. Defaults to this package's name plus 32 hex digits (i.e. Lingua-AtD-7b8391f59fd9fa4246b2c69cd8793b88). See the API Documentation for requirements. The default will work, and so far as I know will cause no problems.
- host
-
Host for the AtD service. Defaults to the public host: service.afterthedeadline.com. AtD's software is open source, and it's entirely possible to download and set up your own private AtD service. See the AtD Project website for details.
- port
-
Port for the AtD service. Defaults to the standard http port: 80. AtD's software is open source, and it's entirely possible to download and set up your own private AtD service. See the AtD Project website for details.
- throttle
-
There's no API documentation stating such, but testing has shown that AtD service throws a 503 error if called too quickly. This specifies the number of seconds to wait between calls. The default is 2 and seems to work find.
- get_api_key
-
$atd->get_api_key();
Returns the API Key used to access the AtD service.
- get_host
-
$atd->get_host();
Returns the host of the AtD service.
- get_port
-
$atd->get_port();
Returns the port of the AtD service.
- get_service_url
-
$atd->get_service();
Returns a formatted URL for the AtD service.
- get_throttle
-
$atd->get_throttle();
Returns the number of seconds that must pass between calls to the AtD service.
- set_throttle
-
$atd->set_throttle(3);
Sets the number of seconds that must pass between calls to the AtD service.
- check_document
-
$atd_results = $atd->check_document('Some text stringg in badd nneed of prufreding.');
Invokes the document check service for some string of text and return a Lingua::AtD::Results object.
From the API Documentation: Checks a document and returns errors and suggestions
- check_grammar
-
$atd_results = $atd->check_grammar('Some text stringg in badd nneed of prufreding.');
Invokes the grammar check service for some string of text and return a Lingua::AtD::Results object. This differs from check_document in that it only checks grammar and style, not spelling.
From the API Documentation: Checks a document (sans spelling) returns errors and suggestions
- stats
-
$atd_scores = $atd->stats('Some text stringg in badd nneed of prufreding.');
Invokes the stats service for some string of text and return a Lingua::AtD::Scores object. This differs from check_document in that it only checks grammar and style, not spelling.
From the API Documentation: Returns statistics about the writing quality of a document
No known bugs.
Wouldn't it be kind of funny if I had a ton of spelling/grammar/style errors in my documentation? Yeah, it would. And I bet there are. Shame on me for not running my documentation through my own module.
See the API Documentation at After the Deadline's website.
NB: In the API Documentation, there is a fourth service called /info.slp. I do not plan to implement this. Each Lingua::AtD::Error supplies an informative URL when one is available. I see no reason to call this independently, but feel free to submit a patch if you find a reason.