App-BPOMUtils-NutritionFacts
view release on metacpan or search on metacpan
lib/App/BPOMUtils/NutritionFacts.pm view on Meta::CPAN
summary => "$args{$key}{summary} (value to be used in nutrition facts table instead the lab test result)",
schema => $args{$key}{schema},
};
$res{"${key}_nufact_note"} = {
schema => "str*",
};
}
%res;
}
$SPEC{bpom_show_nutrition_facts} = {
v => 1.1,
summary => 'Render BPOM-compliant nutrition fact table (ING - informasi nilai gizi) in various formats',
args => {
name => {schema=>'str*'},
output_format => {
summary => 'Pick an output format for the nutrition fact',
schema => ['str*', {in=>\@output_formats}],
description => <<'_',
`vertical_text_table` is the default. The /(vertical)?.*table/ formats presents
the information in a table, while the /linear/ formats presents the information
in a paragraph.
_
default => 'vertical_text_table',
cmdline_aliases => {
f=>{},
},
tags => ['category:output'],
},
browser => {
summary => 'View output HTML in browser instead of returning it',
schema => 'true*',
tags => ['category:output'],
},
color => {
schema => ['str*', in=>[qw/always auto never/]],
default => 'auto',
tags => ['category:output'],
},
_add_real_and_nufact_args(
fat => {summary => 'Total fat, in g/100g' , schema => 'ufloat*', req=>1},
saturated_fat => {summary => 'Saturated fat, in g/100g' , schema => 'ufloat*', req=>1},
cholesterol => {summary => 'Cholesterol, in mg/100g' , schema => 'ufloat*'},
protein => {summary => 'Protein, in g/100g' , schema => 'ufloat*', req=>1},
carbohydrate => {summary => 'Total carbohydrate, in g/100g' , schema => 'ufloat*', req=>1},
sugar => {summary => 'Total sugar, in g/100g' , schema => 'ufloat*', req=>1},
sodium => {summary => 'Sodium, in mg/100g' , schema => 'ufloat*', req=>1, cmdline_aliases=>{salt=>{}}},
va => {summary => 'Vitamin A, in mcg/100g (all-trans-)retinol', schema => 'ufloat*'},
vd => {summary => 'Vitamin D, in mcg', schema => 'ufloat*'},
ve => {summary => 'Vitamin E, in mg alpha-TE (tocopherol-equivalent)', schema => 'ufloat*'},
vk => {summary => 'Vitamin K, in mcg', schema => 'ufloat*'},
vb1 => {summary => 'Vitamin B1, in mg/100g', schema => 'ufloat*'},
vb2 => {summary => 'Vitamin B2, in mg/100g', schema => 'ufloat*'},
vb3 => {summary => 'Vitamin B3, in mg/100g', schema => 'ufloat*'},
vb5 => {summary => 'Vitamin B5 (pantothenic acid), in mg/100g', schema => 'ufloat*'},
vb6 => {summary => 'Vitamin B6, in mg/100g', schema => 'ufloat*'},
folate => {summary => 'Folate (vitamin B9), in mcg/100g', schema => 'ufloat*'},
vb12 => {summary => 'Vitamin B12, in mcg/100g', schema => 'ufloat*'},
biotin => {summary => 'Biotin, in mcg/100g', schema => 'ufloat*'},
choline => {summary => 'Choline, in mg/100g', schema => 'ufloat*'},
vc => {summary => 'Vitamin C, in mg/100g', schema => 'ufloat*'},
ca => {summary => 'Calcium, in mg/100g', schema => 'ufloat*'},
phosphorus => {summary => 'Phosphorus, in mg/100g', schema => 'ufloat*'},
mg => {summary => 'Magnesium, in mg/100g', schema => 'ufloat*'},
k => {summary => 'Potassium, in mg/100g', schema => 'ufloat*'},
mn => {summary => 'Manganese, in mcg/100g', schema => 'ufloat*'},
cu => {summary => 'Copper, in mcg/100g', schema => 'ufloat*'},
cr => {summary => 'Chromium, in mcg/100g', schema => 'ufloat*'},
fe => {summary => 'Iron, in mg/100g', schema => 'ufloat*'},
iodium => {summary => 'Iodium, in mcg/100g', schema => 'ufloat*'},
zn => {summary => 'Zinc, in mg/100g', schema => 'ufloat*'},
se => {summary => 'Selenium, in mcg/100g', schema => 'ufloat*'},
fluorine => {summary => 'Fluorine, in mg/100g', schema => 'ufloat*'},
),
serving_size => {summary => 'Serving size, in g' , schema => 'ufloat*', req=>1},
package_size => {summary => 'Packaging size, in g' , schema => 'ufloat*', req=>1},
has_claims => {summary => 'Whether food is registered as having claims', schema=>'bool*'},
},
examples => [
{
summary => 'An example, in linear text format (color/emphasis is shown with markup)',
args => {fat=>0.223, saturated_fat=>0.010, protein=>0.990, carbohydrate=>13.113, sugar=>7.173, sodium=>0.223, serving_size=>175, package_size=>20, output_format=>"raw_linear", color=>"never"},
test => 0,
},
{
summary => 'An example, in raw_linear format (just like linear_text but with no border)',
args => {fat=>0.223, saturated_fat=>0.010, protein=>0.990, carbohydrate=>13.113, sugar=>7.173, sodium=>0.223, serving_size=>175, package_size=>20, output_format=>"linear_text", color=>"never"},
test => 0,
},
{
summary => 'The same example in vertical HTML table format',
args => {fat=>0.223, saturated_fat=>0.010, protein=>0.990, carbohydrate=>13.113, sugar=>7.173, sodium=>0.223, serving_size=>175, package_size=>20, output_format=>"vertical_html_table"},
test => 0,
},
{
summary => 'The same example, in vertical text format (color/emphasis is shown with markup)',
args => {fat=>0.223, saturated_fat=>0.010, protein=>0.990, carbohydrate=>13.113, sugar=>7.173, sodium=>0.223, serving_size=>175, package_size=>20, output_format=>"vertical_text_table", color=>"never"},
test => 0,
},
{
summary => 'The same example, in calculation text format',
args => {fat=>0.223, saturated_fat=>0.010, protein=>0.990, carbohydrate=>13.113, sugar=>7.173, sodium=>0.223, serving_size=>175, package_size=>20, output_format=>"calculation_text", color=>"never"},
test => 0,
},
],
};
sub bpom_show_nutrition_facts {
my %args = @_;
my $output_format = $args{output_format} // 'raw_table';
return [400, "Unknown output format '$output_format'"] unless grep { $output_format eq $_ } @output_formats;
my $color = $args{color} // 'auto';
lib/App/BPOMUtils/NutritionFacts.pm view on Meta::CPAN
Vitamin A, in mcgE<sol>100g (all-trans-)retinol.
=item * B<va_nufact> => I<ufloat>
Vitamin A, in mcgE<sol>100g (all-trans-)retinol (value to be used in nutrition facts table instead the lab test result).
=item * B<va_nufact_note> => I<str>
(No description)
=item * B<vb1> => I<ufloat>
Vitamin B1, in mgE<sol>100g.
=item * B<vb12> => I<ufloat>
Vitamin B12, in mcgE<sol>100g.
=item * B<vb12_nufact> => I<ufloat>
Vitamin B12, in mcgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb12_nufact_note> => I<str>
(No description)
=item * B<vb1_nufact> => I<ufloat>
Vitamin B1, in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb1_nufact_note> => I<str>
(No description)
=item * B<vb2> => I<ufloat>
Vitamin B2, in mgE<sol>100g.
=item * B<vb2_nufact> => I<ufloat>
Vitamin B2, in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb2_nufact_note> => I<str>
(No description)
=item * B<vb3> => I<ufloat>
Vitamin B3, in mgE<sol>100g.
=item * B<vb3_nufact> => I<ufloat>
Vitamin B3, in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb3_nufact_note> => I<str>
(No description)
=item * B<vb5> => I<ufloat>
Vitamin B5 (pantothenic acid), in mgE<sol>100g.
=item * B<vb5_nufact> => I<ufloat>
Vitamin B5 (pantothenic acid), in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb5_nufact_note> => I<str>
(No description)
=item * B<vb6> => I<ufloat>
Vitamin B6, in mgE<sol>100g.
=item * B<vb6_nufact> => I<ufloat>
Vitamin B6, in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vb6_nufact_note> => I<str>
(No description)
=item * B<vc> => I<ufloat>
Vitamin C, in mgE<sol>100g.
=item * B<vc_nufact> => I<ufloat>
Vitamin C, in mgE<sol>100g (value to be used in nutrition facts table instead the lab test result).
=item * B<vc_nufact_note> => I<str>
(No description)
=item * B<vd> => I<ufloat>
Vitamin D, in mcg.
=item * B<vd_nufact> => I<ufloat>
Vitamin D, in mcg (value to be used in nutrition facts table instead the lab test result).
=item * B<vd_nufact_note> => I<str>
(No description)
=item * B<ve> => I<ufloat>
Vitamin E, in mg alpha-TE (tocopherol-equivalent).
=item * B<ve_nufact> => I<ufloat>
Vitamin E, in mg alpha-TE (tocopherol-equivalent) (value to be used in nutrition facts table instead the lab test result).
=item * B<ve_nufact_note> => I<str>
(No description)
=item * B<vk> => I<ufloat>
Vitamin K, in mcg.
=item * B<vk_nufact> => I<ufloat>
Vitamin K, in mcg (value to be used in nutrition facts table instead the lab test result).
( run in 1.025 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )