File Coverage

blib/lib/TableData/Health/Nutrient.pm
Criterion Covered Total %
statement 27 28 96.4
branch n/a
condition n/a
subroutine 9 10 90.0
pod 0 1 0.0
total 36 39 92.3


line stmt bran cond sub pod time code
1             package ## no critic: Modules::RequireFilenameMatchesPackage
2             TableDataRole::Health::Nutrient0; # hide from PAUSE indexer
3              
4 1     1   433332 use strict;
  1         2  
  1         43  
5 1     1   644 use utf8;
  1         364  
  1         7  
6              
7 1     1   605 use Role::Tiny;
  1         7184  
  1         7  
8             with 'TableDataRole::Source::AOH';
9              
10             our $table_def = {
11             fields => {
12             symbol => {pos=>0, schema=>'str*'},
13             aliases => {pos=>1, schema=>'aos'}, # alternate symbols
14             summary => {pos=>2, schema=>'str'},
15              
16             category => {pos=>3, schema=>['str*', in=>[
17             'vitamin',
18             'mineral',
19             'essential nutrient',
20             'macronutrient',
21             'fatty acid',
22             'amino acid',
23             'sugar',
24             'other',
25             ]]},
26              
27             eng_name => {pos=>4, schema=>'str*'},
28             eng_aliases => {pos=>5, schema=>'aos'},
29             ind_name => {pos=>6, schema=>'str*'},
30             ind_aliases => {pos=>7, schema=>'aos'},
31              
32             default_unit => {pos=>8, schema=>'str*'},
33              
34             water_soluble => {pos=> 9, schema=>'bool'},
35             water_soluble_note => {pos=>10, schema=>'str'},
36             fat_soluble => {pos=>11, schema=>'bool'},
37             fat_soluble_note => {pos=>12, schema=>'str'},
38             },
39             pk => 'symbol',
40             };
41              
42             our $data = [
43             # for the first row, make sure we mention all columns because
44             # TableDataRole::Source::AOH uses the first row to enumerate the columns
45             {
46             symbol => 'VA',
47             aliases => undef,
48             summary => 'Vitamin A',
49             category => 'vitamin',
50             eng_name => 'Vitamin A',
51             eng_aliases => undef,
52             ind_name => 'Vitamin A',
53             ind_aliases => undef,
54              
55             default_unit => 'IU-vita',
56              
57             fat_soluble => 1,
58             fat_soluble_note => undef,
59             water_soluble => undef,
60             water_soluble_note => undef,
61              
62             },
63             {
64             symbol => 'VD',
65             aliases => undef,
66             summary => 'Vitamin D',
67             category => 'vitamin',
68             eng_name => 'Vitamin D',
69             ind_name => 'Vitamin D',
70             default_unit => 'IU-vitd',
71             fat_soluble => 1,
72             },
73             {
74             symbol => 'VE',
75             aliases => undef,
76             summary => 'Vitamin E',
77             category => 'vitamin',
78              
79             eng_name => 'Vitamin E',
80             ind_name => 'Vitamin E',
81             default_unit => 'IU-vite',
82             fat_soluble => 1,
83             },
84             {
85             symbol => 'VK',
86             aliases => undef,
87             summary => 'Vitamin K',
88             category => 'vitamin',
89              
90             eng_name => 'Vitamin K',
91             ind_name => 'Vitamin K',
92             category => 'vitamin',
93             default_unit => 'mcg',
94             fat_soluble => 1,
95             },
96             {
97             symbol => 'VB1',
98             aliases => ['Thiamine'],
99             summary => 'Vitamin B1 (Thiamine)',
100             category => 'vitamin',
101              
102             eng_name => 'Vitamin B1',
103             eng_aliases => ['Thiamine'],
104             ind_name => 'Vitamin B1',
105             ind_aliases => ['Thiamin'],
106             default_unit => 'mg',
107             water_soluble => 1,
108             },
109             {
110             symbol => 'VB2',
111             aliases => ['Riboflavin'],
112             summary => 'Vitamin B2 (Riboflavin)',
113             category => 'vitamin',
114              
115             eng_name => 'Vitamin B2',
116             eng_aliases => ['Riboflavin'],
117             ind_name => 'Vitamin B2',
118             ind_aliases => ['Riboflavin'],
119             default_unit => 'mg',
120             water_soluble => 1,
121             },
122             {
123             symbol => 'VB3',
124             aliases => ['Niacin'],
125             summary => 'Vitamin B3 (Niacin)',
126             category => 'vitamin',
127              
128             eng_name => 'Vitamin B3',
129             eng_aliases => ['Niacin', 'Vitamin PP'],
130             ind_name => 'Vitamin B3',
131             ind_aliases => ['Niasin'],
132             default_unit => 'mg',
133             water_soluble => 1,
134             },
135             {
136             symbol => 'VB5',
137             aliases => ['Pantothenic_Acid'],
138             summary => 'Vitamin B5 (Pantothenic Acid)',
139             category => 'vitamin',
140              
141             eng_name => 'Pantothenic acid',
142             eng_aliases => ['Vitamin B5'],
143             ind_name => 'Asam pantotenat',
144             ind_aliases => ['Vitamin B5'],
145             default_unit => 'mg',
146             water_soluble => 1,
147             },
148             {
149             symbol => 'VB6',
150             aliases => ['Pyridoxine'],
151             summary => 'Vitamin B6 refers to a group of six vitamers, one of which is pyridoxine',
152             category => 'vitamin',
153              
154             eng_name => 'Vitamin B6',
155             eng_aliases => ['Pyridoxine'],
156             ind_name => 'Vitamin B6',
157             ind_aliases => ['Piridoksin'],
158             default_unit => 'mg',
159             water_soluble => 1,
160             },
161             {
162             symbol => 'VB9',
163             aliases => ['Folate'],
164             summary => 'Vitamin B9 (Folate)',
165             category => 'vitamin',
166              
167             eng_name => 'Folate',
168             eng_aliases => ['Vitamin B9', 'Folacin'],
169             ind_name => 'Folat',
170             ind_aliases => ['Vitamin B9', 'Folasin'],
171             default_unit => 'mcg',
172             water_soluble => 1,
173             },
174             {
175             symbol => 'VB12',
176             aliases => ['Cobalamin'],
177             summary => 'Vitamin B12 (Cobalamin)',
178             category => 'vitamin',
179              
180             eng_name => 'Vitamin B12',
181             eng_aliases => ['Cobalamin'],
182             ind_name => 'Vitamin B12',
183             ind_aliases => ['Kobalamin'],
184             default_unit => 'mcg',
185             water_soluble => 1,
186             },
187             {
188             symbol => 'Biotin',
189             aliases => ['VB7'],
190             summary => 'Biotin (Vitamin B7)',
191             category => 'vitamin',
192              
193             eng_name => 'Biotin',
194             eng_aliases => ['Vitamin B7', 'Vitamin H'],
195             ind_name => 'Biotin',
196             ind_aliases => ['Vitamin B7', 'Vitamin H'],
197             default_unit => 'mg',
198             water_soluble => 1,
199             },
200             {
201             symbol => 'Choline',
202             aliases => ['VB4'],
203             summary => 'Choline (Vitamin B4)',
204             category => 'essential nutrient',
205              
206             eng_name => 'Choline',
207             eng_aliases => ['Vitamin B4'],
208             ind_name => 'Kolin',
209             ind_aliases => ['Vitamin B4'],
210             default_unit => 'mg',
211             water_soluble => 1,
212             },
213             {
214             symbol => 'VC',
215             aliases => undef,
216             summary => 'Vitamin C',
217             category => 'vitamin',
218              
219             eng_name => 'Vitamin C',
220             ind_name => 'Vitamin C',
221             default_unit => 'mg',
222             water_soluble => 1,
223             },
224              
225             # minerals
226              
227             {
228             symbol => 'Ca',
229             aliases => undef,
230             summary => 'Calcium',
231             category => 'mineral',
232              
233             eng_name => 'Calcium',
234             ind_name => 'Kalsium',
235             default_unit => 'mg',
236             },
237             {
238             symbol => 'P',
239             aliases => undef,
240             summary => 'Phosphorus',
241             category => 'mineral',
242              
243             eng_name => 'Phosphorus',
244             ind_name => 'Fosfor',
245             default_unit => 'mg',
246             },
247             {
248             symbol => 'Mg',
249             aliases => undef,
250             summary => 'Magnesium',
251             category => 'mineral',
252              
253             eng_name => 'Magnesium',
254             ind_name => 'Magnesium',
255             default_unit => 'mg',
256             },
257             {
258             symbol => 'Fe',
259             aliases => undef,
260             summary => 'Iron',
261             category => 'mineral',
262              
263             eng_name => 'Iron',
264             ind_name => 'Besi',
265             default_unit => 'mg',
266             },
267             {
268             symbol => 'I',
269             aliases => undef,
270             summary => 'Iodium',
271             category => 'mineral',
272              
273             eng_name => 'Iodium',
274             ind_name => 'Iodium',
275             default_unit => 'mcg',
276             },
277             {
278             symbol => 'Zn',
279             aliases => undef,
280             summary => 'Zinc',
281             category => 'mineral',
282              
283             eng_name => 'Zinc',
284             ind_name => 'Seng',
285             default_unit => 'mg',
286             },
287             {
288             symbol => 'Se',
289             aliases => undef,
290             summary => 'Selenium',
291             category => 'mineral',
292              
293             eng_name => 'Selenium',
294             ind_name => 'Selenium',
295             default_unit => 'mcg',
296             },
297             {
298             symbol => 'Mn',
299             aliases => undef,
300             summary => 'Mangan',
301             category => 'mineral',
302              
303             eng_name => 'Mangan',
304             ind_name => 'Mangan',
305             default_unit => 'mg',
306             },
307             {
308             symbol => 'F',
309             aliases => undef,
310             summary => 'Fluorine',
311             category => 'mineral',
312              
313             eng_name => 'Fluorine',
314             ind_name => 'Fluor',
315             default_unit => 'mg',
316             },
317             {
318             symbol => 'Cr',
319             aliases => undef,
320             summary => 'Chromium',
321             category => 'mineral',
322              
323             eng_name => 'Chromium',
324             ind_name => 'Kromium',
325             default_unit => 'mcg',
326             },
327             {
328             symbol => 'K',
329             aliases => undef,
330             summary => 'Potassium',
331             category => 'mineral',
332              
333             eng_name => 'Potassium',
334             ind_name => 'Kalium',
335             default_unit => 'mg',
336             },
337             {
338             symbol => 'Na',
339             aliases => undef,
340             summary => 'Sodium',
341             category => 'mineral',
342              
343             eng_name => 'Sodium',
344             ind_name => 'Natrium',
345             default_unit => 'mg',
346             },
347             {
348             symbol => 'Cl',
349             aliases => undef,
350             summary => 'Chlorine',
351             category => 'mineral',
352              
353             eng_name => 'Chlorine',
354             ind_name => 'Klor',
355             default_unit => 'mg',
356             },
357             {
358             symbol => 'Cu',
359             aliases => undef,
360             summary => 'Copper',
361             category => 'mineral',
362              
363             eng_name => 'Copper',
364             ind_name => 'Tembaga',
365             default_unit => 'mcg',
366             },
367             {
368             symbol => 'B',
369             aliases => undef,
370             summary => 'Boron',
371             category => 'mineral',
372              
373             eng_name => 'Boron',
374             ind_name => 'Boron',
375             default_unit => 'mg',
376             },
377             {
378             symbol => 'Mo',
379             aliases => undef,
380             summary => 'Molybdenum',
381             category => 'mineral',
382              
383             eng_name => 'Molybdenum',
384             ind_name => 'Molibdenum',
385             default_unit => 'mcg',
386             },
387             {
388             symbol => 'V',
389             aliases => undef,
390             summary => 'Vanadium',
391             category => 'mineral',
392             eng_name => 'Vanadium',
393             ind_name => 'Vanadium',
394             default_unit => 'mcg',
395             },
396              
397             # other
398             {
399             symbol => 'Energy',
400             aliases => undef,
401             summary => 'Energy',
402             category => 'energy',
403              
404             eng_name => 'Energy',
405             ind_name => 'Energi',
406             default_unit => 'kcal',
407             },
408             {
409             symbol => 'Protein',
410             aliases => undef,
411             summary => 'Protein',
412             category => 'macronutrient',
413              
414             eng_name => 'Protein',
415             ind_name => 'Protein',
416             default_unit => 'g',
417             },
418             {
419             symbol => 'Total_Fat',
420             aliases => undef,
421             summary => 'Fat (total)',
422             category => 'macronutrient',
423              
424             eng_name => 'Total fat',
425             ind_name => 'Lemak total',
426             default_unit => 'g',
427             },
428             {
429             symbol => 'Saturated_Fat',
430             aliases => undef,
431             summary => 'Fat (saturated)',
432             category => 'macronutrient',
433              
434             eng_name => 'Saturated fat',
435             ind_name => 'Lemak jenuh',
436             default_unit => 'g',
437             },
438             {
439             symbol => 'Cholesterol',
440             aliases => undef,
441             summary => 'Cholesterol',
442             category => 'other',
443              
444             eng_name => 'Cholesterol',
445             ind_name => 'Kolesterol',
446             default_unit => 'mg',
447             },
448             {
449             symbol => 'Linoleic_Acid',
450             aliases => undef,
451             summary => 'Linoleic acid (LA)',
452             category => 'fatty acid',
453              
454             eng_name => 'Linoleic acid',
455             ind_name => 'Asam linoleat',
456             default_unit => 'g',
457             },
458             {
459             symbol => 'Omega6',
460             aliases => undef,
461             summary => 'Omega-6 fatty acids',
462             category => 'fatty acid',
463              
464             eng_name => 'Omega-6 fatty acids',
465             ind_name => 'Asam lemak omega-6',
466             default_unit => 'g',
467             },
468             {
469             symbol => 'Alpha_Linolenic_Acid',
470             aliases => undef,
471             summary => 'ɑ-linolenic acid (ALA)',
472             category => 'fatty acid',
473              
474             eng_name => 'ɑ-linolenic acid',
475             ind_name => 'Asam ɑ-linolenat',
476             default_unit => 'g',
477             },
478             {
479             symbol => 'Omega3',
480             aliases => undef,
481             summary => 'Omega-3 fatty acids',
482             category => 'fatty acid',
483              
484             eng_name => 'Omega-3 fatty acids',
485             ind_name => 'Asam lemak omega-3',
486             default_unit => 'g',
487             },
488             {
489             symbol => 'Carbohydrate',
490             aliases => undef,
491             summary => 'Carbohydrate (total)',
492             category => 'macronutrient',
493              
494             eng_name => 'Total carbohydrate',
495             ind_name => 'Karbohidrat total',
496             default_unit => 'g',
497             },
498             {
499             symbol => 'Dietary_Fiber',
500             aliases => undef,
501             summary => 'Dietary fiber',
502             category => 'other',
503              
504             eng_name => 'Dietary fiber',
505             ind_name => 'Serat pangan',
506             default_unit => 'g',
507             },
508             {
509             symbol => 'L_Carnitine',
510             aliases => undef,
511             summary => 'L-Carnitine',
512             category => 'amino acid',
513              
514             eng_name => 'L-Carnitine',
515             ind_name => 'L-Karnitin',
516             default_unit => 'mg',
517             },
518             {
519             symbol => 'Myo_Inositol',
520             aliases => undef,
521             summary => 'Myo-Inositol',
522             category => 'sugar',
523              
524             eng_name => 'Myo-Inositol',
525             ind_name => 'Myo-Inositol',
526             default_unit => 'mg',
527             },
528             {
529             symbol => 'H2O',
530             aliases => ['Water'],
531             summary => 'Water',
532             category => 'other',
533              
534             eng_name => 'Water',
535             ind_name => 'Air',
536             default_unit => 'ml',
537             },
538             ];
539              
540             around new => sub {
541             my $orig = shift;
542              
543             $orig->(
544             @_,
545             aoh => $data,
546             column_names => [
547             sort { $table_def->{fields}{$a}{pos} <=> $table_def->{fields}{$b}{pos} }
548             keys %{ $table_def->{fields} }
549             ],
550             );
551             };
552              
553             package ## no critic: Modules::RequireFilenameMatchesPackage
554             TableData::Health::Nutrient0; # hide from PAUSE indexer
555              
556 1     1   1737 use strict;
  1         2  
  1         40  
557              
558 1     1   518 use Role::Tiny::With;
  1         310  
  1         95  
559             with 'TableDataRole::Health::Nutrient0';
560              
561             package ## no critic: Modules::RequireFilenameMatchesPackage
562             TableDataRole::Health::Nutrient; # hide from PAUSE indexer
563              
564 1     1   8 use strict;
  1         2  
  1         25  
565              
566 1     1   5 use Role::Tiny;
  1         2  
  1         7  
567             with 'TableDataRole::Munge::SerializeRef';
568              
569             around new => sub {
570             my $orig = shift;
571              
572             $orig->(@_, tabledata=>'Health::Nutrient0', load=>0);
573             };
574              
575             package TableData::Health::Nutrient;
576              
577 1     1   361 use strict;
  1         2  
  1         33  
578              
579 1     1   5 use Role::Tiny::With;
  1         2  
  1         224  
580             with 'TableDataRole::Health::Nutrient0';
581             with 'TableDataRole::Spec::TableDef';
582              
583             sub get_table_def {
584 0     0 0   $TableDataRole::Health::Nutrient0::table_def;
585             }
586              
587             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
588             our $DATE = '2025-11-03'; # DATE
589             our $DIST = 'TableData-Health-Nutrient'; # DIST
590             our $VERSION = '0.006'; # VERSION
591              
592             our %STATS = ("num_columns",13,"num_rows",45); # STATS
593              
594             1;
595             # ABSTRACT: Nutrients
596              
597             __END__