App-BPOMUtils-NutritionFacts
view release on metacpan or search on metacpan
lib/App/BPOMUtils/NutritionFacts.pm view on Meta::CPAN
$do_vm->("vb2", "Vitamin B2", 1.6, "mg") if $args{vb2};
$do_vm->("vb3", "Vitamin B3", 15, "mg") if $args{vb3};
$do_vm->("vb5", "Vitamin B5", 5, "mg") if $args{vb5};
$do_vm->("vb6", "Vitamin B6", 1.3, "mg") if $args{vb6};
$do_vm->("folate", "Folat", 400, "mcg", "Folate") if $args{folate};
$do_vm->("vb12", "Vitamin B12", 2.4, "mcg") if $args{vb12};
$do_vm->("biotin", "Biotin", 30, "mcg") if $args{biotin};
$do_vm->("choline", "Kolin", 450, "mg", "Choline") if $args{choline};
$do_vm->("vc", "Vitamin C", 90, "mg") if $args{vc};
$do_vm->("ca", "Kalsium", 1100, "mg", "Calcium") if $args{ca};
$do_vm->("phosphorus", "Fosfor", 700, "mg", "Phosphorus") if $args{phosphorus};
$do_vm->("mg", "Magnesium", 350, "mg") if $args{mg};
$do_vm->("potassium", "Kalium", 4700, "mg", "Potassium") if $args{potassium};
$do_vm->("mn", "Mangan", 2000, "mcg", "Manganese") if $args{mn};
$do_vm->("cu", "Tembaga", 800, "mcg", "Copper") if $args{cu};
$do_vm->("cr", "Kromium", 26, "mcg", "Chromium") if $args{cr};
$do_vm->("fe", "Besi", 22, "mg", "Iron") if $args{fe};
$do_vm->("iodium", "Iodium", 90, "mcg", "Iodium") if $args{iodium};
$do_vm->("zn", "Seng", 13, "mg", "Zinc") if $args{zn};
$do_vm->("se", "Selenium", 30, "mcg") if $args{se};
$do_vm->("fluorine", "Fluor", 2.5, "mg", "Fluorine") if $args{fluorine};
} # VITAMIN_MINERAL
my @rows_nn;
NONNUTRIENTS: {
1;
} # NONNUTRIENTS
# add heading & border
if (@rows_vm) {
if ($output_format =~ /vertical/) {
push @rows, [{colspan=>5, $attr=>$code_fmttext->("Vitamin dan mineral")}];
unless (@rows_nn) {
for (@{ $rows_vm[-1] }) { $_->{bottom_border} = 1 }
}
}
}
if (@rows_nn) {
if ($output_format =~ /vertical/) {
push @rows, [{colspan=>5, $attr=>$code_fmttext->("Zat Nongizi")}];
for (@{ $rows_nn[-1] }) { $_->{bottom_border} = 1 }
}
}
if ($output_format =~ /linear/) {
push @rows, join(", ", @rows_vm, @rows_nn), (@rows_vm || @rows_nn ? ". " : "");
} else {
push @rows, @rows_vm, @rows_nn;
}
} # VITAMIN_MINERAL_NONNUTRIENTS
if ($output_format eq 'raw_table') {
} elsif ($output_format =~ /vertical/) {
push @rows, [{colspan=>5, $attr=>$code_fmttext->("/*Persen AKG berdasarkan kebutuhan energi 2150 kkal. Kebutuhan energi Anda mungkin lebih tinggi atau lebih rendah./")}];
} elsif ($output_format =~ /linear/) {
push @rows, $code_fmttext->( "/Persen AKG berdasarkan kebutuhan energi 2150 kkal. Kebutuhan energi Anda mungkin lebih tinggi atau lebih rendah./");
}
OUTPUT:
if ($output_format eq 'raw_table') {
return [200, "OK", \@rows, {'table.fields'=>[qw/name_eng name_ind val_per_100g val_per_srv val_per_srv_R val_per_pkg val_per_pkg_R pct_dv pct_dv_R/]}];
}
my $text;
if ($output_format =~ /vertical/) {
if ($output_format =~ /html/) {
require Text::Table::HTML;
my $table = Text::Table::HTML::table(rows => \@rows, header_row=>0);
$table =~ s!<table>!<table class="$output_format"><colgroup><col style="width:16pt;"><col style="width:200pt;"><col style="width:48pt;"><col style="width:48pt;"><col style="width:36pt;"></colgroup>!;
$text = "
<style>
table.$output_format { border-collapse: collapse; border: solid 1pt black; }
table.$output_format tr.has_bottom_border { border-bottom: solid 1pt black; }
</style>\n" . $table;
} else {
require Text::Table::More;
$text = Text::Table::More::generate_table(rows => \@rows, color=>1, header_row=>0);
}
} elsif ($output_format =~ /linear/) {
if ($output_format =~ /html/) {
$text = "
<style>
p.$output_format { border: solid 1pt black; }
</style>
<p class=\"$output_format\">" . join("", @rows). "</p>\n";
} elsif ($output_format =~ /text/) {
require Text::ANSI::Util;
require Text::Table::More;
my $ing = Text::ANSI::Util::ta_wrap(join("", @rows), $ENV{COLUMNS} // 80);
$text = Text::Table::More::generate_table(rows => [[$ing]], header_row=>0);
} else {
# raw_linear
$text = join("", @rows) . "\n";
}
} elsif ($output_format =~ /calculation/) {
if ($output_format =~ /html/) {
require Text::Table::HTML;
my $table = Text::Table::HTML::table(rows => \@rows, header_row=>0);
$table =~ s!<table>!<table class="$output_format">!;
$text = "
<style>
table.$output_format { font-size: smaller; border-collapse: collapse; border: solid 1pt black; }
table.$output_format tr.has_bottom_border { border-bottom: solid 1pt black; }
</style>\n" . $table;
} else {
require Text::Table::More;
$text = Text::Table::More::generate_table(rows => \@rows, color=>1, header_row=>0);
}
}
if ($output_format =~ /html/ && $args{browser}) {
require Browser::Open;
require File::Slurper;
require File::Temp;
my $tempdir = File::Temp::tempdir();
my $temppath = "$tempdir/ing.html";
File::Slurper::write_text($temppath, $text);
( run in 0.581 second using v1.01-cache-2.11-cpan-97f6503c9c8 )