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 )