NAME
HTML::Fraction - Encode fractions as HTML entities
SYNOPSIS
my $fraction = HTML::Fraction->new;
print $fraction->tweak($html);
DESCRIPTION
The HTML::Fraction encodes fractions as HTML entities. Some very common fractions have HTML entities (eg 1/2 is ½). Additionally, common vulgar fractions have Unicode characters (eg 1/5 is ⅕). This module takes a string and encodes fractions as entities: this means that it will look pretty in the browser.
Fractions that are supported:
1/4, 1/2, 3/4, 0/3, 1/3, 2/3, 1/5, 2/5, 3/5,
4/5, 1/6, 5/6, 1/7, 1/8, 3/8, 5/8, 7/8, 1/9, 1/10
Fractions may be in the string in the form numerator slash denominator (1/5) or in decimal form (0.5). Numbers must be equal to the fraction to two decimal places. This module supports converting whole and fractional decimal numbers (e.g. 2.25.)
For sanity the decimal 0 will not be turned into the unicode for 0/3
CONSTRUCTOR
new
The constructor takes no arguments:
my $fraction = HTML::Fraction->new;
METHODS
tweak
Encode the fractions in the HTML as HTML entities:
print $fraction->tweak($html);
tweak_frac
Encode the fractions that are in the form "1/3" or "5/6" in the HTML as HTML entities, but not decimal fractions of the form "0.5".
tweak_dec
Encode the fractions that are in the form "0.5" or "0.5" in the HTML as HTML entities, but not fractions of the form "1/2" or "1/3".
AUTHOR
Leon Brocard, <acme@astray.com>. Mark Fowler <mark@twoshortplanks> added some code, and probably some bugs.
COPYRIGHT
Copyright (C) 2005, 2012 Leon Brocard
This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
BUGS
We don't perform normalisation of the denominator and numerator so "4/6" is not converted like 2/3 is. This is intentional.
2.25 doesn't render to the same thing as 2 1/2 (the latter has a space between the digit 2 and the fraction.)
1/7 doesn't represent as a reoccuring pattern of digits in decimal therefore we don't check that digits after 0.14285714 are correct, and assume that they are.